diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..5e2c6ab5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +.settings/ +.project +.classpath +build/ +bin/ +.gradle/ +.idea/ +out/ + diff --git a/CODE_OF_CONDUCT.adoc b/CODE_OF_CONDUCT.adoc new file mode 100644 index 00000000..17783c7c --- /dev/null +++ b/CODE_OF_CONDUCT.adoc @@ -0,0 +1,44 @@ += Contributor Code of Conduct + +As contributors and maintainers of this project, and in the interest of fostering an open +and welcoming community, we pledge to respect all people who contribute through reporting +issues, posting feature requests, updating documentation, submitting pull requests or +patches, and other activities. + +We are committed to making participation in this project a harassment-free experience for +everyone, regardless of level of experience, gender, gender identity and expression, +sexual orientation, disability, personal appearance, body size, race, ethnicity, age, +religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, such as physical or electronic addresses, + without explicit permission +* Other unethical or unprofessional conduct + +Project maintainers have the right and responsibility to remove, edit, or reject comments, +commits, code, wiki edits, issues, and other contributions that are not aligned to this +Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors +that they deem inappropriate, threatening, offensive, or harmful. + +By adopting this Code of Conduct, project maintainers commit themselves to fairly and +consistently applying these principles to every aspect of managing this project. Project +maintainers who do not follow or enforce the Code of Conduct may be permanently removed +from the project team. + +This Code of Conduct applies both within project spaces and in public spaces when an +individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by +contacting a project maintainer at spring-code-of-conduct@pivotal.io . All complaints will +be reviewed and investigated and will result in a response that is deemed necessary and +appropriate to the circumstances. Maintainers are obligated to maintain confidentiality +with regard to the reporter of an incident. + +This Code of Conduct is adapted from the +https://contributor-covenant.org[Contributor Covenant], version 1.3.0, available at +https://contributor-covenant.org/version/1/3/0/[contributor-covenant.org/version/1/3/0/] diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 00000000..62589edd --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/build.gradle b/build.gradle new file mode 100644 index 00000000..0905098e --- /dev/null +++ b/build.gradle @@ -0,0 +1,173 @@ +buildscript { + ext.isCI = System.getenv('GITHUB_ACTION') +} + +plugins { + id 'base' + id 'io.spring.dependency-management' version '1.1.4' +} + +description = 'Spring Functions Catlog' + +ext { + javaProjects = subprojects - project(':function-dependencies') +} + +allprojects { + group = 'org.springframework.cloud.fn' + + repositories { + mavenCentral() + maven { url 'https://repo.spring.io/milestone' } + if (version.endsWith('SNAPSHOT')) { + maven { url 'https://repo.spring.io/snapshot' } + } +// maven { url 'https://repo.spring.io/libs-staging-local' } + } + + ext.javadocLinks = [ + 'https://docs.oracle.com/en/java/javase/17/docs/api/', + 'https://jakarta.ee/specifications/platform/10/apidocs/', + 'https://docs.spring.io/spring-framework/docs/current/javadoc-api', + 'https://docs.spring.io/spring-integration/docs/current/api/' + ] as String[] + + apply plugin: 'io.spring.dependency-management' + + dependencyManagement { + resolutionStrategy { + cacheChangingModulesFor 0, 'seconds' + } + applyMavenExclusions = false + generatedPomCustomization { + enabled = false + } + + imports { + mavenBom "org.springframework.boot:spring-boot-dependencies:${property('spring-boot.version')}" + mavenBom "org.springframework.cloud:spring-cloud-dependencies:${property('spring-cloud.version')}" + mavenBom "software.amazon.awssdk:bom:${property('aws-sdk.version')}" + mavenBom "io.awspring.cloud:spring-cloud-aws-dependencies:${property('spring-cloud-aws.version')}" + } + + } + +} + +configure(javaProjects) { subproject -> + apply plugin: 'java-library' + apply plugin: 'eclipse' + apply plugin: 'idea' + + apply from: "${rootDir}/publish-maven.gradle" + + sourceSets { + test { + resources { + srcDirs = ['src/test/resources', 'src/test/java'] + } + } + } + + java { + withJavadocJar() + withSourcesJar() + registerFeature('optional') { + usingSourceSet(sourceSets.main) + } + registerFeature('provided') { + usingSourceSet(sourceSets.main) + } + } + + compileJava { + options.release = 17 + options.compilerArgs << '-parameters' + } + + compileTestJava { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + options.encoding = 'UTF-8' + } + + tasks.withType(JavaCompile).configureEach { + options.fork = true + } + + tasks.withType(Javadoc) { + options.addBooleanOption('Xdoclint:syntax', true) // only check syntax with doclint + } + + eclipse { + project { + natures += 'org.springframework.ide.eclipse.core.springnature' + } + } + + // dependencies that are common across all java projects + dependencies { + providedImplementation 'org.springframework.boot:spring-boot-configuration-processor' + + if (subproject.name != 'config-common') { + api project(':config-common') + } + + api 'org.springframework.boot:spring-boot-starter-validation' + api 'org.springframework.boot:spring-boot-starter-json' + api 'org.springframework.boot:spring-boot-starter-integration' + api 'com.jayway.jsonpath:json-path' + + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'org.springframework.integration:spring-integration-test' + testImplementation 'io.projectreactor:reactor-test' + testImplementation 'org.awaitility:awaitility' + testImplementation 'org.testcontainers:junit-jupiter' + + testRuntimeOnly 'org.apache.logging.log4j:log4j-core' + testRuntimeOnly 'org.apache.logging.log4j:log4j-jcl' + } + + // enable all compiler warnings; individual projects may customize further + ext.xLintArg = '-Xlint:all,-options,-processing' + [compileJava, compileTestJava]*.options*.compilerArgs = [xLintArg, '-parameters'] + + test { + maxHeapSize = '2g' + jvmArgs '-XX:+HeapDumpOnOutOfMemoryError' + useJUnitPlatform() + + enableAssertions = false + + logging.captureStandardOutput(LogLevel.INFO) + } + + jar { + manifest { + attributes( + 'Implementation-Version': project.version, + 'Created-By': "JDK ${System.properties['java.version']} (${System.properties['java.specification.vendor']})", + 'Implementation-Title': subproject.name, + 'Implementation-Vendor-Id': subproject.group, + 'Implementation-Vendor': 'Pivotal Software, Inc.', + 'Implementation-URL': 'https://spring.io/projects/spring-functions-catalog', + 'Automatic-Module-Name': subproject.name.replace('-', '.') + ) + } + + from("${rootProject.projectDir}") { + include 'LICENSE.txt' + into 'META-INF' + } + } + + publishing { + publications { + mavenJava(MavenPublication) { + suppressAllPomMetadataWarnings() + from components.java + } + } + } + +} \ No newline at end of file diff --git a/common/aws-s3-common/build.gradle b/common/aws-s3-common/build.gradle new file mode 100644 index 00000000..2bd41efb --- /dev/null +++ b/common/aws-s3-common/build.gradle @@ -0,0 +1,6 @@ +dependencies { + api "org.springframework.integration:spring-integration-aws:${property('spring-integration-aws.version')}" + api 'io.awspring.cloud:spring-cloud-aws-starter-s3' + api 'software.amazon.awssdk:aws-crt-client' + api 'org.springframework.integration:spring-integration-file' +} diff --git a/common/aws-s3-common/pom.xml b/common/aws-s3-common/pom.xml deleted file mode 100644 index e974d5b5..00000000 --- a/common/aws-s3-common/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - aws-s3-common - aws-s3-common - aws-s3 common - - - - org.springframework.integration - spring-integration-aws - ${spring-integration-aws.version} - - - io.awspring.cloud - spring-cloud-aws-starter-s3 - - - - software.amazon.awssdk - aws-crt-client - - - org.springframework.integration - spring-integration-file - - - - diff --git a/common/config-common/pom.xml b/common/config-common/pom.xml deleted file mode 100644 index d3d9d141..00000000 --- a/common/config-common/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.stream.app - stream-applications-build - 4.0.1-SNAPSHOT - ../../../stream-applications-build/pom.xml - - - org.springframework.cloud.fn - config-common - config-common - Function Common Configuration Components - - - - org.springframework.boot - spring-boot-autoconfigure - - - org.springframework.integration - spring-integration-core - - - - diff --git a/common/debezium-autoconfigure/build.gradle b/common/debezium-autoconfigure/build.gradle new file mode 100644 index 00000000..f51f707a --- /dev/null +++ b/common/debezium-autoconfigure/build.gradle @@ -0,0 +1,17 @@ +ext { + apicurioVersion = '2.5.1.Final' +} + +repositories { + maven { url 'https://maven.scijava.org/content/repositories/public/' } +} + +dependencies { + api 'org.springframework.integration:spring-integration-debezium' + api "io.apicurio:apicurio-registry-utils-converter:$apicurioVersion" + api "io.apicurio:apicurio-registry-client:$apicurioVersion" + + testImplementation "io.debezium:debezium-connector-mysql:$debeziumVersion" + testImplementation 'org.springframework:spring-jdbc' + testImplementation 'com.zaxxer:HikariCP' +} diff --git a/common/debezium-autoconfigure/pom.xml b/common/debezium-autoconfigure/pom.xml deleted file mode 100644 index 23d32176..00000000 --- a/common/debezium-autoconfigure/pom.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - debezium-autoconfigure - debezium-autoconfigure - Debezium Spring Boot auto-configuration - - - 2.3.3.Final - 2.4.2.Final - - - - - io.debezium - debezium-embedded - ${version.debezium} - - - org.slf4j - slf4j-reload4j - - - org.slf4j - slf4j-log4j12 - - - org.slf4j - slf4j-api - - - - - - - io.apicurio - apicurio-registry-utils-converter - ${apicurio.version} - - - io.apicurio - apicurio-registry-client - ${apicurio.version} - - - org.slf4j - slf4j-api - - - - - - - io.debezium - debezium-connector-mysql - ${version.debezium} - - - slf4j-log4j12 - org.slf4j - - - test - - - com.zaxxer - HikariCP - 4.0.3 - test - - - org.springframework - spring-jdbc - test - - - ch.qos.logback - logback-classic - 1.4.8 - test - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 3.0.0 - - 1 - 1 - integration - - - - - diff --git a/common/file-common/build.gradle b/common/file-common/build.gradle new file mode 100644 index 00000000..efdad627 --- /dev/null +++ b/common/file-common/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.integration:spring-integration-file' +} diff --git a/common/file-common/pom.xml b/common/file-common/pom.xml deleted file mode 100644 index 9803588a..00000000 --- a/common/file-common/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - file-common - file-common - file common - - - - org.springframework.integration - spring-integration-file - - - - diff --git a/common/ftp-common/build.gradle b/common/ftp-common/build.gradle new file mode 100644 index 00000000..5038853b --- /dev/null +++ b/common/ftp-common/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.integration:spring-integration-ftp' +} diff --git a/common/ftp-common/pom.xml b/common/ftp-common/pom.xml deleted file mode 100644 index 1aa6b9f6..00000000 --- a/common/ftp-common/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - ftp-common - ftp-common - ftp common - - - - - org.springframework.integration - spring-integration-ftp - - - - - diff --git a/common/function-test-support/build.gradle b/common/function-test-support/build.gradle new file mode 100644 index 00000000..ddd84b85 --- /dev/null +++ b/common/function-test-support/build.gradle @@ -0,0 +1,8 @@ +dependencies { + api 'org.junit.jupiter:junit-jupiter-api' + api 'org.testcontainers:junit-jupiter' + + optionalApi "org.apache.ftpserver:ftpserver-core:$ftpServerVersion" + optionalApi 'org.springframework.integration:spring-integration-sftp' + optionalApi 'org.springframework:spring-websocket' +} diff --git a/common/function-test-support/pom.xml b/common/function-test-support/pom.xml deleted file mode 100644 index ae755b1a..00000000 --- a/common/function-test-support/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - function-test-support - function-test-support - file consumer - - - 2.7.0 - 1.2.0 - - - - - org.springframework.boot - spring-boot-starter-test - compile - - - org.springframework.integration - spring-integration-ftp - true - - - org.springframework - spring-websocket - - - org.apache.ftpserver - ftpserver-core - ${apache-ftpserver.version} - compile - - - org.apache.sshd - sshd-sftp - ${sshd-sftp.version} - compile - - - org.junit.jupiter - junit-jupiter - compile - - - org.testcontainers - testcontainers - ${testcontainers.version} - compile - - - org.testcontainers - junit-jupiter - ${testcontainers.version} - compile - - - org.awaitility - awaitility - compile - - - - diff --git a/common/metadata-store-common/build.gradle b/common/metadata-store-common/build.gradle new file mode 100644 index 00000000..5daa8f7d --- /dev/null +++ b/common/metadata-store-common/build.gradle @@ -0,0 +1,20 @@ +ext { + curatorVersion = '5.5.0' +} + +dependencies { + optionalApi 'org.springframework.integration:spring-integration-redis' + optionalApi 'org.springframework.boot:spring-boot-starter-data-redis' + optionalApi 'org.springframework.integration:spring-integration-mongodb' + optionalApi 'org.springframework.boot:spring-boot-starter-data-mongodb' + optionalApi 'org.springframework.integration:spring-integration-jdbc' + optionalApi 'org.springframework.boot:spring-boot-starter-data-jdbc' + optionalApi 'io.awspring.cloud:spring-cloud-aws-starter' + optionalApi 'org.springframework.integration:spring-integration-zookeeper' + optionalApi 'org.springframework.integration:spring-integration-hazelcast' + optionalApi "org.springframework.integration:spring-integration-aws:${property('spring-integration-aws.version')}" + api 'software.amazon.awssdk:dynamodb' + + testImplementation 'org.hsqldb:hsqldb' + testImplementation "org.apache.curator:curator-test:$curatorVersion" +} diff --git a/common/metadata-store-common/pom.xml b/common/metadata-store-common/pom.xml deleted file mode 100644 index 0e8a95c2..00000000 --- a/common/metadata-store-common/pom.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - metadata-store-common - metadata-store-common - metadata-store common - - - - - - org.springframework.integration - spring-integration-redis - true - - - org.springframework.boot - spring-boot-starter-data-redis - true - - - - - org.springframework.integration - spring-integration-mongodb - true - - - org.springframework.boot - spring-boot-starter-data-mongodb - true - - - - io.awspring.cloud - spring-cloud-aws-starter - true - - - - org.springframework.boot - spring-boot-starter-logging - true - - - org.apache.logging.log4j - log4j-to-slf4j - - - - - - - org.springframework.integration - spring-integration-jdbc - true - - - org.springframework.boot - spring-boot-starter-jdbc - true - - - org.hsqldb - hsqldb - test - - - - - org.springframework.integration - spring-integration-zookeeper - true - - - org.apache.curator - curator-test - ${curator.version} - test - - - - - org.springframework.integration - spring-integration-hazelcast - true - - - - - org.springframework.integration - spring-integration-aws - ${spring-integration-aws.version} - true - - - software.amazon.awssdk - dynamodb - true - - - - - diff --git a/common/mongodb-common/pom.xml b/common/mongodb-common/pom.xml deleted file mode 100644 index f33aa197..00000000 --- a/common/mongodb-common/pom.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - mongodb-common - mongodb-common - MongoDB Common - - - - org.testcontainers - mongodb - ${testcontainers.version} - test - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.2 - - - Jar Tests Package - package - - test-jar - - - - - - - diff --git a/common/mongodb-common/src/main/resources/application.properties b/common/mongodb-common/src/main/resources/application.properties deleted file mode 100644 index 1bb8bf6d..00000000 --- a/common/mongodb-common/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -# empty diff --git a/common/mqtt-common/build.gradle b/common/mqtt-common/build.gradle new file mode 100644 index 00000000..7ce7dd1b --- /dev/null +++ b/common/mqtt-common/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.integration:spring-integration-mqtt' +} diff --git a/common/mqtt-common/pom.xml b/common/mqtt-common/pom.xml deleted file mode 100644 index f8d22ab5..00000000 --- a/common/mqtt-common/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - mqtt-common - mqtt-common - MQTT Common - - - - org.springframework.integration - spring-integration-mqtt - - - - diff --git a/common/pom.xml b/common/pom.xml deleted file mode 100644 index b55726ca..00000000 --- a/common/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud.fn - functions-common - 4.0.1-SNAPSHOT - java-functions-common - Java Functions Common - pom - - - config-common - debezium-autoconfigure - aws-s3-common - file-common - ftp-common - function-test-support - metadata-store-common - mongodb-common - mqtt-common - redis-common - tcp-common - twitter-common - tensorflow-common - xmpp-common - - - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0 - - true - - - - - diff --git a/common/redis-common/pom.xml b/common/redis-common/pom.xml deleted file mode 100644 index 3c3ff5c4..00000000 --- a/common/redis-common/pom.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - redis-common - redis-common - Redis Common - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.2 - - - Jar Tests Package - package - - test-jar - - - - - - - diff --git a/common/redis-common/src/main/resources/application.properties b/common/redis-common/src/main/resources/application.properties deleted file mode 100644 index 1bb8bf6d..00000000 --- a/common/redis-common/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -# empty diff --git a/common/tcp-common/build.gradle b/common/tcp-common/build.gradle new file mode 100644 index 00000000..a94a2515 --- /dev/null +++ b/common/tcp-common/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.integration:spring-integration-ip' +} diff --git a/common/tcp-common/pom.xml b/common/tcp-common/pom.xml deleted file mode 100644 index c275d2e8..00000000 --- a/common/tcp-common/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - tcp-common - tcp-common - tcp common - - - - - org.springframework.integration - spring-integration-ip - - - - - diff --git a/common/tensorflow-common/build.gradle b/common/tensorflow-common/build.gradle new file mode 100644 index 00000000..6fdb6055 --- /dev/null +++ b/common/tensorflow-common/build.gradle @@ -0,0 +1,15 @@ +ext { + tensorflowVersion='1.15.0' + commonsCompressVersion='1.25.0' + commonsIoVersion='2.15.0' + pcollectionsVersion='4.0.1' +} + +dependencies { + api "org.tensorflow:tensorflow:$tensorflowVersion" + api "org.tensorflow:proto:$tensorflowVersion" + api "org.apache.commons:commons-compress:$commonsCompressVersion" + api "commons-io:commons-io:$commonsIoVersion" + api 'org.apache.commons:commons-lang3' + api "org.pcollections:pcollections:$pcollectionsVersion" +} diff --git a/common/tensorflow-common/pom.xml b/common/tensorflow-common/pom.xml deleted file mode 100644 index 0dba0fe3..00000000 --- a/common/tensorflow-common/pom.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - tensorflow-common - tensorflow-common - tensorflow common - - - true - 1.15.0 - 1.21 - 2.7 - 3.10 - 3.0.3 - 1.7.26 - - - - - org.tensorflow - tensorflow - ${tensorflow.version} - - - org.tensorflow - proto - ${tensorflow.version} - - - - org.apache.commons - commons-compress - ${apache.commons.compress} - - - commons-io - commons-io - ${commons-io.version} - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - - - org.slf4j - slf4j-api - ${slf4j-api.version} - - - org.pcollections - pcollections - ${pcollections.version} - - - - - - tensorflow-snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - - true - - - - diff --git a/common/twitter-common/build.gradle b/common/twitter-common/build.gradle new file mode 100644 index 00000000..13052e01 --- /dev/null +++ b/common/twitter-common/build.gradle @@ -0,0 +1,8 @@ +ext { + twitter4jVersion='4.0.7' +} + +dependencies { + api "org.twitter4j:twitter4j-stream:$twitter4jVersion" + api 'org.springframework.integration:spring-integration-ip' +} diff --git a/common/twitter-common/pom.xml b/common/twitter-common/pom.xml deleted file mode 100644 index a9c1abeb..00000000 --- a/common/twitter-common/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - twitter-common - twitter-common - Twitter common - - - 4.0.7 - - - - - org.twitter4j - twitter4j-stream - ${twitter4j.version} - - - - org.springframework.integration - spring-integration-ip - - - - diff --git a/common/xmpp-common/build.gradle b/common/xmpp-common/build.gradle new file mode 100644 index 00000000..7ded6649 --- /dev/null +++ b/common/xmpp-common/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.integration:spring-integration-xmpp' +} diff --git a/common/xmpp-common/pom.xml b/common/xmpp-common/pom.xml deleted file mode 100644 index 6aaea074..00000000 --- a/common/xmpp-common/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - xmpp-common - xmpp-common - XMPP common - - - - org.springframework.integration - spring-integration-xmpp - - - - diff --git a/consumer/analytics-consumer/build.gradle b/consumer/analytics-consumer/build.gradle new file mode 100644 index 00000000..c0feb350 --- /dev/null +++ b/consumer/analytics-consumer/build.gradle @@ -0,0 +1,7 @@ +dependencies { + api project(':payload-converter-function') + api 'io.micrometer:micrometer-core' + + testImplementation 'org.springframework.boot:spring-boot-starter-actuator' + testImplementation 'io.micrometer:micrometer-registry-wavefront' +} diff --git a/consumer/analytics-consumer/pom.xml b/consumer/analytics-consumer/pom.xml deleted file mode 100644 index 93bcf6b9..00000000 --- a/consumer/analytics-consumer/pom.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - analytics-consumer - analytics-consumer - Spring Native Consumer for computing meters - - - - org.springframework.cloud.fn - payload-converter-function - ${project.version} - - - org.springframework.boot - spring-boot-starter-actuator - test - - - com.fasterxml.jackson.core - jackson-databind - compile - - - io.micrometer - micrometer-core - - - io.micrometer - micrometer-registry-wavefront - 1.9.4 - test - - - - diff --git a/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/CountWithAmountTest.java b/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/CountWithAmountTest.java index 48fd4798..099b6f88 100644 --- a/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/CountWithAmountTest.java +++ b/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/CountWithAmountTest.java @@ -37,7 +37,7 @@ class CountWithAmountTest extends AnalyticsConsumerParentTest { void testCounterSink() { String message = "hello world message"; double messageSize = Long.valueOf(message.length()).doubleValue(); - analyticsConsumer.accept(new GenericMessage(message)); + analyticsConsumer.accept(new GenericMessage<>(message)); assertThat(meterRegistry.find("counter666").counter().count()).isEqualTo(messageSize); } } diff --git a/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/ExpressionCounterNameTests.java b/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/ExpressionCounterNameTests.java index 2cec7676..ebb45178 100644 --- a/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/ExpressionCounterNameTests.java +++ b/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/ExpressionCounterNameTests.java @@ -35,7 +35,7 @@ public class ExpressionCounterNameTests extends AnalyticsConsumerParentTest { @Test void testCounterSink() { - IntStream.range(0, 13).forEach(i -> analyticsConsumer.accept(new GenericMessage("hello"))); + IntStream.range(0, 13).forEach(i -> analyticsConsumer.accept(new GenericMessage<>("hello"))); assertThat(meterRegistry.find("hello").counter().count()).isEqualTo(13.0); } } diff --git a/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/FixedTagsTests.java b/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/FixedTagsTests.java index a10e8071..971a7412 100644 --- a/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/FixedTagsTests.java +++ b/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/FixedTagsTests.java @@ -38,8 +38,8 @@ import static org.assertj.core.api.Assertions.assertThat; public class FixedTagsTests extends AnalyticsConsumerParentTest { @Test - void testАnalyticsSink() { - IntStream.range(0, 13).forEach(i -> analyticsConsumer.accept(new GenericMessage("hello"))); + void testAnalyticsSink() { + IntStream.range(0, 13).forEach(i -> analyticsConsumer.accept(new GenericMessage<>("hello"))); Meter counterMeter = meterRegistry.find("counter666").meter(); assertThat(StreamSupport.stream(counterMeter.measure().spliterator(), false) .mapToDouble(m -> m.getValue()).sum()).isEqualTo(13.0); diff --git a/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/GaugeWithAmountTest.java b/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/GaugeWithAmountTest.java index 3ad28445..052a482b 100644 --- a/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/GaugeWithAmountTest.java +++ b/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/GaugeWithAmountTest.java @@ -35,20 +35,20 @@ import static org.assertj.core.api.Assertions.assertThat; class GaugeWithAmountTest extends AnalyticsConsumerParentTest { @Test - void testАnalyticsSink() { + void testAnalyticsSink() { String messageSmall = "hello"; - analyticsConsumer.accept(new GenericMessage(messageSmall)); + analyticsConsumer.accept(new GenericMessage<>(messageSmall)); assertThat(meterRegistry.find("myGauge").gauge().value()).isEqualTo(size(messageSmall)); assertThat(meterRegistry.find("myGauge").gauge().getId().getTags()).hasSize(1); assertThat(meterRegistry.find("myGauge").gauge().getId().getTag("foo")).isEqualTo("bar"); String messageMiddle = "hello world"; - analyticsConsumer.accept(new GenericMessage(messageMiddle)); + analyticsConsumer.accept(new GenericMessage<>(messageMiddle)); assertThat(meterRegistry.find("myGauge").gauge().value()).isEqualTo(size(messageMiddle)); String messageLarge = "hello world, hello people!"; - analyticsConsumer.accept(new GenericMessage(messageLarge)); + analyticsConsumer.accept(new GenericMessage<>(messageLarge)); assertThat(meterRegistry.find("myGauge").gauge().value()).isEqualTo(size(messageLarge)); } @@ -56,4 +56,5 @@ class GaugeWithAmountTest extends AnalyticsConsumerParentTest { private double size(String msg) { return Long.valueOf(msg.length()).doubleValue(); } + } diff --git a/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/LiteralTagExpressionsTests.java b/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/LiteralTagExpressionsTests.java index 2b8410d9..55a1e898 100644 --- a/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/LiteralTagExpressionsTests.java +++ b/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/LiteralTagExpressionsTests.java @@ -38,8 +38,7 @@ public class LiteralTagExpressionsTests extends AnalyticsConsumerParentTest { @Test void testCounterSink() { - - IntStream.range(0, 13).forEach(i -> analyticsConsumer.accept(new GenericMessage("hello"))); + IntStream.range(0, 13).forEach(i -> analyticsConsumer.accept(new GenericMessage<>("hello"))); Counter fooCounter = meterRegistry.find("counter666").tag("foo", "bar").counter(); assertThat(fooCounter.count()).isEqualTo(13.0); @@ -49,4 +48,5 @@ public class LiteralTagExpressionsTests extends AnalyticsConsumerParentTest { assertThat(fooCounter.getId()).isEqualTo(gorkCounter.getId()); } + } diff --git a/consumer/cassandra-consumer/build.gradle b/consumer/cassandra-consumer/build.gradle new file mode 100644 index 00000000..ae50f32c --- /dev/null +++ b/consumer/cassandra-consumer/build.gradle @@ -0,0 +1,6 @@ +dependencies { + api 'org.springframework.integration:spring-integration-cassandra' + api 'org.springframework.boot:spring-boot-starter-data-cassandra-reactive' + + testImplementation 'org.testcontainers:cassandra' +} diff --git a/consumer/cassandra-consumer/pom.xml b/consumer/cassandra-consumer/pom.xml deleted file mode 100644 index f120f52c..00000000 --- a/consumer/cassandra-consumer/pom.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - cassandra-consumer - cassandra-consumer - Cassandra Consumer - - - - org.springframework.boot - spring-boot-starter-data-cassandra-reactive - - - org.springframework.integration - spring-integration-cassandra - - - org.testcontainers - cassandra - ${testcontainers.version} - test - - - - diff --git a/consumer/elasticsearch-consumer/build.gradle b/consumer/elasticsearch-consumer/build.gradle new file mode 100644 index 00000000..55fe5937 --- /dev/null +++ b/consumer/elasticsearch-consumer/build.gradle @@ -0,0 +1,6 @@ +dependencies { + api project(':payload-converter-function') + api 'org.springframework.boot:spring-boot-starter-data-elasticsearch' + + testImplementation 'org.testcontainers:elasticsearch' +} diff --git a/consumer/elasticsearch-consumer/pom.xml b/consumer/elasticsearch-consumer/pom.xml deleted file mode 100644 index a41c05d4..00000000 --- a/consumer/elasticsearch-consumer/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - - 8.5.0 - - - elasticsearch-consumer - elasticsearch-consumer - elasticsearch consumer - - - - co.elastic.clients - elasticsearch-java - ${elasticsearch.version} - - - org.elasticsearch - elasticsearch-x-content - ${elasticsearch.version} - - - - org.springframework.boot - spring-boot-starter-data-elasticsearch - - - org.springframework.cloud.fn - payload-converter-function - ${project.version} - - - org.testcontainers - elasticsearch - ${testcontainers.version} - test - - - diff --git a/consumer/elasticsearch-consumer/src/test/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerApplicationTests.java b/consumer/elasticsearch-consumer/src/test/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerApplicationTests.java index 1ca21ad7..371ec084 100644 --- a/consumer/elasticsearch-consumer/src/test/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerApplicationTests.java +++ b/consumer/elasticsearch-consumer/src/test/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerApplicationTests.java @@ -60,6 +60,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException; @Tag("integration") @Testcontainers(disabledWithoutDocker = true) public class ElasticsearchConsumerApplicationTests { + private static final Logger log = LoggerFactory.getLogger(ElasticsearchConsumerApplicationTests.class); @Container @@ -73,6 +74,7 @@ public class ElasticsearchConsumerApplicationTests { .withUserConfiguration(ElasticsearchConsumerTestApplication.class, SpelExpressionConverterConfiguration.class); @Test + @SuppressWarnings("unchecked") public void testBasicJsonString() { this.contextRunner .withPropertyValues("elasticsearch.consumer.index=foo", "elasticsearch.consumer.id=1", @@ -96,6 +98,7 @@ public class ElasticsearchConsumerApplicationTests { } @Test + @SuppressWarnings("unchecked") public void testIdPassedAsMessageHeader() { this.contextRunner .withPropertyValues("elasticsearch.consumer.index=foo", @@ -121,6 +124,7 @@ public class ElasticsearchConsumerApplicationTests { } @Test + @SuppressWarnings({ "unchecked", "rawtypes"}) public void testJsonAsMap() { this.contextRunner .withPropertyValues("elasticsearch.consumer.index=foo", "elasticsearch.consumer.id=3", @@ -152,6 +156,7 @@ public class ElasticsearchConsumerApplicationTests { } @Test + @SuppressWarnings("unchecked") public void testAsyncIndexing() { this.contextRunner .withPropertyValues("elasticsearch.consumer.index=foo", "elasticsearch.consumer.async=true", @@ -177,6 +182,7 @@ public class ElasticsearchConsumerApplicationTests { } @Test + @SuppressWarnings("unchecked") public void testBulkIndexingWithIdFromHeader() { this.contextRunner .withPropertyValues("elasticsearch.consumer.index=foo_" + UUID.randomUUID(), "elasticsearch.consumer.batch-size=10", @@ -216,6 +222,7 @@ public class ElasticsearchConsumerApplicationTests { } @Test + @SuppressWarnings("unchecked") public void testBulkIndexingItemFailure() { this.contextRunner .withPropertyValues("elasticsearch.consumer.index=foo_" + UUID.randomUUID(), "elasticsearch.consumer.batch-size=10", @@ -260,6 +267,7 @@ public class ElasticsearchConsumerApplicationTests { } @Test + @SuppressWarnings("unchecked") public void testIndexFromMessageHeader() { this.contextRunner .withPropertyValues("elasticsearch.consumer.index=foo", diff --git a/consumer/file-consumer/build.gradle b/consumer/file-consumer/build.gradle new file mode 100644 index 00000000..efdad627 --- /dev/null +++ b/consumer/file-consumer/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.integration:spring-integration-file' +} diff --git a/consumer/file-consumer/pom.xml b/consumer/file-consumer/pom.xml deleted file mode 100644 index ae403cb2..00000000 --- a/consumer/file-consumer/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - file-consumer - file-consumer - file consumer - - - - org.springframework.integration - spring-integration-file - - - - diff --git a/consumer/ftp-consumer/build.gradle b/consumer/ftp-consumer/build.gradle new file mode 100644 index 00000000..35fd8915 --- /dev/null +++ b/consumer/ftp-consumer/build.gradle @@ -0,0 +1,6 @@ +dependencies { + api project(':ftp-common') + + testImplementation project(':function-test-support') + testImplementation "org.apache.ftpserver:ftpserver-core:$ftpServerVersion" +} diff --git a/consumer/ftp-consumer/pom.xml b/consumer/ftp-consumer/pom.xml deleted file mode 100644 index edbaf169..00000000 --- a/consumer/ftp-consumer/pom.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - ftp-consumer - ftp-consumer - file consumer - - - - org.springframework.integration - spring-integration-ftp - - - org.springframework.cloud.fn - ftp-common - ${project.version} - - - org.springframework.cloud.fn - function-test-support - ${project.version} - test - - - - diff --git a/consumer/jdbc-consumer/build.gradle b/consumer/jdbc-consumer/build.gradle new file mode 100644 index 00000000..a42e198c --- /dev/null +++ b/consumer/jdbc-consumer/build.gradle @@ -0,0 +1,10 @@ +dependencies { + api 'org.springframework.integration:spring-integration-jdbc' + api 'org.springframework.boot:spring-boot-starter-jdbc' + + runtimeOnly 'org.hsqldb:hsqldb' + runtimeOnly 'com.h2database:h2' + runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' + runtimeOnly 'org.postgresql:postgresql' + runtimeOnly 'com.microsoft.sqlserver:mssql-jdbc' +} diff --git a/consumer/jdbc-consumer/pom.xml b/consumer/jdbc-consumer/pom.xml deleted file mode 100644 index a0b6d6d4..00000000 --- a/consumer/jdbc-consumer/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - jdbc-consumer - jdbc-consumer - jdbc consumer - - - - org.springframework.integration - spring-integration-jdbc - - - org.springframework.boot - spring-boot-starter-jdbc - - - org.hsqldb - hsqldb - runtime - - - com.h2database - h2 - runtime - - - org.mariadb.jdbc - mariadb-java-client - runtime - - - org.postgresql - postgresql - runtime - - - com.microsoft.sqlserver - mssql-jdbc - runtime - - - com.microsoft.azure - azure-keyvault - - - - - - diff --git a/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ExplicitTableCreationTests.java b/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ExplicitTableCreationTests.java index bba4fb4e..6c2c065c 100644 --- a/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ExplicitTableCreationTests.java +++ b/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ExplicitTableCreationTests.java @@ -47,7 +47,7 @@ public class ExplicitTableCreationTests extends JdbcConsumerApplicationTests { Payload result = jdbcOperations.query("select a, b from foobar", new BeanPropertyRowMapper<>(Payload.class)) .get(0); - assertThat(result).isEqualToComparingFieldByField(sent); + assertThat(result).usingRecursiveComparison().isEqualTo(sent); } } diff --git a/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ImplicitTableCreationTests.java b/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ImplicitTableCreationTests.java index 0d79c476..fb0eaaaa 100644 --- a/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ImplicitTableCreationTests.java +++ b/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ImplicitTableCreationTests.java @@ -47,7 +47,7 @@ public class ImplicitTableCreationTests extends JdbcConsumerApplicationTests { jdbcConsumer.accept(message); Payload result = jdbcOperations .query("select a, b from no_script", new BeanPropertyRowMapper<>(Payload.class)).get(0); - assertThat(result).isEqualToComparingFieldByField(sent); + assertThat(result).usingRecursiveComparison().isEqualTo(sent); } } diff --git a/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleMappingTests.java b/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleMappingTests.java index 3efbe4b4..b69e4755 100644 --- a/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleMappingTests.java +++ b/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleMappingTests.java @@ -44,7 +44,7 @@ public class SimpleMappingTests extends JdbcConsumerApplicationTests { jdbcConsumer.accept(message); Payload result = jdbcOperations .query("select a, b from messages", new BeanPropertyRowMapper<>(Payload.class)).get(0); - assertThat(result).isEqualToComparingFieldByField(sent); + assertThat(result).usingRecursiveComparison().isEqualTo(sent); } } diff --git a/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SpELTests.java b/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SpELTests.java index 8ec1ddf0..c7906006 100644 --- a/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SpELTests.java +++ b/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SpELTests.java @@ -46,7 +46,7 @@ public class SpELTests extends JdbcConsumerApplicationTests { Payload expected = new Payload("hell", 666); Payload result = jdbcOperations .query("select a, b from messages", new BeanPropertyRowMapper<>(Payload.class)).get(0); - assertThat(result).isEqualToComparingFieldByField(expected); + assertThat(result).usingRecursiveComparison().isEqualTo(expected); } } diff --git a/consumer/kafka-publisher/build.gradle b/consumer/kafka-publisher/build.gradle new file mode 100644 index 00000000..2a46e034 --- /dev/null +++ b/consumer/kafka-publisher/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api 'org.springframework.integration:spring-integration-kafka' + + testImplementation 'org.springframework.kafka:spring-kafka-test' +} diff --git a/consumer/kafka-publisher/pom.xml b/consumer/kafka-publisher/pom.xml deleted file mode 100644 index 1f8f599f..00000000 --- a/consumer/kafka-publisher/pom.xml +++ /dev/null @@ -1,34 +0,0 @@ - - 4.0.0 - - - spring-functions-parent - org.springframework.cloud.fn - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - kafka-publisher - kafka-publisher - Apache Kafka Publisher(Consumer Function) - - - - org.springframework.integration - spring-integration-kafka - - - - org.springframework.kafka - spring-kafka-test - test - - - org.springframework.integration - spring-integration-test - test - - - - diff --git a/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfiguration.java b/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfiguration.java index 6138f10b..ad8821e4 100644 --- a/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfiguration.java +++ b/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfiguration.java @@ -91,7 +91,7 @@ public class KafkaPublisherConfiguration { kafkaProducerSpecComponentCustomizer.customize(kafkaProducerMessageHandlerSpec); } - return kafkaProducerMessageHandlerSpec.get(); + return kafkaProducerMessageHandlerSpec.getObject(); } /** diff --git a/consumer/kafka-publisher/src/test/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfigurationTests.java b/consumer/kafka-publisher/src/test/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfigurationTests.java index 124af477..e7e3d8ac 100644 --- a/consumer/kafka-publisher/src/test/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfigurationTests.java +++ b/consumer/kafka-publisher/src/test/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfigurationTests.java @@ -26,7 +26,6 @@ import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.producer.RecordMetadata; import org.apache.kafka.common.TopicPartition; import org.apache.kafka.common.header.Header; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import reactor.core.publisher.Sinks; @@ -41,11 +40,11 @@ import org.springframework.kafka.KafkaException; import org.springframework.kafka.core.ConsumerFactory; import org.springframework.kafka.core.KafkaTemplate; import org.springframework.kafka.support.KafkaHeaders; -import org.springframework.kafka.test.EmbeddedKafkaBroker; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHandlingException; import org.springframework.messaging.MessageHeaders; import org.springframework.messaging.support.GenericMessage; +import org.springframework.kafka.test.context.EmbeddedKafka; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; @@ -55,23 +54,15 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; * * @since 4.0 */ +@EmbeddedKafka(partitions = 1, controlledShutdown = true) public class KafkaPublisherConfigurationTests { - static final EmbeddedKafkaBroker EMBEDDED_KAFKA = - new EmbeddedKafkaBroker(1, true, 1) - .brokerListProperty("spring.kafka.bootstrap-servers"); - final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of( KafkaAutoConfiguration.class, KafkaPublisherConfiguration.class, SpelExpressionConverterConfiguration.class)); - @BeforeAll - static void initializeEmbeddedKafka() { - EMBEDDED_KAFKA.afterPropertiesSet(); - } - @Test void defaultTopicReceivesTheRecord() { String defaultTopic = "DEFAULT_TOPIC"; @@ -98,7 +89,7 @@ public class KafkaPublisherConfigurationTests { assertThatExceptionOfType(MessageHandlingException.class) .isThrownBy(() -> kafkaConsumer.accept(new GenericMessage<>("test data"))) .withCauseInstanceOf(KafkaException.class) - .withStackTraceContaining("Topic topic1 not present in metadata after 1000 ms."); + .withStackTraceContaining("not present in metadata after 1000 ms."); }); } diff --git a/consumer/log-consumer/build.gradle b/consumer/log-consumer/build.gradle new file mode 100644 index 00000000..5053202b --- /dev/null +++ b/consumer/log-consumer/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api project(':payload-converter-function') + + optionalApi 'org.hibernate.validator:hibernate-validator' +} diff --git a/consumer/log-consumer/pom.xml b/consumer/log-consumer/pom.xml deleted file mode 100644 index d6829aef..00000000 --- a/consumer/log-consumer/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - log-consumer - log-consumer - Log Consumer - - - - org.springframework.cloud.fn - payload-converter-function - ${project.version} - - - org.hibernate.validator - hibernate-validator - true - - - - diff --git a/consumer/log-consumer/src/test/java/org/springframework/cloud/fn/consumer/log/LogConsumerApplicationTests.java b/consumer/log-consumer/src/test/java/org/springframework/cloud/fn/consumer/log/LogConsumerApplicationTests.java index 5b990a01..392de1b4 100644 --- a/consumer/log-consumer/src/test/java/org/springframework/cloud/fn/consumer/log/LogConsumerApplicationTests.java +++ b/consumer/log-consumer/src/test/java/org/springframework/cloud/fn/consumer/log/LogConsumerApplicationTests.java @@ -62,6 +62,7 @@ class LogConsumerApplicationTests { testMessage(message, "{\"foo\":\"bar\"}"); } + @SuppressWarnings("unchecked") private void testMessage(Message> message, String expectedPayload) { assertThat(this.loggingHandler.getLevel()).isEqualTo(LoggingHandler.Level.WARN); LogAccessor logger = TestUtils.getPropertyValue(this.loggingHandler, "messageLogger", LogAccessor.class); diff --git a/consumer/mongodb-consumer/build.gradle b/consumer/mongodb-consumer/build.gradle new file mode 100644 index 00000000..868d95df --- /dev/null +++ b/consumer/mongodb-consumer/build.gradle @@ -0,0 +1,6 @@ +dependencies { + api 'org.springframework.integration:spring-integration-mongodb' + api 'org.mongodb:mongodb-driver-reactivestreams' + + testImplementation 'org.testcontainers:mongodb' +} diff --git a/consumer/mongodb-consumer/pom.xml b/consumer/mongodb-consumer/pom.xml deleted file mode 100644 index d0e89048..00000000 --- a/consumer/mongodb-consumer/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - mongodb-consumer - mongodb-consumer - Mongo DB consumer - - - - org.springframework.integration - spring-integration-mongodb - - - org.mongodb - mongodb-driver-reactivestreams - - - org.testcontainers - mongodb - ${testcontainers.version} - test - - - org.springframework.cloud.fn - mongodb-common - ${project.version} - test-jar - test - - - - diff --git a/consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerApplicationTests.java b/consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerApplicationTests.java index b5f43bfc..680635be 100644 --- a/consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerApplicationTests.java +++ b/consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerApplicationTests.java @@ -30,7 +30,6 @@ import reactor.test.StepVerifier; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.fn.common.mongo.MongoDbTestContainerSupport; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.messaging.Message; import org.springframework.messaging.support.GenericMessage; diff --git a/common/mongodb-common/src/test/java/org/springframework/cloud/fn/common/mongo/MongoDbTestContainerSupport.java b/consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbTestContainerSupport.java similarity index 96% rename from common/mongodb-common/src/test/java/org/springframework/cloud/fn/common/mongo/MongoDbTestContainerSupport.java rename to consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbTestContainerSupport.java index 8848a342..bdb32724 100644 --- a/common/mongodb-common/src/test/java/org/springframework/cloud/fn/common/mongo/MongoDbTestContainerSupport.java +++ b/consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbTestContainerSupport.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.cloud.fn.common.mongo; +package org.springframework.cloud.fn.consumer.mongo; import java.time.Duration; diff --git a/consumer/mqtt-consumer/build.gradle b/consumer/mqtt-consumer/build.gradle new file mode 100644 index 00000000..44adc921 --- /dev/null +++ b/consumer/mqtt-consumer/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api project(':mqtt-common') +} diff --git a/consumer/mqtt-consumer/pom.xml b/consumer/mqtt-consumer/pom.xml deleted file mode 100644 index 9cfbc05a..00000000 --- a/consumer/mqtt-consumer/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - mqtt-consumer - mqtt-consumer - mqtt consumer - - - - org.springframework.cloud.fn - mqtt-common - ${project.version} - - - diff --git a/consumer/pom.xml b/consumer/pom.xml deleted file mode 100644 index 1cb9ef23..00000000 --- a/consumer/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud.fn - java-functions-consumer - 4.0.1-SNAPSHOT - java-functions-consumer - Java Functions Consumer - pom - - - - cassandra-consumer - elasticsearch-consumer - analytics-consumer - file-consumer - ftp-consumer - jdbc-consumer - kafka-publisher - log-consumer - mongodb-consumer - mqtt-consumer - rabbit-consumer - redis-consumer - sftp-consumer - tcp-consumer - websocket-consumer - s3-consumer - twitter-consumer - wavefront-consumer - rsocket-consumer - xmpp-consumer - zeromq-consumer - - - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0 - - true - - - - - diff --git a/consumer/rabbit-consumer/build.gradle b/consumer/rabbit-consumer/build.gradle new file mode 100644 index 00000000..e008d507 --- /dev/null +++ b/consumer/rabbit-consumer/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api 'org.springframework.integration:spring-integration-amqp' + api 'org.springframework.boot:spring-boot-starter-amqp' + api 'org.springframework.boot:spring-boot-starter-web' +} diff --git a/consumer/rabbit-consumer/pom.xml b/consumer/rabbit-consumer/pom.xml deleted file mode 100644 index 77d0ae75..00000000 --- a/consumer/rabbit-consumer/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - rabbit-consumer - rabbit-consumer - Rabbit consumer - - - - org.springframework.integration - spring-integration-amqp - - - org.springframework.boot - spring-boot-starter-amqp - - - org.springframework.boot - spring-boot-starter-web - - - - diff --git a/consumer/redis-consumer/build.gradle b/consumer/redis-consumer/build.gradle new file mode 100644 index 00000000..342cbd1d --- /dev/null +++ b/consumer/redis-consumer/build.gradle @@ -0,0 +1,4 @@ +dependencies { + api 'org.springframework.integration:spring-integration-redis' + api 'org.springframework.boot:spring-boot-starter-data-redis' +} diff --git a/consumer/redis-consumer/pom.xml b/consumer/redis-consumer/pom.xml deleted file mode 100644 index ef5ab2d7..00000000 --- a/consumer/redis-consumer/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - redis-consumer - redis-consumer - Redis Consumer - - - - org.springframework.boot - spring-boot-starter-data-redis - - - org.springframework.integration - spring-integration-redis - - - org.springframework.cloud - spring-cloud-starter-bootstrap - ${spring-cloud-starters.version} - test - - - org.springframework.cloud.fn - redis-common - ${project.version} - test-jar - test - - - - diff --git a/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/AbstractRedisConsumerTests.java b/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/AbstractRedisConsumerTests.java index d7af0153..58370fee 100644 --- a/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/AbstractRedisConsumerTests.java +++ b/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/AbstractRedisConsumerTests.java @@ -18,8 +18,6 @@ package org.springframework.cloud.fn.consumer.redis; import java.util.function.Consumer; -import org.junit.jupiter.api.Tag; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.context.SpringBootTest; @@ -36,7 +34,6 @@ import org.springframework.test.context.DynamicPropertySource; */ @SpringBootTest @DirtiesContext -@Tag("integration") public class AbstractRedisConsumerTests implements RedisTestContainerSupport { @DynamicPropertySource diff --git a/common/redis-common/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisTestContainerSupport.java b/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisTestContainerSupport.java similarity index 100% rename from common/redis-common/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisTestContainerSupport.java rename to consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisTestContainerSupport.java diff --git a/consumer/rsocket-consumer/build.gradle b/consumer/rsocket-consumer/build.gradle new file mode 100644 index 00000000..f672f1c5 --- /dev/null +++ b/consumer/rsocket-consumer/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.boot:spring-boot-starter-rsocket' +} diff --git a/consumer/rsocket-consumer/pom.xml b/consumer/rsocket-consumer/pom.xml deleted file mode 100644 index 35aac837..00000000 --- a/consumer/rsocket-consumer/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - rsocket-consumer - rsocket-consumer - - - - org.springframework.boot - spring-boot-starter-rsocket - - - - diff --git a/consumer/rsocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerTests.java b/consumer/rsocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerTests.java index 561f7134..4c57c437 100644 --- a/consumer/rsocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerTests.java +++ b/consumer/rsocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerTests.java @@ -79,11 +79,12 @@ public class RsocketConsumerTests { @SpringBootConfiguration @Controller static class RSocketserverApplication { + static final ReplayProcessor fireForgetPayloads = ReplayProcessor.create(); @MessageMapping("test-route") void someMethod(String payload) { - this.fireForgetPayloads.onNext(payload); + fireForgetPayloads.onNext(payload); } } } diff --git a/consumer/s3-consumer/build.gradle b/consumer/s3-consumer/build.gradle new file mode 100644 index 00000000..0ea0e824 --- /dev/null +++ b/consumer/s3-consumer/build.gradle @@ -0,0 +1,11 @@ +dependencies { + api project(':aws-s3-common') + api project(':file-common') + api 'software.amazon.awssdk:s3-transfer-manager' + + testImplementation 'org.springframework:spring-web' +} + +tasks.withType(JavaForkOptions) { + jvmArgs '--add-opens', 'java.base/java.nio=ALL-UNNAMED' +} \ No newline at end of file diff --git a/consumer/s3-consumer/pom.xml b/consumer/s3-consumer/pom.xml deleted file mode 100644 index b0d08a25..00000000 --- a/consumer/s3-consumer/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - s3-consumer - s3-consumer - s3 consumer - - - - org.springframework.cloud.fn - aws-s3-common - ${project.version} - - - org.springframework.cloud.fn - file-common - ${project.version} - - - software.amazon.awssdk - s3-transfer-manager - - - org.springframework - spring-web - test - - - - diff --git a/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java b/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java index c209f941..14ccc5ba 100644 --- a/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java +++ b/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java @@ -36,6 +36,7 @@ import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Bean; import org.springframework.http.MediaType; import org.springframework.messaging.Message; @@ -43,7 +44,6 @@ import org.springframework.test.annotation.DirtiesContext; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.willReturn; -import static org.mockito.Mockito.spy; @DirtiesContext @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, @@ -66,7 +66,7 @@ public abstract class AbstractAwsS3ConsumerMockTests { @TempDir protected static Path temporaryRemoteFolder; - @Autowired + @MockBean private S3AsyncClient amazonS3; @Autowired @@ -80,8 +80,6 @@ public abstract class AbstractAwsS3ConsumerMockTests { @BeforeEach public void setupTest() { - S3AsyncClient amazonS3 = spy(this.amazonS3); - willReturn(CompletableFuture.completedFuture(PutObjectResponse.builder().build())) .given(amazonS3) .putObject(any(PutObjectRequest.class), any(AsyncRequestBody.class)); diff --git a/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadFileTests.java b/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadFileTests.java index a04a8a82..2ec4d009 100644 --- a/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadFileTests.java +++ b/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadFileTests.java @@ -69,7 +69,7 @@ public class AmazonS3UploadFileTests extends AbstractAwsS3ConsumerMockTests { AsyncRequestBody asyncRequestBody = asyncRequestBodyArgumentCaptor.getValue(); StepVerifier.create(asyncRequestBody) - .assertNext(buffer -> assertThat(buffer.array()).isEmpty()) + .assertNext(buffer -> assertThat(TestUtils.getPropertyValue(buffer, "hb", byte[].class)).isEmpty()) .expectComplete() .verify(); diff --git a/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadInputStreamTests.java b/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadInputStreamTests.java index 8c179965..315aab39 100644 --- a/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadInputStreamTests.java +++ b/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadInputStreamTests.java @@ -17,6 +17,7 @@ package org.springframework.cloud.fn.consumer.s3; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; @@ -69,7 +70,7 @@ public class AmazonS3UploadInputStreamTests extends AbstractAwsS3ConsumerMockTes AsyncRequestBody asyncRequestBody = asyncRequestBodyArgumentCaptor.getValue(); - StepVerifier.create(asyncRequestBody.map(buffer -> new String(buffer.array()))) + StepVerifier.create(asyncRequestBody.map(buffer -> StandardCharsets.UTF_8.decode(buffer).toString())) .expectNext("a") .expectComplete() .verify(); diff --git a/consumer/sftp-consumer/build.gradle b/consumer/sftp-consumer/build.gradle new file mode 100644 index 00000000..b56532dd --- /dev/null +++ b/consumer/sftp-consumer/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api 'org.springframework.integration:spring-integration-sftp' + + testImplementation project(':function-test-support') +} diff --git a/consumer/sftp-consumer/pom.xml b/consumer/sftp-consumer/pom.xml deleted file mode 100644 index b90e8ee3..00000000 --- a/consumer/sftp-consumer/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - sftp-consumer - sftp-consumer - file consumer - - - - org.springframework.integration - spring-integration-sftp - - - org.springframework.cloud.fn - function-test-support - ${project.version} - test - - - - diff --git a/consumer/tcp-consumer/build.gradle b/consumer/tcp-consumer/build.gradle new file mode 100644 index 00000000..39f81c78 --- /dev/null +++ b/consumer/tcp-consumer/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api project(':tcp-common') +} diff --git a/consumer/tcp-consumer/pom.xml b/consumer/tcp-consumer/pom.xml deleted file mode 100644 index 84477595..00000000 --- a/consumer/tcp-consumer/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - tcp-consumer - tcp-consumer - tcp consumer - - - - org.springframework.cloud.fn - tcp-common - ${project.version} - - - - diff --git a/consumer/twitter-consumer/build.gradle b/consumer/twitter-consumer/build.gradle new file mode 100644 index 00000000..d4eed9fd --- /dev/null +++ b/consumer/twitter-consumer/build.gradle @@ -0,0 +1,4 @@ +dependencies { + api project(':twitter-common') + api project(':payload-converter-function') +} diff --git a/consumer/twitter-consumer/pom.xml b/consumer/twitter-consumer/pom.xml deleted file mode 100644 index 15b22fb4..00000000 --- a/consumer/twitter-consumer/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - twitter-consumer - twitter-consumer - twitter consumer - - - - org.springframework.cloud.fn - twitter-common - ${project.version} - - - org.springframework.cloud.fn - payload-converter-function - ${project.version} - - - - diff --git a/consumer/wavefront-consumer/build.gradle b/consumer/wavefront-consumer/build.gradle new file mode 100644 index 00000000..5b8dc7e6 --- /dev/null +++ b/consumer/wavefront-consumer/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.boot:spring-boot-starter-web' +} diff --git a/consumer/wavefront-consumer/pom.xml b/consumer/wavefront-consumer/pom.xml deleted file mode 100644 index a2d5ced9..00000000 --- a/consumer/wavefront-consumer/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - wavefront-consumer - wavefront-consumer - Wavefront Consumer - - - 2.4.0 - - - - - org.springframework.boot - spring-boot-starter-web - - - - diff --git a/consumer/websocket-consumer/build.gradle b/consumer/websocket-consumer/build.gradle new file mode 100644 index 00000000..4997937f --- /dev/null +++ b/consumer/websocket-consumer/build.gradle @@ -0,0 +1,8 @@ +dependencies { + api 'org.springframework.boot:spring-boot-starter-actuator' + api 'org.springframework:spring-websocket' + api 'io.netty:netty-all' + + testImplementation 'org.springframework.boot:spring-boot-starter-web' + testImplementation project(':function-test-support') +} diff --git a/consumer/websocket-consumer/pom.xml b/consumer/websocket-consumer/pom.xml deleted file mode 100644 index 3a6d7c51..00000000 --- a/consumer/websocket-consumer/pom.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - websocket-consumer - websocket-consumer - websocket consumer - - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework - spring-websocket - - - io.netty - netty-all - - - org.springframework.boot - spring-boot-starter-web - test - - - org.springframework.cloud.fn - function-test-support - ${project.version} - test - - - - diff --git a/consumer/xmpp-consumer/build.gradle b/consumer/xmpp-consumer/build.gradle new file mode 100644 index 00000000..40ccc9f9 --- /dev/null +++ b/consumer/xmpp-consumer/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api project(':xmpp-common') + + testImplementation project(':function-test-support') +} diff --git a/consumer/xmpp-consumer/pom.xml b/consumer/xmpp-consumer/pom.xml deleted file mode 100644 index b7c20688..00000000 --- a/consumer/xmpp-consumer/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - xmpp-consumer - xmpp-consumer - XMPP consumer - - - - org.springframework.cloud.fn - xmpp-common - ${project.version} - - - org.springframework.cloud.fn - function-test-support - ${project.version} - test - - - - diff --git a/consumer/zeromq-consumer/build.gradle b/consumer/zeromq-consumer/build.gradle new file mode 100644 index 00000000..4d5a4bed --- /dev/null +++ b/consumer/zeromq-consumer/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.integration:spring-integration-zeromq' +} diff --git a/consumer/zeromq-consumer/pom.xml b/consumer/zeromq-consumer/pom.xml deleted file mode 100644 index 49c347ba..00000000 --- a/consumer/zeromq-consumer/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - zeromq-consumer - zeromq-consumer - ZeroMQ consumer - - - - org.springframework.integration - spring-integration-zeromq - - - - diff --git a/function-dependencies/build.gradle b/function-dependencies/build.gradle new file mode 100644 index 00000000..1aea8767 --- /dev/null +++ b/function-dependencies/build.gradle @@ -0,0 +1,20 @@ +description = 'Spring Functions Catlog (Bill of Materials)' + +apply plugin: 'java-platform' +apply from: "${rootDir}/publish-maven.gradle" + +dependencies { + constraints { + javaProjects.sort { "$it.name" }.each { + api it + } + } +} + +publishing { + publications { + mavenJava(MavenPublication) { + from components.javaPlatform + } + } +} \ No newline at end of file diff --git a/function-dependencies/pom.xml b/function-dependencies/pom.xml deleted file mode 100644 index 34bed223..00000000 --- a/function-dependencies/pom.xml +++ /dev/null @@ -1,310 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.stream.app - stream-applications-build - 4.0.1-SNAPSHOT - ../../stream-applications-build/pom.xml - - - org.springframework.cloud.fn - function-dependencies - pom - - - - - org.springframework.cloud.fn - mail-supplier - ${project.version} - - - org.springframework.cloud.fn - syslog-supplier - ${project.version} - - - org.springframework.cloud.fn - debezium-supplier - ${project.version} - - - org.springframework.cloud.fn - file-supplier - ${project.version} - - - org.springframework.cloud.fn - ftp-supplier - ${project.version} - - - org.springframework.cloud.fn - http-supplier - ${project.version} - - - org.springframework.cloud.fn - jdbc-supplier - ${project.version} - - - org.springframework.cloud.fn - jms-supplier - ${project.version} - - - org.springframework.cloud.fn - kafka-supplier - ${project.version} - - - org.springframework.cloud.fn - mongodb-supplier - ${project.version} - - - org.springframework.cloud.fn - mqtt-supplier - ${project.version} - - - org.springframework.cloud.fn - rabbit-supplier - ${project.version} - - - org.springframework.cloud.fn - s3-supplier - ${project.version} - - - org.springframework.cloud.fn - sftp-supplier - ${project.version} - - - org.springframework.cloud.fn - tcp-supplier - ${project.version} - - - org.springframework.cloud.fn - time-supplier - ${project.version} - - - org.springframework.cloud.fn - twitter-supplier - ${project.version} - - - org.springframework.cloud.fn - websocket-supplier - ${project.version} - - - org.springframework.cloud.fn - xmpp-supplier - ${project.version} - - - org.springframework.cloud.fn - zeromq-supplier - ${project.version} - - - org.springframework.cloud.fn - analytics-consumer - ${project.version} - - - org.springframework.cloud.fn - elasticsearch-consumer - ${project.version} - - - org.springframework.cloud.fn - rsocket-consumer - ${project.version} - - - org.springframework.cloud.fn - cassandra-consumer - ${project.version} - - - org.springframework.cloud.fn - file-consumer - ${project.version} - - - org.springframework.cloud.fn - ftp-consumer - ${project.version} - - - org.springframework.cloud.fn - jdbc-consumer - ${project.version} - - - org.springframework.cloud.fn - kafka-publisher - ${project.version} - - - org.springframework.cloud.fn - log-consumer - ${project.version} - - - org.springframework.cloud.fn - mongodb-consumer - ${project.version} - - - org.springframework.cloud.fn - mqtt-consumer - ${project.version} - - - org.springframework.cloud.fn - rabbit-consumer - ${project.version} - - - org.springframework.cloud.fn - redis-consumer - ${project.version} - - - org.springframework.cloud.fn - s3-consumer - ${project.version} - - - org.springframework.cloud.fn - sftp-consumer - ${project.version} - - - org.springframework.cloud.fn - tcp-consumer - ${project.version} - - - org.springframework.cloud.fn - twitter-consumer - ${project.version} - - - org.springframework.cloud.fn - xmpp-consumer - ${project.version} - - - org.springframework.cloud.fn - wavefront-consumer - ${project.version} - - - org.springframework.cloud.fn - websocket-consumer - ${project.version} - - - org.springframework.cloud.fn - zeromq-consumer - ${project.version} - - - org.springframework.cloud.fn - aggregator-function - ${project.version} - - - org.springframework.cloud.fn - filter-function - ${project.version} - - - org.springframework.cloud.fn - header-enricher-function - ${project.version} - - - org.springframework.cloud.fn - header-filter-function - ${project.version} - - - org.springframework.cloud.fn - http-request-function - ${project.version} - - - org.springframework.cloud.fn - image-recognition-function - ${project.version} - - - org.springframework.cloud.fn - object-detection-function - ${project.version} - - - org.springframework.cloud.fn - payload-converter-function - ${project.version} - - - org.springframework.cloud.fn - semantic-segmentation-function - ${project.version} - - - org.springframework.cloud.fn - spel-function - ${project.version} - - - org.springframework.cloud.fn - splitter-function - ${project.version} - - - org.springframework.cloud.fn - task-launch-request-function - ${project.version} - - - org.springframework.cloud.fn - twitter-function - ${project.version} - - - org.springframework.cloud.fn - function-test-support - ${project.version} - test - - - - - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0 - - false - - - - - diff --git a/function/aggregator-function/build.gradle b/function/aggregator-function/build.gradle new file mode 100644 index 00000000..05d0414e --- /dev/null +++ b/function/aggregator-function/build.gradle @@ -0,0 +1,18 @@ +dependencies { + api project(':payload-converter-function') + api 'org.springframework.integration:spring-integration-mongodb' + api 'org.springframework.integration:spring-integration-redis' + api 'org.springframework.integration:spring-integration-jdbc' + + runtimeOnly 'org.springframework.boot:spring-boot-starter-data-redis' + runtimeOnly 'org.springframework.boot:spring-boot-starter-data-mongodb' + runtimeOnly 'org.springframework.boot:spring-boot-starter-jdbc' + runtimeOnly 'org.hsqldb:hsqldb' + runtimeOnly 'com.h2database:h2' + runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' + runtimeOnly 'org.postgresql:postgresql' + + testImplementation 'org.testcontainers:mongodb' + testImplementation project(':mongodb-consumer').sourceSets.test.output + testImplementation project(':redis-consumer').sourceSets.test.output +} diff --git a/function/aggregator-function/pom.xml b/function/aggregator-function/pom.xml deleted file mode 100644 index 91b46c22..00000000 --- a/function/aggregator-function/pom.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - aggregator-function - aggregator-function - Spring Native Function for Aggregator - - - - org.springframework.cloud.fn - payload-converter-function - ${project.version} - - - org.springframework.integration - spring-integration-core - - - - org.springframework.integration - spring-integration-mongodb - - - org.springframework.boot - spring-boot-starter-data-mongodb - runtime - - - org.testcontainers - mongodb - ${testcontainers.version} - test - - - org.springframework.cloud.fn - mongodb-common - ${project.version} - test-jar - test - - - - org.springframework.integration - spring-integration-redis - - - org.springframework.boot - spring-boot-starter-data-redis - runtime - - - org.springframework.cloud.fn - redis-common - ${project.version} - test-jar - test - - - - org.springframework.integration - spring-integration-jdbc - - - org.springframework.boot - spring-boot-starter-jdbc - runtime - - - org.hsqldb - hsqldb - runtime - - - com.h2database - h2 - runtime - - - org.mariadb.jdbc - mariadb-java-client - runtime - - - org.postgresql - postgresql - runtime - - - - diff --git a/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/CustomPropsAndMongoMessageStoreAggregatorTests.java b/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/CustomPropsAndMongoMessageStoreAggregatorTests.java index abbc4b66..06e6e072 100644 --- a/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/CustomPropsAndMongoMessageStoreAggregatorTests.java +++ b/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/CustomPropsAndMongoMessageStoreAggregatorTests.java @@ -24,7 +24,7 @@ import reactor.core.publisher.Flux; import reactor.test.StepVerifier; import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo; -import org.springframework.cloud.fn.common.mongo.MongoDbTestContainerSupport; +import org.springframework.cloud.fn.consumer.mongo.MongoDbTestContainerSupport; import org.springframework.integration.mongodb.store.ConfigurableMongoDbMessageStore; import org.springframework.integration.test.util.TestUtils; import org.springframework.messaging.Message; diff --git a/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/RedisMessageStoreAggregatorTests.java b/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/RedisMessageStoreAggregatorTests.java index feb39c26..685c91d2 100644 --- a/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/RedisMessageStoreAggregatorTests.java +++ b/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/RedisMessageStoreAggregatorTests.java @@ -42,6 +42,7 @@ import static org.assertj.core.api.Assertions.assertThat; */ @TestPropertySource(properties = "aggregator.message-store-type=redis") public class RedisMessageStoreAggregatorTests extends AbstractAggregatorFunctionTests implements RedisTestContainerSupport { + @DynamicPropertySource static void redisProperties(DynamicPropertyRegistry registry) { registry.add("spring.data.redis.url", RedisTestContainerSupport::getUri); diff --git a/function/filter-function/build.gradle b/function/filter-function/build.gradle new file mode 100644 index 00000000..52c7b046 --- /dev/null +++ b/function/filter-function/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api project(':payload-converter-function') +} diff --git a/function/filter-function/pom.xml b/function/filter-function/pom.xml deleted file mode 100644 index 0975e39b..00000000 --- a/function/filter-function/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - filter-function - filter-function - Spring Native Function for applying filter SpEL expressions - - - - org.springframework.cloud.fn - payload-converter-function - ${project.version} - - - - diff --git a/function/header-enricher-function/build.gradle b/function/header-enricher-function/build.gradle new file mode 100644 index 00000000..52c7b046 --- /dev/null +++ b/function/header-enricher-function/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api project(':payload-converter-function') +} diff --git a/function/header-enricher-function/pom.xml b/function/header-enricher-function/pom.xml deleted file mode 100644 index beb8b7c1..00000000 --- a/function/header-enricher-function/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - header-enricher-function - header-enricher-function - Spring Native Function for applying message header enrichment - - - - org.springframework.cloud.fn - payload-converter-function - ${project.version} - - - - diff --git a/function/header-filter-function/build.gradle b/function/header-filter-function/build.gradle new file mode 100644 index 00000000..52c7b046 --- /dev/null +++ b/function/header-filter-function/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api project(':payload-converter-function') +} diff --git a/function/header-filter-function/pom.xml b/function/header-filter-function/pom.xml deleted file mode 100644 index f8651e81..00000000 --- a/function/header-filter-function/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - header-filter-function - header-filter-function - Spring Native Function for applying message filters - - - - org.springframework.cloud.fn - payload-converter-function - ${project.version} - - - org.assertj - assertj-core - test - - - - diff --git a/function/http-request-function/build.gradle b/function/http-request-function/build.gradle new file mode 100644 index 00000000..36965082 --- /dev/null +++ b/function/http-request-function/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api 'org.springframework.boot:spring-boot-starter-webflux' + + testImplementation 'com.squareup.okhttp3:mockwebserver' +} diff --git a/function/http-request-function/pom.xml b/function/http-request-function/pom.xml deleted file mode 100644 index 0d0578db..00000000 --- a/function/http-request-function/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - http-request-function - http-request-function - Spring Native Function for Submitting an HTTP request - - - - org.springframework.boot - spring-boot-starter-webflux - - - com.squareup.okhttp3 - mockwebserver - test - - - - diff --git a/function/image-recognition-function/build.gradle b/function/image-recognition-function/build.gradle new file mode 100644 index 00000000..e68b45cd --- /dev/null +++ b/function/image-recognition-function/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api project(':tensorflow-common') +} diff --git a/function/image-recognition-function/pom.xml b/function/image-recognition-function/pom.xml deleted file mode 100644 index 0806bc4d..00000000 --- a/function/image-recognition-function/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - image-recognition-function - image-recognition-function - Spring Native Function for Tensorflow Integration - - - 1.3.2 - - - - - org.springframework.cloud.fn - tensorflow-common - ${project.version} - - - - - - - tensorflow-snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - - true - - - - - - diff --git a/function/object-detection-function/build.gradle b/function/object-detection-function/build.gradle new file mode 100644 index 00000000..f83a59c8 --- /dev/null +++ b/function/object-detection-function/build.gradle @@ -0,0 +1,18 @@ +plugins { + id 'com.google.protobuf' version '0.9.4' +} + +ext { + protobufVersion='3.25.1' +} + +dependencies { + api project(':tensorflow-common') + api "com.google.protobuf:protobuf-java:$protobufVersion" +} + +protobuf { + protoc { + artifact = "com.google.protobuf:protoc:$protobufVersion" + } +} \ No newline at end of file diff --git a/function/object-detection-function/pom.xml b/function/object-detection-function/pom.xml deleted file mode 100644 index 6389b5b3..00000000 --- a/function/object-detection-function/pom.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - object-detection-function - object-detection-function - Spring Native Function for Tensorflow Integration - - 3.19.6 - - - - com.google.protobuf - protobuf-java - ${protobuf.version} - - - org.springframework.cloud.fn - tensorflow-common - ${project.version} - - - - - - - com.github.os72 - protoc-jar-maven-plugin - - 3.11.4 - - - generate-sources - - run - - - - - src/main/proto - - - - - java - src/main/java - - - com.google.protobuf:protoc:${protobuf.version} - - - - - - - - - - - - - - - - - diff --git a/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputAdapter.java b/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputAdapter.java index 1dfff4e4..8b505841 100644 --- a/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputAdapter.java +++ b/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputAdapter.java @@ -62,7 +62,7 @@ public class ObjectDetectionInputAdapter implements Function> apply(byte[] inputImage) { - try (Tensor inputTensor = Tensor.create(inputImage)) { + try (Tensor> inputTensor = Tensor.create(inputImage)) { return this.imageLoaderGraph.apply(Collections.singletonMap(RAW_IMAGE, inputTensor)); } } diff --git a/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionOutputConverter.java b/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionOutputConverter.java index f913c6ad..2c4d3801 100644 --- a/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionOutputConverter.java +++ b/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionOutputConverter.java @@ -108,7 +108,7 @@ public class ObjectDetectionOutputConverter implements Function - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @return Whether the name field is set. - */ - boolean hasName(); - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @return The name. - */ - java.lang.String getName(); - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @return The bytes for name. - */ - com.google.protobuf.ByteString - getNameBytes(); - - /** - * - * Integer id that maps to the string name above. Label ids should start - * from 1. - * - * - * optional int32 id = 2; - * @return Whether the id field is set. - */ - boolean hasId(); - /** - * - * Integer id that maps to the string name above. Label ids should start - * from 1. - * - * - * optional int32 id = 2; - * @return The id. - */ - int getId(); - - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @return Whether the displayName field is set. - */ - boolean hasDisplayName(); - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @return The displayName. - */ - java.lang.String getDisplayName(); - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @return The bytes for displayName. - */ - com.google.protobuf.ByteString - getDisplayNameBytes(); - } - /** - * Protobuf type {@code org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem} - */ - public static final class StringIntLabelMapItem extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem) - StringIntLabelMapItemOrBuilder { - private static final long serialVersionUID = 0L; - // Use StringIntLabelMapItem.newBuilder() to construct. - private StringIntLabelMapItem(com.google.protobuf.GeneratedMessageV3.Builder> builder) { - super(builder); - } - private StringIntLabelMapItem() { - name_ = ""; - displayName_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new StringIntLabelMapItem(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMapItem_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMapItem_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.class, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder.class); - } - - private int bitField0_; - public static final int NAME_FIELD_NUMBER = 1; - private volatile java.lang.Object name_; - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @return Whether the name field is set. - */ - @java.lang.Override - public boolean hasName() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ID_FIELD_NUMBER = 2; - private int id_; - /** - * - * Integer id that maps to the string name above. Label ids should start - * from 1. - * - * - * optional int32 id = 2; - * @return Whether the id field is set. - */ - @java.lang.Override - public boolean hasId() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * - * Integer id that maps to the string name above. Label ids should start - * from 1. - * - * - * optional int32 id = 2; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - - public static final int DISPLAY_NAME_FIELD_NUMBER = 3; - private volatile java.lang.Object displayName_; - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @return Whether the displayName field is set. - */ - @java.lang.Override - public boolean hasDisplayName() { - return ((bitField0_ & 0x00000004) != 0); - } - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @return The displayName. - */ - @java.lang.Override - public java.lang.String getDisplayName() { - java.lang.Object ref = displayName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - displayName_ = s; - } - return s; - } - } - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @return The bytes for displayName. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDisplayNameBytes() { - java.lang.Object ref = displayName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (((bitField0_ & 0x00000001) != 0)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); - } - if (((bitField0_ & 0x00000002) != 0)) { - output.writeInt32(2, id_); - } - if (((bitField0_ & 0x00000004) != 0)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, displayName_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (((bitField0_ & 0x00000001) != 0)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); - } - if (((bitField0_ & 0x00000002) != 0)) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, id_); - } - if (((bitField0_ & 0x00000004) != 0)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, displayName_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem)) { - return super.equals(obj); - } - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem other = (org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem) obj; - - if (hasName() != other.hasName()) return false; - if (hasName()) { - if (!getName() - .equals(other.getName())) return false; - } - if (hasId() != other.hasId()) return false; - if (hasId()) { - if (getId() - != other.getId()) return false; - } - if (hasDisplayName() != other.hasDisplayName()) return false; - if (hasDisplayName()) { - if (!getDisplayName() - .equals(other.getDisplayName())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasName()) { - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - } - if (hasId()) { - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); - } - if (hasDisplayName()) { - hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER; - hash = (53 * hash) + getDisplayName().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem) - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItemOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMapItem_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMapItem_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.class, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder.class); - } - - // Construct using org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - name_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - displayName_ = ""; - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMapItem_descriptor; - } - - @java.lang.Override - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem getDefaultInstanceForType() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.getDefaultInstance(); - } - - @java.lang.Override - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem build() { - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem buildPartial() { - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem result = new org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) != 0)) { - to_bitField0_ |= 0x00000001; - } - result.name_ = name_; - if (((from_bitField0_ & 0x00000002) != 0)) { - result.id_ = id_; - to_bitField0_ |= 0x00000002; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - to_bitField0_ |= 0x00000004; - } - result.displayName_ = displayName_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem) { - return mergeFrom((org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem other) { - if (other == org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.getDefaultInstance()) return this; - if (other.hasName()) { - bitField0_ |= 0x00000001; - name_ = other.name_; - onChanged(); - } - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasDisplayName()) { - bitField0_ |= 0x00000004; - displayName_ = other.displayName_; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - name_ = input.readBytes(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - id_ = input.readInt32(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 26: { - displayName_ = input.readBytes(); - bitField0_ |= 0x00000004; - break; - } // case 26 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object name_ = ""; - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @return Whether the name field is set. - */ - public boolean hasName() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @return The bytes for name. - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - onChanged(); - return this; - } - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @return This builder for chaining. - */ - public Builder clearName() { - bitField0_ = (bitField0_ & ~0x00000001); - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - /** - * - * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - * - * - * optional string name = 1; - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - onChanged(); - return this; - } - - private int id_ ; - /** - * - * Integer id that maps to the string name above. Label ids should start - * from 1. - * - * - * optional int32 id = 2; - * @return Whether the id field is set. - */ - @java.lang.Override - public boolean hasId() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * - * Integer id that maps to the string name above. Label ids should start - * from 1. - * - * - * optional int32 id = 2; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - /** - * - * Integer id that maps to the string name above. Label ids should start - * from 1. - * - * - * optional int32 id = 2; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(int value) { - bitField0_ |= 0x00000002; - id_ = value; - onChanged(); - return this; - } - /** - * - * Integer id that maps to the string name above. Label ids should start - * from 1. - * - * - * optional int32 id = 2; - * @return This builder for chaining. - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000002); - id_ = 0; - onChanged(); - return this; - } - - private java.lang.Object displayName_ = ""; - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @return Whether the displayName field is set. - */ - public boolean hasDisplayName() { - return ((bitField0_ & 0x00000004) != 0); - } - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @return The displayName. - */ - public java.lang.String getDisplayName() { - java.lang.Object ref = displayName_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - displayName_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @return The bytes for displayName. - */ - public com.google.protobuf.ByteString - getDisplayNameBytes() { - java.lang.Object ref = displayName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @param value The displayName to set. - * @return This builder for chaining. - */ - public Builder setDisplayName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - displayName_ = value; - onChanged(); - return this; - } - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @return This builder for chaining. - */ - public Builder clearDisplayName() { - bitField0_ = (bitField0_ & ~0x00000004); - displayName_ = getDefaultInstance().getDisplayName(); - onChanged(); - return this; - } - /** - * - * Human readable string label. - * - * - * optional string display_name = 3; - * @param value The bytes for displayName to set. - * @return This builder for chaining. - */ - public Builder setDisplayNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - displayName_ = value; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem) - } - - // @@protoc_insertion_point(class_scope:org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem) - private static final org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem(); - } - - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - @java.lang.Deprecated public static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public StringIntLabelMapItem parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface StringIntLabelMapOrBuilder extends - // @@protoc_insertion_point(interface_extends:org.springframework.cloud.fn.object.detection.protos.StringIntLabelMap) - com.google.protobuf.MessageOrBuilder { - - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - java.util.List - getItemList(); - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem getItem(int index); - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - int getItemCount(); - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - java.util.List extends org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItemOrBuilder> - getItemOrBuilderList(); - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItemOrBuilder getItemOrBuilder( - int index); - } - /** - * Protobuf type {@code org.springframework.cloud.fn.object.detection.protos.StringIntLabelMap} - */ - public static final class StringIntLabelMap extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:org.springframework.cloud.fn.object.detection.protos.StringIntLabelMap) - StringIntLabelMapOrBuilder { - private static final long serialVersionUID = 0L; - // Use StringIntLabelMap.newBuilder() to construct. - private StringIntLabelMap(com.google.protobuf.GeneratedMessageV3.Builder> builder) { - super(builder); - } - private StringIntLabelMap() { - item_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new StringIntLabelMap(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMap_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMap_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap.class, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap.Builder.class); - } - - public static final int ITEM_FIELD_NUMBER = 1; - private java.util.List item_; - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - @java.lang.Override - public java.util.List getItemList() { - return item_; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - @java.lang.Override - public java.util.List extends org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItemOrBuilder> - getItemOrBuilderList() { - return item_; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - @java.lang.Override - public int getItemCount() { - return item_.size(); - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - @java.lang.Override - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem getItem(int index) { - return item_.get(index); - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - @java.lang.Override - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItemOrBuilder getItemOrBuilder( - int index) { - return item_.get(index); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < item_.size(); i++) { - output.writeMessage(1, item_.get(i)); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < item_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, item_.get(i)); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap)) { - return super.equals(obj); - } - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap other = (org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap) obj; - - if (!getItemList() - .equals(other.getItemList())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getItemCount() > 0) { - hash = (37 * hash) + ITEM_FIELD_NUMBER; - hash = (53 * hash) + getItemList().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code org.springframework.cloud.fn.object.detection.protos.StringIntLabelMap} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:org.springframework.cloud.fn.object.detection.protos.StringIntLabelMap) - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMap_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMap_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap.class, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap.Builder.class); - } - - // Construct using org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (itemBuilder_ == null) { - item_ = java.util.Collections.emptyList(); - } else { - item_ = null; - itemBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMap_descriptor; - } - - @java.lang.Override - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap getDefaultInstanceForType() { - return org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap.getDefaultInstance(); - } - - @java.lang.Override - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap build() { - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap buildPartial() { - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap result = new org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap(this); - int from_bitField0_ = bitField0_; - if (itemBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - item_ = java.util.Collections.unmodifiableList(item_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.item_ = item_; - } else { - result.item_ = itemBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap) { - return mergeFrom((org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap other) { - if (other == org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap.getDefaultInstance()) return this; - if (itemBuilder_ == null) { - if (!other.item_.isEmpty()) { - if (item_.isEmpty()) { - item_ = other.item_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureItemIsMutable(); - item_.addAll(other.item_); - } - onChanged(); - } - } else { - if (!other.item_.isEmpty()) { - if (itemBuilder_.isEmpty()) { - itemBuilder_.dispose(); - itemBuilder_ = null; - item_ = other.item_; - bitField0_ = (bitField0_ & ~0x00000001); - itemBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getItemFieldBuilder() : null; - } else { - itemBuilder_.addAllMessages(other.item_); - } - } - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem m = - input.readMessage( - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.PARSER, - extensionRegistry); - if (itemBuilder_ == null) { - ensureItemIsMutable(); - item_.add(m); - } else { - itemBuilder_.addMessage(m); - } - break; - } // case 10 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.util.List item_ = - java.util.Collections.emptyList(); - private void ensureItemIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - item_ = new java.util.ArrayList(item_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItemOrBuilder> itemBuilder_; - - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public java.util.List getItemList() { - if (itemBuilder_ == null) { - return java.util.Collections.unmodifiableList(item_); - } else { - return itemBuilder_.getMessageList(); - } - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public int getItemCount() { - if (itemBuilder_ == null) { - return item_.size(); - } else { - return itemBuilder_.getCount(); - } - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem getItem(int index) { - if (itemBuilder_ == null) { - return item_.get(index); - } else { - return itemBuilder_.getMessage(index); - } - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public Builder setItem( - int index, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem value) { - if (itemBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureItemIsMutable(); - item_.set(index, value); - onChanged(); - } else { - itemBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public Builder setItem( - int index, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder builderForValue) { - if (itemBuilder_ == null) { - ensureItemIsMutable(); - item_.set(index, builderForValue.build()); - onChanged(); - } else { - itemBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public Builder addItem(org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem value) { - if (itemBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureItemIsMutable(); - item_.add(value); - onChanged(); - } else { - itemBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public Builder addItem( - int index, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem value) { - if (itemBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureItemIsMutable(); - item_.add(index, value); - onChanged(); - } else { - itemBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public Builder addItem( - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder builderForValue) { - if (itemBuilder_ == null) { - ensureItemIsMutable(); - item_.add(builderForValue.build()); - onChanged(); - } else { - itemBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public Builder addItem( - int index, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder builderForValue) { - if (itemBuilder_ == null) { - ensureItemIsMutable(); - item_.add(index, builderForValue.build()); - onChanged(); - } else { - itemBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public Builder addAllItem( - java.lang.Iterable extends org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem> values) { - if (itemBuilder_ == null) { - ensureItemIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, item_); - onChanged(); - } else { - itemBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public Builder clearItem() { - if (itemBuilder_ == null) { - item_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - itemBuilder_.clear(); - } - return this; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public Builder removeItem(int index) { - if (itemBuilder_ == null) { - ensureItemIsMutable(); - item_.remove(index); - onChanged(); - } else { - itemBuilder_.remove(index); - } - return this; - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder getItemBuilder( - int index) { - return getItemFieldBuilder().getBuilder(index); - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItemOrBuilder getItemOrBuilder( - int index) { - if (itemBuilder_ == null) { - return item_.get(index); } else { - return itemBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public java.util.List extends org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItemOrBuilder> - getItemOrBuilderList() { - if (itemBuilder_ != null) { - return itemBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(item_); - } - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder addItemBuilder() { - return getItemFieldBuilder().addBuilder( - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.getDefaultInstance()); - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder addItemBuilder( - int index) { - return getItemFieldBuilder().addBuilder( - index, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.getDefaultInstance()); - } - /** - * repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1; - */ - public java.util.List - getItemBuilderList() { - return getItemFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItemOrBuilder> - getItemFieldBuilder() { - if (itemBuilder_ == null) { - itemBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItem.Builder, org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMapItemOrBuilder>( - item_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - item_ = null; - } - return itemBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:org.springframework.cloud.fn.object.detection.protos.StringIntLabelMap) - } - - // @@protoc_insertion_point(class_scope:org.springframework.cloud.fn.object.detection.protos.StringIntLabelMap) - private static final org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap(); - } - - public static org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - @java.lang.Deprecated public static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public StringIntLabelMap parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass.StringIntLabelMap getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMapItem_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMapItem_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMap_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMap_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\032string_int_label_map.proto\0224org.spring" + - "framework.cloud.fn.object.detection.prot" + - "os\"G\n\025StringIntLabelMapItem\022\014\n\004name\030\001 \001(" + - "\t\022\n\n\002id\030\002 \001(\005\022\024\n\014display_name\030\003 \001(\t\"n\n\021S" + - "tringIntLabelMap\022Y\n\004item\030\001 \003(\0132K.org.spr" + - "ingframework.cloud.fn.object.detection.p" + - "rotos.StringIntLabelMapItem" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMapItem_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMapItem_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMapItem_descriptor, - new java.lang.String[] { "Name", "Id", "DisplayName", }); - internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMap_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMap_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_org_springframework_cloud_fn_object_detection_protos_StringIntLabelMap_descriptor, - new java.lang.String[] { "Item", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/function/payload-converter-function/pom.xml b/function/payload-converter-function/pom.xml deleted file mode 100644 index 44762e19..00000000 --- a/function/payload-converter-function/pom.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - payload-converter-function - payload-converter-function - Utility message conversion functions - - diff --git a/function/pom.xml b/function/pom.xml deleted file mode 100644 index a7c03576..00000000 --- a/function/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud.fn - java-functions-function - 4.0.1-SNAPSHOT - java-functions-function - Java Functions Function - pom - - - aggregator-function - filter-function - header-enricher-function - header-filter-function - http-request-function - spel-function - payload-converter-function - splitter-function - task-launch-request-function - twitter-function - image-recognition-function - object-detection-function - semantic-segmentation-function - - - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0 - - true - - - - - diff --git a/function/semantic-segmentation-function/build.gradle b/function/semantic-segmentation-function/build.gradle new file mode 100644 index 00000000..e68b45cd --- /dev/null +++ b/function/semantic-segmentation-function/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api project(':tensorflow-common') +} diff --git a/function/semantic-segmentation-function/pom.xml b/function/semantic-segmentation-function/pom.xml deleted file mode 100644 index fd653dca..00000000 --- a/function/semantic-segmentation-function/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - semantic-segmentation-function - semantic-segmentation-function - Spring Native Function for Tensorflow semantic-segmentation integration - - - 1.3.2 - - - - - org.springframework.cloud.fn - tensorflow-common - ${project.version} - - - - - - tensorflow-snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - - true - - - - - diff --git a/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/attic/SemanticSegmentationUtils.java b/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/attic/SemanticSegmentationUtils.java index ee6c1ef6..9f0f223f 100644 --- a/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/attic/SemanticSegmentationUtils.java +++ b/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/attic/SemanticSegmentationUtils.java @@ -44,7 +44,7 @@ import static java.awt.image.BufferedImage.TYPE_3BYTE_BGR; /** * - * Semantic image segmentation - the task of assigning a semantic label, such as “road”, “sky”, “person”, “dog”, to + * Semantic image segmentation - the task of assigning a semantic label, such as "road", "sky", "person", "dog", to * every pixel in an image. * * https://ai.googleblog.com/2018/03/semantic-image-segmentation-with.html diff --git a/function/spel-function/build.gradle b/function/spel-function/build.gradle new file mode 100644 index 00000000..52c7b046 --- /dev/null +++ b/function/spel-function/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api project(':payload-converter-function') +} diff --git a/function/spel-function/pom.xml b/function/spel-function/pom.xml deleted file mode 100644 index 6551bf7b..00000000 --- a/function/spel-function/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - spel-function - spel-function - Spring Native Function for applying SpEL expressions - - - - org.springframework.cloud.fn - payload-converter-function - ${project.version} - - - - diff --git a/function/splitter-function/build.gradle b/function/splitter-function/build.gradle new file mode 100644 index 00000000..efdad627 --- /dev/null +++ b/function/splitter-function/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.integration:spring-integration-file' +} diff --git a/function/splitter-function/pom.xml b/function/splitter-function/pom.xml deleted file mode 100644 index e66b4b90..00000000 --- a/function/splitter-function/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - splitter-function - splitter-function - Spring Native Function for Splitter - - - - org.springframework.integration - spring-integration-file - - - - diff --git a/function/task-launch-request-function/pom.xml b/function/task-launch-request-function/pom.xml deleted file mode 100644 index fbf462dc..00000000 --- a/function/task-launch-request-function/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - task-launch-request-function - task-launch-request-function - - diff --git a/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParser.java b/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParser.java index 48f01f0e..308d1c33 100644 --- a/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParser.java +++ b/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParser.java @@ -33,7 +33,7 @@ abstract class KeyValueListParser { static Map parseCommaDelimitedKeyValuePairs(String value) { Map keyValuePairs = new HashMap<>(); - if (StringUtils.isEmpty(value)) { + if (!StringUtils.hasText(value)) { return keyValuePairs; } diff --git a/function/twitter-function/build.gradle b/function/twitter-function/build.gradle new file mode 100644 index 00000000..40cddd80 --- /dev/null +++ b/function/twitter-function/build.gradle @@ -0,0 +1,10 @@ +ext { + mockserverVersion='5.13.2' +} + +dependencies { + api project(':twitter-common') + + testImplementation "org.mock-server:mockserver-netty:$mockserverVersion" + testImplementation "org.mock-server:mockserver-client-java:$mockserverVersion" +} diff --git a/function/twitter-function/pom.xml b/function/twitter-function/pom.xml deleted file mode 100644 index bc8b9fb8..00000000 --- a/function/twitter-function/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - twitter-function - twitter-function - twitter functions - - - - org.springframework.cloud.fn - twitter-common - ${project.version} - - - org.mock-server - mockserver-netty - ${mockserver.version} - test - - - org.mock-server - mockserver-client-java - ${mockserver.version} - test - - - - diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..fd795d19 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,12 @@ +version=5.0.0-SNAPSHOT +org.gradle.caching=true +org.gradle.parallel=true + +spring-boot.version=3.2.0 +spring-cloud.version=2023.0.0-SNAPSHOT +aws-sdk.version=2.20.162 +spring-cloud-aws.version=3.0.3 +spring-integration-aws.version=3.0.4 + +debeziumVersion = 2.4.1.Final +ftpServerVersion=1.2.0 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..7f93135c Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..46671acb --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,8 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionSha256Sum=3e1af3ae886920c3ac87f7a91f816c0c7c436f276a6eefdb3da152100fef72ae +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 00000000..1aa94a42 --- /dev/null +++ b/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 00000000..93e3f59f --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/pom.xml b/pom.xml deleted file mode 100644 index e96b6abe..00000000 --- a/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud.fn - java-functions-parent - 4.0.1-SNAPSHOT - java-functions-parent - Java Functions Parent - pom - - - spring-functions-parent - common - consumer - function - supplier - function-dependencies - - - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0 - - true - - - - - diff --git a/publish-maven.gradle b/publish-maven.gradle new file mode 100644 index 00000000..f655787b --- /dev/null +++ b/publish-maven.gradle @@ -0,0 +1,72 @@ +apply plugin: 'maven-publish' + +publishing { + publications { + mavenJava(MavenPublication) { + pom { + afterEvaluate { + name = project.description + description = project.description + } + url = 'https://github.com/spring-cloud/spring-functions-catalog' + organization { + name = 'Spring IO' + url = 'https://spring.io/projects/spring-functions-catalog' + } + licenses { + license { + name = 'Apache License, Version 2.0' + url = 'https://www.apache.org/licenses/LICENSE-2.0.txt' + distribution = 'repo' + } + } + scm { + url = 'https://github.com/spring-cloud/spring-functions-catalog' + connection = 'https://github.com/spring-cloud/spring-functions-catalog.git' + developerConnection = 'git@github.com/spring-cloud/spring-functions-catalog.git' + } + developers { + developer { + id = 'artembilan' + name = 'Artem Bilan' + email = 'abilan@vmware.com' + roles = ['project lead'] + } + developer { + id = 'corneil' + name = 'Corneil du Plessis' + email = 'pcorneil@vmware.com' + } + developer { + id = 'sobychacko' + name = 'Soby Chacko' + email = 'chackos@vmware.com' + } + developer { + id = 'onobc' + name = 'Chris Bono' + email = 'cbono@vmware.com' + } + developer { + id = 'tzolov' + name = 'Christian Tzolov' + email = 'ctzolov@vmware.com' + } + } + issueManagement { + system = 'GitHub' + url = 'https://github.com/spring-cloud/spring-functions-catalog/issues' + } + } + versionMapping { + usage('java-api') { + fromResolutionResult() + } + usage('java-runtime') { + fromResolutionResult() + } + } + } + } +} + diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..468b4990 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,17 @@ +plugins { + id 'com.gradle.enterprise' version '3.15.1' + id 'io.spring.ge.conventions' version '0.0.13' +} + +rootProject.name = 'spring-functions-catalog' + +include 'function-dependencies' + +['common', 'consumer', 'function', 'supplier'].each { group -> + def groupDir = file(group) + groupDir.eachDir { subProject -> + include "${subProject.name}" + project(":${subProject.name}").projectDir = new File(groupDir.absolutePath, subProject.name) + } +} + diff --git a/spring-functions-parent/pom.xml b/spring-functions-parent/pom.xml deleted file mode 100644 index 759eefd6..00000000 --- a/spring-functions-parent/pom.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.stream.app - stream-applications-build - 4.0.1-SNAPSHOT - ../../stream-applications-build/pom.xml - - - org.springframework.cloud.fn - spring-functions-parent - pom - - 3.19.6 - - - - com.google.protobuf - protobuf-java - ${protobuf.version} - - - org.springframework.cloud.fn - config-common - ${project.version} - - - - org.springframework.boot - spring-boot-configuration-processor - provided - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-json - - - org.springframework.boot - spring-boot-starter-integration - - - com.jayway.jsonpath - json-path - - - - org.springframework.boot - spring-boot-starter-test - test - - - org.junit.jupiter - junit-jupiter - test - - - org.springframework.integration - spring-integration-test - test - - - io.projectreactor - reactor-test - test - - - org.testcontainers - testcontainers - ${testcontainers.version} - test - - - org.testcontainers - junit-jupiter - ${testcontainers.version} - test - - - org.awaitility - awaitility - test - - - - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0 - - false - - - - - diff --git a/supplier/debezium-supplier/build.gradle b/supplier/debezium-supplier/build.gradle new file mode 100644 index 00000000..f197e5b2 --- /dev/null +++ b/supplier/debezium-supplier/build.gradle @@ -0,0 +1,19 @@ +repositories { + maven { url 'https://maven.scijava.org/content/repositories/public/' } +} + +dependencies { + api project(':debezium-autoconfigure') + api "io.debezium:debezium-connector-mysql:$debeziumVersion" + api "io.debezium:debezium-connector-mongodb:$debeziumVersion" + api "io.debezium:debezium-connector-postgres:$debeziumVersion" + api "io.debezium:debezium-connector-oracle:$debeziumVersion" + api "io.debezium:debezium-connector-sqlserver:$debeziumVersion" + api "io.debezium:debezium-connector-db2:$debeziumVersion" + api "io.debezium:debezium-connector-vitess:$debeziumVersion" + api "io.debezium:debezium-connector-spanner:$debeziumVersion" + api "io.debezium:debezium-connector-spanner:$debeziumVersion" + + testImplementation 'com.zaxxer:HikariCP' + testImplementation 'org.springframework:spring-jdbc' +} diff --git a/supplier/debezium-supplier/pom.xml b/supplier/debezium-supplier/pom.xml deleted file mode 100644 index ea4d5605..00000000 --- a/supplier/debezium-supplier/pom.xml +++ /dev/null @@ -1,146 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - debezium-supplier - debezium-supplier - Debezium Supplier - - - 2.3.3.Final - - - - - org.springframework.cloud.fn - debezium-autoconfigure - ${project.version} - - - - - io.debezium - debezium-connector-mysql - ${version.debezium} - - - slf4j-log4j12 - org.slf4j - - - - - io.debezium - debezium-connector-mongodb - ${version.debezium} - - - slf4j-log4j12 - org.slf4j - - - - - io.debezium - debezium-connector-postgres - ${version.debezium} - - - slf4j-log4j12 - org.slf4j - - - - - io.debezium - debezium-connector-oracle - ${version.debezium} - - - slf4j-log4j12 - org.slf4j - - - - - io.debezium - debezium-connector-sqlserver - ${version.debezium} - - - slf4j-log4j12 - org.slf4j - - - - - io.debezium - debezium-connector-db2 - ${version.debezium} - - - slf4j-log4j12 - org.slf4j - - - - - io.debezium - debezium-connector-vitess - ${version.debezium} - - - slf4j-log4j12 - org.slf4j - - - - - io.debezium - debezium-connector-spanner - ${version.debezium} - - - slf4j-log4j12 - org.slf4j - - - true - - - - - com.zaxxer - HikariCP - 4.0.3 - test - - - org.springframework - spring-jdbc - test - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 3.0.0 - - 1 - 1 - integration - - - - - diff --git a/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumReactiveConsumerConfigurationTests.java b/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumReactiveConsumerConfigurationTests.java index a11cefcf..72f89a8f 100644 --- a/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumReactiveConsumerConfigurationTests.java +++ b/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumReactiveConsumerConfigurationTests.java @@ -47,15 +47,6 @@ public class DebeziumReactiveConsumerConfigurationTests { }); } - @Test - void noConnectorWithProperty() { - this.contextRunner.withPropertyValues("debezium.properties.connector.class=Dummy") - .withClassLoader(new FilteredClassLoader("io.debezium.engine.DebeziumEngine$Builder")) - .run((context) -> { - assertThat(context).doesNotHaveBean(DebeziumEngine.class); - }); - } - @Test void withConnectorWithProperty() { this.contextRunner.withPropertyValues("debezium.properties.connector.class=Dummy").run((context) -> { diff --git a/supplier/file-supplier/build.gradle b/supplier/file-supplier/build.gradle new file mode 100644 index 00000000..2b78b520 --- /dev/null +++ b/supplier/file-supplier/build.gradle @@ -0,0 +1,8 @@ +dependencies { + api project(':file-common') + api project(':metadata-store-common') + + testImplementation 'org.springframework.integration:spring-integration-jdbc' + testImplementation 'org.springframework.boot:spring-boot-starter-jdbc' + testImplementation 'org.hsqldb:hsqldb' +} diff --git a/supplier/file-supplier/pom.xml b/supplier/file-supplier/pom.xml deleted file mode 100644 index 3774a655..00000000 --- a/supplier/file-supplier/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - file-supplier - file-supplier - file supplier - - - - org.springframework.integration - spring-integration-file - - - org.springframework.cloud.fn - metadata-store-common - ${project.version} - - - org.springframework.cloud.fn - file-common - ${project.version} - - - - org.springframework.integration - spring-integration-jdbc - test - - - org.springframework.boot - spring-boot-starter-jdbc - test - - - org.hsqldb - hsqldb - test - - - - diff --git a/supplier/ftp-supplier/build.gradle b/supplier/ftp-supplier/build.gradle new file mode 100644 index 00000000..3d6f082f --- /dev/null +++ b/supplier/ftp-supplier/build.gradle @@ -0,0 +1,8 @@ +dependencies { + api project(':ftp-common') + api project(':file-common') + api project(':metadata-store-common') + + testImplementation project(':function-test-support') + testImplementation "org.apache.ftpserver:ftpserver-core:$ftpServerVersion" +} diff --git a/supplier/ftp-supplier/pom.xml b/supplier/ftp-supplier/pom.xml deleted file mode 100644 index 28657f18..00000000 --- a/supplier/ftp-supplier/pom.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - ftp-supplier - ftp-supplier - ftp supplier - - - - org.springframework.integration - spring-integration-ftp - - - org.springframework.cloud.fn - file-common - ${project.version} - - - org.springframework.cloud.fn - ftp-common - ${project.version} - - - org.springframework.cloud.fn - metadata-store-common - ${project.version} - - - org.springframework.cloud.fn - function-test-support - ${project.version} - test - - - - diff --git a/supplier/http-supplier/build.gradle b/supplier/http-supplier/build.gradle new file mode 100644 index 00000000..c63be415 --- /dev/null +++ b/supplier/http-supplier/build.gradle @@ -0,0 +1,4 @@ +dependencies { + api 'org.springframework.boot:spring-boot-starter-webflux' + api 'org.springframework.integration:spring-integration-webflux' +} diff --git a/supplier/http-supplier/pom.xml b/supplier/http-supplier/pom.xml deleted file mode 100644 index a45468c2..00000000 --- a/supplier/http-supplier/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - http-supplier - http-supplier - HTTP Supplier - - - - org.springframework.boot - spring-boot-starter-webflux - - - org.springframework.integration - spring-integration-webflux - - - - diff --git a/supplier/jdbc-supplier/build.gradle b/supplier/jdbc-supplier/build.gradle new file mode 100644 index 00000000..532e3b5c --- /dev/null +++ b/supplier/jdbc-supplier/build.gradle @@ -0,0 +1,12 @@ +dependencies { + api project(':splitter-function') + api 'org.springframework.integration:spring-integration-jdbc' + api 'org.springframework.boot:spring-boot-starter-jdbc' + api 'org.springframework.cloud:spring-cloud-function-context' + + runtimeOnly 'org.hsqldb:hsqldb' + runtimeOnly 'com.h2database:h2' + runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' + runtimeOnly 'org.postgresql:postgresql' + runtimeOnly 'com.microsoft.sqlserver:mssql-jdbc' +} diff --git a/supplier/jdbc-supplier/pom.xml b/supplier/jdbc-supplier/pom.xml deleted file mode 100644 index 85d46244..00000000 --- a/supplier/jdbc-supplier/pom.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - jdbc-supplier - jdbc-supplier - JDBC supplier - - - - org.springframework.integration - spring-integration-jdbc - - - org.springframework.boot - spring-boot-starter-jdbc - - - org.springframework.cloud - spring-cloud-function-context - ${spring-cloud-function.version} - - - org.springframework.cloud.fn - splitter-function - ${project.version} - - - org.hsqldb - hsqldb - runtime - - - com.h2database - h2 - runtime - - - org.mariadb.jdbc - mariadb-java-client - runtime - - - org.postgresql - postgresql - runtime - - - com.microsoft.sqlserver - mssql-jdbc - runtime - - - com.microsoft.azure - azure-keyvault - - - - - - diff --git a/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/DefaultJdbcSupplierTests.java b/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/DefaultJdbcSupplierTests.java index 44073f55..030d2c58 100644 --- a/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/DefaultJdbcSupplierTests.java +++ b/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/DefaultJdbcSupplierTests.java @@ -46,6 +46,7 @@ public class DefaultJdbcSupplierTests { JdbcTemplate jdbcTemplate; @Test + @SuppressWarnings({ "unchecked", "rawtypes"}) void testExtraction() { final Flux> messageFlux = jdbcSupplier.get(); StepVerifier stepVerifier = diff --git a/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/NonSplitJdbcSupplierTests.java b/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/NonSplitJdbcSupplierTests.java index eb6f550f..a6413e7b 100644 --- a/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/NonSplitJdbcSupplierTests.java +++ b/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/NonSplitJdbcSupplierTests.java @@ -43,6 +43,7 @@ public class NonSplitJdbcSupplierTests { Supplier> jdbcSupplier; @Test + @SuppressWarnings("unchecked") void testExtraction() { final Message> message = jdbcSupplier.get(); final List> payload = (List>) message.getPayload(); diff --git a/supplier/jms-supplier/build.gradle b/supplier/jms-supplier/build.gradle new file mode 100644 index 00000000..51f23251 --- /dev/null +++ b/supplier/jms-supplier/build.gradle @@ -0,0 +1,8 @@ +dependencies { + api 'org.springframework.integration:spring-integration-jms' + + providedImplementation 'jakarta.jms:jakarta.jms-api' + + testImplementation 'org.springframework.boot:spring-boot-starter-artemis' + testImplementation 'org.apache.activemq:artemis-jakarta-server' +} diff --git a/supplier/jms-supplier/pom.xml b/supplier/jms-supplier/pom.xml deleted file mode 100644 index 452ba7da..00000000 --- a/supplier/jms-supplier/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - jms-supplier - jms-supplier - jms supplier - - - - org.springframework.integration - spring-integration-jms - - - jakarta.jms - jakarta.jms-api - provided - - - org.springframework.boot - spring-boot-starter-artemis - test - - - org.apache.activemq - artemis-jms-server - 2.26.0 - test - - - diff --git a/supplier/kafka-supplier/build.gradle b/supplier/kafka-supplier/build.gradle new file mode 100644 index 00000000..2a46e034 --- /dev/null +++ b/supplier/kafka-supplier/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api 'org.springframework.integration:spring-integration-kafka' + + testImplementation 'org.springframework.kafka:spring-kafka-test' +} diff --git a/supplier/kafka-supplier/pom.xml b/supplier/kafka-supplier/pom.xml deleted file mode 100644 index 845badf9..00000000 --- a/supplier/kafka-supplier/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - - kafka-supplier - kafka-supplier - Apache Kafka Supplier based on Apache Kafka Consumer - - - - org.springframework.integration - spring-integration-kafka - - - - org.springframework.kafka - spring-kafka-test - test - - - - diff --git a/supplier/kafka-supplier/src/test/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierTests.java b/supplier/kafka-supplier/src/test/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierTests.java index b4621378..68c3585c 100644 --- a/supplier/kafka-supplier/src/test/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierTests.java +++ b/supplier/kafka-supplier/src/test/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierTests.java @@ -20,7 +20,6 @@ import java.time.Duration; import java.util.List; import java.util.function.Supplier; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import reactor.core.publisher.Flux; import reactor.test.StepVerifier; @@ -32,7 +31,7 @@ import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.cloud.fn.common.config.SpelExpressionConverterConfiguration; import org.springframework.context.ApplicationContext; import org.springframework.kafka.core.KafkaTemplate; -import org.springframework.kafka.test.EmbeddedKafkaBroker; +import org.springframework.kafka.test.context.EmbeddedKafka; import org.springframework.messaging.Message; /** @@ -40,12 +39,9 @@ import org.springframework.messaging.Message; * * @since 4.0 */ +@EmbeddedKafka(partitions = 1, controlledShutdown = true) public class KafkaSupplierTests { - static final EmbeddedKafkaBroker EMBEDDED_KAFKA = - new EmbeddedKafkaBroker(1, true, 1) - .brokerListProperty("spring.kafka.bootstrap-servers"); - final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of( IntegrationAutoConfiguration.class, @@ -53,11 +49,6 @@ public class KafkaSupplierTests { KafkaSupplierConfiguration.class, SpelExpressionConverterConfiguration.class)); - @BeforeAll - static void initializeEmbeddedKafka() { - EMBEDDED_KAFKA.afterPropertiesSet(); - } - @Test void recordModeAndTopicPattern() { this.contextRunner.withPropertyValues( diff --git a/supplier/mail-supplier/build.gradle b/supplier/mail-supplier/build.gradle new file mode 100644 index 00000000..ddc8b03e --- /dev/null +++ b/supplier/mail-supplier/build.gradle @@ -0,0 +1,10 @@ +ext { + greenmailVersion='2.1.0-alpha-3' +} + +dependencies { + api 'org.springframework.integration:spring-integration-mail' + api 'org.eclipse.angus:jakarta.mail:2.0.2' + + testImplementation "com.icegreen:greenmail:$greenmailVersion" +} diff --git a/supplier/mail-supplier/pom.xml b/supplier/mail-supplier/pom.xml deleted file mode 100644 index f601d6c6..00000000 --- a/supplier/mail-supplier/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - mail-supplier - mail-supplier - Mail Supplier - - - - org.springframework.integration - spring-integration-mail - - - org.eclipse.angus - jakarta.mail - 1.0.0 - - - com.icegreen - greenmail - 2.0.0 - test - - - diff --git a/supplier/mongodb-supplier/build.gradle b/supplier/mongodb-supplier/build.gradle new file mode 100644 index 00000000..71c99aab --- /dev/null +++ b/supplier/mongodb-supplier/build.gradle @@ -0,0 +1,9 @@ +dependencies { + api project(':splitter-function') + api 'org.springframework.integration:spring-integration-mongodb' + api 'org.mongodb:mongodb-driver-sync' + api 'org.springframework.cloud:spring-cloud-function-context' + + testImplementation 'org.testcontainers:mongodb' + testImplementation project(':mongodb-consumer').sourceSets.test.output +} diff --git a/supplier/mongodb-supplier/pom.xml b/supplier/mongodb-supplier/pom.xml deleted file mode 100644 index 7b6b5b61..00000000 --- a/supplier/mongodb-supplier/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - mongodb-supplier - mongodb-supplier - Mongo DB supplier - - - - org.springframework.integration - spring-integration-mongodb - - - org.mongodb - mongodb-driver-sync - - - org.springframework.cloud - spring-cloud-function-context - ${spring-cloud-function.version} - - - org.springframework.cloud.fn - splitter-function - ${project.version} - - - org.testcontainers - mongodb - ${testcontainers.version} - test - - - org.springframework.cloud.fn - mongodb-common - ${project.version} - test-jar - test - - - - diff --git a/supplier/mongodb-supplier/src/test/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierApplicationTests.java b/supplier/mongodb-supplier/src/test/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierApplicationTests.java index 14305fb9..f22b6fc5 100644 --- a/supplier/mongodb-supplier/src/test/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierApplicationTests.java +++ b/supplier/mongodb-supplier/src/test/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierApplicationTests.java @@ -32,7 +32,7 @@ import reactor.test.StepVerifier; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.fn.common.mongo.MongoDbTestContainerSupport; +import org.springframework.cloud.fn.consumer.mongo.MongoDbTestContainerSupport; import org.springframework.messaging.Message; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; @@ -95,6 +95,7 @@ class MongodbSupplierApplicationTests implements MongoDbTestContainerSupport { assertThat(this.mongodbSupplier.get().collectList().block()).isEmpty(); } + @SuppressWarnings("unchecked") private Map toMap(Message> message) { Map map = null; try { diff --git a/supplier/mqtt-supplier/build.gradle b/supplier/mqtt-supplier/build.gradle new file mode 100644 index 00000000..44adc921 --- /dev/null +++ b/supplier/mqtt-supplier/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api project(':mqtt-common') +} diff --git a/supplier/mqtt-supplier/pom.xml b/supplier/mqtt-supplier/pom.xml deleted file mode 100644 index 72a9aa3d..00000000 --- a/supplier/mqtt-supplier/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - mqtt-supplier - mqtt-supplier - mqtt supplier - - - - org.springframework.cloud.fn - mqtt-common - ${project.version} - - - - diff --git a/supplier/mqtt-supplier/src/test/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierTests.java b/supplier/mqtt-supplier/src/test/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierTests.java index d859b0b6..2ac19f94 100644 --- a/supplier/mqtt-supplier/src/test/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierTests.java +++ b/supplier/mqtt-supplier/src/test/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierTests.java @@ -58,7 +58,6 @@ import static org.assertj.core.api.Assertions.assertThat; "mqtt.ssl-properties.com.ibm.ssl.protocol=TLS", "mqtt.ssl-properties.com.ibm.ssl.keyStoreType=TEST"}) @DirtiesContext -@Tag("integration") public class MqttSupplierTests { static { diff --git a/supplier/pom.xml b/supplier/pom.xml deleted file mode 100644 index 7becd809..00000000 --- a/supplier/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud.fn - java-functions-supplier - 4.0.1-SNAPSHOT - java-functions-supplier - Java Functions Supplier - pom - - - file-supplier - ftp-supplier - http-supplier - jdbc-supplier - jms-supplier - kafka-supplier - mail-supplier - mongodb-supplier - mqtt-supplier - sftp-supplier - tcp-supplier - time-supplier - rabbit-supplier - websocket-supplier - s3-supplier - twitter-supplier - debezium-supplier - syslog-supplier - xmpp-supplier - zeromq-supplier - - - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0 - - true - - - - - diff --git a/supplier/rabbit-supplier/build.gradle b/supplier/rabbit-supplier/build.gradle new file mode 100644 index 00000000..e008d507 --- /dev/null +++ b/supplier/rabbit-supplier/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api 'org.springframework.integration:spring-integration-amqp' + api 'org.springframework.boot:spring-boot-starter-amqp' + api 'org.springframework.boot:spring-boot-starter-web' +} diff --git a/supplier/rabbit-supplier/pom.xml b/supplier/rabbit-supplier/pom.xml deleted file mode 100644 index 573a4f3b..00000000 --- a/supplier/rabbit-supplier/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - rabbit-supplier - rabbit-supplier - Rabbit supplier - - - - org.springframework.integration - spring-integration-amqp - - - org.springframework.boot - spring-boot-starter-amqp - - - org.springframework.boot - spring-boot-starter-web - - - - diff --git a/supplier/s3-supplier/build.gradle b/supplier/s3-supplier/build.gradle new file mode 100644 index 00000000..517d3c95 --- /dev/null +++ b/supplier/s3-supplier/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api project(':aws-s3-common') + api project(':file-common') + api project(':metadata-store-common') +} diff --git a/supplier/s3-supplier/pom.xml b/supplier/s3-supplier/pom.xml deleted file mode 100644 index c35ab32f..00000000 --- a/supplier/s3-supplier/pom.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - s3-supplier - s3-supplier - s3 supplier - - - - org.springframework.cloud.fn - aws-s3-common - ${project.version} - - - org.springframework.cloud.fn - file-common - ${project.version} - - - org.springframework.cloud.fn - metadata-store-common - ${project.version} - - - - diff --git a/supplier/sftp-supplier/build.gradle b/supplier/sftp-supplier/build.gradle new file mode 100644 index 00000000..90adb7af --- /dev/null +++ b/supplier/sftp-supplier/build.gradle @@ -0,0 +1,7 @@ +dependencies { + api 'org.springframework.integration:spring-integration-sftp' + api project(':file-common') + api project(':metadata-store-common') + + testImplementation project(':function-test-support') +} diff --git a/supplier/sftp-supplier/pom.xml b/supplier/sftp-supplier/pom.xml deleted file mode 100644 index df3c8d97..00000000 --- a/supplier/sftp-supplier/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - sftp-supplier - sftp-supplier - sftp supplier - - - - org.springframework.boot - spring-boot-starter-logging - - - org.springframework.integration - spring-integration-sftp - - - org.springframework.cloud.fn - file-common - ${project.version} - - - org.springframework.cloud.fn - ftp-common - ${project.version} - - - org.springframework.cloud.fn - metadata-store-common - ${project.version} - - - org.springframework.cloud.fn - function-test-support - ${project.version} - test - - - - diff --git a/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierConfiguration.java b/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierConfiguration.java index 9ff6450a..fb90b276 100644 --- a/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierConfiguration.java +++ b/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierConfiguration.java @@ -61,6 +61,7 @@ import org.springframework.integration.handler.MessageProcessor; import org.springframework.integration.metadata.ConcurrentMetadataStore; import org.springframework.integration.sftp.dsl.Sftp; import org.springframework.integration.sftp.dsl.SftpInboundChannelAdapterSpec; +import org.springframework.integration.sftp.dsl.SftpStreamingInboundChannelAdapterSpec; import org.springframework.integration.sftp.dsl.SftpOutboundGatewaySpec; import org.springframework.integration.sftp.filters.SftpPersistentAcceptOnceFileListFilter; import org.springframework.integration.sftp.filters.SftpRegexPatternFileListFilter; @@ -193,7 +194,7 @@ public class SftpSupplierConfiguration { * @return a {@link MessageSource}. */ @Bean - public MessageSource> targetMessageSource(SftpRemoteFileTemplate sftpTemplate, + public SftpStreamingInboundChannelAdapterSpec targetMessageSource(SftpRemoteFileTemplate sftpTemplate, SftpSupplierProperties sftpSupplierProperties, FileListFilter fileListFilter) { @@ -201,7 +202,7 @@ public class SftpSupplierConfiguration { .remoteDirectory(remoteDirectory(sftpSupplierProperties)) .remoteFileSeparator(sftpSupplierProperties.getRemoteFileSeparator()) .filter(fileListFilter) - .maxFetchSize(sftpSupplierProperties.getMaxFetch()).get(); + .maxFetchSize(sftpSupplierProperties.getMaxFetch()); } @Bean diff --git a/supplier/syslog-supplier/build.gradle b/supplier/syslog-supplier/build.gradle new file mode 100644 index 00000000..a2f5c8ac --- /dev/null +++ b/supplier/syslog-supplier/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.integration:spring-integration-syslog' +} diff --git a/supplier/syslog-supplier/pom.xml b/supplier/syslog-supplier/pom.xml deleted file mode 100644 index 904c63c3..00000000 --- a/supplier/syslog-supplier/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - syslog-supplier - syslog-supplier - syslog supplier - - - - org.springframework.integration - spring-integration-syslog - - - - diff --git a/supplier/tcp-supplier/build.gradle b/supplier/tcp-supplier/build.gradle new file mode 100644 index 00000000..39f81c78 --- /dev/null +++ b/supplier/tcp-supplier/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api project(':tcp-common') +} diff --git a/supplier/tcp-supplier/pom.xml b/supplier/tcp-supplier/pom.xml deleted file mode 100644 index 7169eb3e..00000000 --- a/supplier/tcp-supplier/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - tcp-supplier - tcp-supplier - tcp supplier - - - - org.springframework.cloud.fn - tcp-common - ${project.version} - - - - diff --git a/supplier/time-supplier/build.gradle b/supplier/time-supplier/build.gradle new file mode 100644 index 00000000..b80a5be0 --- /dev/null +++ b/supplier/time-supplier/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.apache.commons:commons-lang3' +} diff --git a/supplier/time-supplier/pom.xml b/supplier/time-supplier/pom.xml deleted file mode 100644 index e78c61c1..00000000 --- a/supplier/time-supplier/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - time-supplier - time-supplier - time supplier - - - - org.apache.commons - commons-lang3 - - - - diff --git a/supplier/twitter-supplier/build.gradle b/supplier/twitter-supplier/build.gradle new file mode 100644 index 00000000..49615fd3 --- /dev/null +++ b/supplier/twitter-supplier/build.gradle @@ -0,0 +1,13 @@ +ext { + mockserverVersion='5.13.2' +} + +dependencies { + api project(':twitter-common') + api 'org.springframework.integration:spring-integration-jms' + + providedImplementation 'jakarta.jms:jakarta.jms-api' + + testImplementation "org.mock-server:mockserver-netty:$mockserverVersion" + testImplementation "org.mock-server:mockserver-client-java:$mockserverVersion" +} diff --git a/supplier/twitter-supplier/pom.xml b/supplier/twitter-supplier/pom.xml deleted file mode 100644 index a6a9af2d..00000000 --- a/supplier/twitter-supplier/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - twitter-supplier - twitter-supplier - twitter suppliers - - - - org.springframework.cloud.fn - twitter-common - ${project.version} - - - org.springframework.integration - spring-integration-jms - - - jakarta.jms - jakarta.jms-api - provided - - - org.mock-server - mockserver-netty - ${mockserver.version} - test - - - org.mock-server - mockserver-client-java - ${mockserver.version} - test - - - - diff --git a/supplier/websocket-supplier/build.gradle b/supplier/websocket-supplier/build.gradle new file mode 100644 index 00000000..fcaf5fdd --- /dev/null +++ b/supplier/websocket-supplier/build.gradle @@ -0,0 +1,7 @@ +dependencies { + api 'org.springframework.integration:spring-integration-websocket' + + testImplementation 'org.springframework.boot:spring-boot-starter-web' + testImplementation 'org.springframework.boot:spring-boot-starter-security' + testImplementation project(':function-test-support') +} diff --git a/supplier/websocket-supplier/pom.xml b/supplier/websocket-supplier/pom.xml deleted file mode 100644 index 5728b56c..00000000 --- a/supplier/websocket-supplier/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - websocket-supplier - websocket-supplier - websocket supplier - - - - org.springframework.integration - spring-integration-websocket - - - org.springframework.boot - spring-boot-starter-web - test - - - org.springframework.boot - spring-boot-starter-security - test - - - org.springframework.cloud.fn - function-test-support - ${project.version} - test - - - - diff --git a/supplier/xmpp-supplier/build.gradle b/supplier/xmpp-supplier/build.gradle new file mode 100644 index 00000000..40ccc9f9 --- /dev/null +++ b/supplier/xmpp-supplier/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api project(':xmpp-common') + + testImplementation project(':function-test-support') +} diff --git a/supplier/xmpp-supplier/pom.xml b/supplier/xmpp-supplier/pom.xml deleted file mode 100644 index f166b621..00000000 --- a/supplier/xmpp-supplier/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - xmpp-supplier - xmpp-supplier - XMPP supplier - - - - org.springframework.cloud.fn - xmpp-common - ${project.version} - - - - - org.springframework.cloud.fn - function-test-support - ${project.version} - test - - - - diff --git a/supplier/zeromq-supplier/build.gradle b/supplier/zeromq-supplier/build.gradle new file mode 100644 index 00000000..4d5a4bed --- /dev/null +++ b/supplier/zeromq-supplier/build.gradle @@ -0,0 +1,3 @@ +dependencies { + api 'org.springframework.integration:spring-integration-zeromq' +} diff --git a/supplier/zeromq-supplier/pom.xml b/supplier/zeromq-supplier/pom.xml deleted file mode 100644 index a6f1ab7a..00000000 --- a/supplier/zeromq-supplier/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 4.0.1-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - zeromq-supplier - zeromq-supplier - ZeroMQ supplier - - - - org.springframework.integration - spring-integration-zeromq - - - -
optional string name = 1;
- * String name. The most common practice is to set this to a MID or synsets - * id. Synset: a set of synonyms that share a common meaning. - * https://en.wikipedia.org/wiki/WordNet - *
- * Integer id that maps to the string name above. Label ids should start - * from 1. - *
optional int32 id = 2;
- * Human readable string label. - *
optional string display_name = 3;
repeated .org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem item = 1;