From 288758a1a7dc7660eea2cccb649a23f58d11352b Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Sat, 9 Mar 2024 01:33:21 -0500 Subject: [PATCH] Migrate apps to Spring Functions Catalog (#523) * Remove `functions` module * Remove `functions` from build scripts * Change internal `functions` mentioning in the docs to the dedication Spring Functions Catalog project * Remove all the TensorFlow modules * Change to `spring-functions-catalog-bom` * Update READMEs using `quick-compile.sh` --- README.adoc | 107 +- .../processor/aggregator-processor/pom.xml | 6 +- .../processor/filter-processor/pom.xml | 6 +- .../processor/groovy-processor/pom.xml | 2 +- .../header-enricher-processor/pom.xml | 6 +- .../processor/header-filter-processor/pom.xml | 6 +- .../http-request-processor/README.adoc | 2 +- .../processor/http-request-processor/pom.xml | 7 +- .../image-recognition-processor/README.adoc | 56 - .../image-recognition-processor/pom.xml | 69 - ...mageRecognitionProcessorConfiguration.java | 114 - .../ImageRecognitionProcessorProperties.java | 126 -- ...dataflow-configuration-metadata.properties | 2 - .../src/main/resources/application.yml | 16 - .../ImageRecognitionProcessorTests.java | 190 -- .../images/giant_panda_in_beijing_zoo_1.jpg | Bin 116068 -> 0 bytes .../src/test/resources/images/panda.jpeg | Bin 11312 -> 0 bytes .../object-detection-processor/README.adoc | 57 - .../object-detection-processor/pom.xml | 68 - ...ObjectDetectionProcessorConfiguration.java | 100 - .../ObjectDetectionProcessorProperties.java | 114 - ...dataflow-configuration-metadata.properties | 2 - .../ObjectDetectionProcessorTests.java | 100 - .../src/test/resources/images/animals2.jpg | Bin 181641 -> 0 bytes .../resources/images/object-detection.jpg | Bin 1415684 -> 0 bytes .../src/test/resources/images/panda.jpeg | Bin 11312 -> 0 bytes .../src/test/resources/images/pets.jpg | Bin 127877 -> 0 bytes .../src/test/resources/images/pivotal.jpeg | Bin 163069 -> 0 bytes .../scdf-tensorflow-object-detection-arch.png | Bin 298518 -> 0 bytes .../src/test/resources/images/tourists.jpg | Bin 53684 -> 0 bytes applications/processor/pom.xml | 3 - .../processor/script-processor/pom.xml | 4 +- .../script/ScriptProcessorConfiguration.java | 15 +- .../README.adoc | 42 - .../semantic-segmentation-processor/pom.xml | 73 - ...ticSegmentationProcessorConfiguration.java | 89 - ...manticSegmentationProcessorProperties.java | 117 -- ...dataflow-configuration-metadata.properties | 2 - .../SemanticSegmentationProcessorTests.java | 76 - .../resources/images/amsterdam-cityscape1.jpg | Bin 104966 -> 0 bytes .../processor/splitter-processor/README.adoc | 2 +- .../processor/splitter-processor/pom.xml | 11 +- .../processor/transform-processor/README.adoc | 2 +- .../processor/transform-processor/pom.xml | 6 +- .../twitter-trend-processor/README.adoc | 6 +- .../processor/twitter-trend-processor/pom.xml | 13 +- ...TwitterTrendProcessorIntegrationTests.java | 27 +- applications/sink/analytics-sink/pom.xml | 6 +- applications/sink/cassandra-sink/README.adoc | 2 +- applications/sink/cassandra-sink/pom.xml | 10 +- .../sink/elasticsearch-sink/README.adoc | 6 +- applications/sink/elasticsearch-sink/pom.xml | 6 +- applications/sink/file-sink/README.adoc | 4 +- applications/sink/file-sink/pom.xml | 8 +- applications/sink/ftp-sink/README.adoc | 4 +- applications/sink/ftp-sink/pom.xml | 7 +- applications/sink/jdbc-sink/pom.xml | 7 +- applications/sink/kafka-sink/README.adoc | 1 + applications/sink/kafka-sink/pom.xml | 2 +- .../stream/app/sink/kafka/KafkaSinkTests.java | 4 +- applications/sink/log-sink/README.adoc | 6 +- applications/sink/log-sink/pom.xml | 6 +- applications/sink/mongodb-sink/pom.xml | 7 +- applications/sink/mqtt-sink/README.adoc | 12 +- applications/sink/mqtt-sink/pom.xml | 8 +- applications/sink/pgcopy-sink/pom.xml | 5 - applications/sink/rabbit-sink/README.adoc | 6 +- applications/sink/rabbit-sink/pom.xml | 13 +- applications/sink/redis-sink/README.adoc | 6 +- applications/sink/redis-sink/pom.xml | 8 +- .../stream/app/sink/redis/RedisSinkTests.java | 17 +- applications/sink/router-sink/pom.xml | 2 +- .../sink/router/RouterSinkConfiguration.java | 8 +- applications/sink/rsocket-sink/pom.xml | 7 +- .../app/rsocket/sink/RSocketSinkTests.java | 35 +- applications/sink/s3-sink/README.adoc | 1 + applications/sink/s3-sink/pom.xml | 8 +- .../stream/app/s3/sink/AwsS3SinkTests.java | 15 +- applications/sink/sftp-sink/pom.xml | 8 +- applications/sink/tcp-sink/README.adoc | 4 +- applications/sink/tcp-sink/pom.xml | 7 +- applications/sink/throughput-sink/README.adoc | 2 +- .../sink/twitter-message-sink/pom.xml | 15 +- .../TwitterMessageSinkIntegrationTests.java | 30 +- .../sink/twitter-update-sink/README.adoc | 8 +- applications/sink/twitter-update-sink/pom.xml | 13 +- .../TwitterUpdateSinkIntegrationTests.java | 23 +- applications/sink/wavefront-sink/pom.xml | 10 +- applications/sink/websocket-sink/README.adoc | 10 +- applications/sink/websocket-sink/pom.xml | 10 +- applications/sink/xmpp-sink/README.adoc | 4 +- applications/sink/xmpp-sink/pom.xml | 11 +- applications/sink/zeromq-sink/pom.xml | 9 +- .../source/debezium-source/README.adoc | 6 +- applications/source/debezium-source/pom.xml | 8 +- ...DebeziumDeleteHandlingIntegrationTest.java | 20 +- .../DebeziumFlatteningIntegrationTest.java | 63 +- applications/source/file-source/pom.xml | 8 +- applications/source/ftp-source/pom.xml | 16 +- .../stream/app/source/ftp/FtpSourceTests.java | 6 +- applications/source/http-source/README.adoc | 4 +- applications/source/http-source/pom.xml | 8 +- applications/source/jdbc-source/pom.xml | 13 +- applications/source/jms-source/README.adoc | 5 +- applications/source/jms-source/pom.xml | 8 +- applications/source/kafka-source/README.adoc | 2 + applications/source/kafka-source/pom.xml | 4 +- .../source/load-generator-source/README.adoc | 8 +- applications/source/mail-source/README.adoc | 2 +- applications/source/mail-source/pom.xml | 22 +- applications/source/mongodb-source/pom.xml | 9 +- applications/source/mqtt-source/README.adoc | 10 +- applications/source/mqtt-source/pom.xml | 8 +- applications/source/rabbit-source/README.adoc | 3 +- applications/source/rabbit-source/pom.xml | 9 +- applications/source/s3-source/README.adoc | 1 + applications/source/s3-source/pom.xml | 8 +- applications/source/sftp-source/pom.xml | 10 +- applications/source/syslog-source/README.adoc | 8 +- applications/source/syslog-source/pom.xml | 8 +- applications/source/tcp-source/README.adoc | 4 +- applications/source/tcp-source/pom.xml | 8 +- applications/source/time-source/pom.xml | 9 +- .../source/twitter-message-source/README.adoc | 1 + .../source/twitter-message-source/pom.xml | 20 +- .../TwitterMessageSourceIntegrationTests.java | 37 +- .../source/twitter-search-source/README.adoc | 5 +- .../source/twitter-search-source/pom.xml | 15 +- .../TwitterSearchSourceIntegrationTests.java | 35 +- .../source/twitter-stream-source/README.adoc | 11 +- .../source/twitter-stream-source/pom.xml | 15 +- .../stream/TwitterStreamSourceTests.java | 47 +- applications/source/websocket-source/pom.xml | 8 +- applications/source/xmpp-source/README.adoc | 4 +- applications/source/xmpp-source/pom.xml | 11 +- applications/source/zeromq-source/pom.xml | 9 +- applications/stream-applications-core/pom.xml | 9 +- .../pom.xml | 15 +- .../pom.xml | 5 - ...arterWebFluxSecurityAutoConfiguration.java | 62 +- ...ppStarterWebSecurityAutoConfiguration.java | 58 +- ...EnabledManagementSecurityEnabledTests.java | 4 +- .../stream-applications-test-support/pom.xml | 5 - .../pom.xml | 4 +- build-core.sh | 2 +- functions/common/aws-s3-common/pom.xml | 37 - .../common/aws/s3/AmazonS3Configuration.java | 50 - ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../aws/s3/AmazonS3ConfigurationTests.java | 97 - functions/common/config-common/pom.xml | 28 - .../fn/common/config/ComponentCustomizer.java | 34 - .../SpelExpressionConverterConfiguration.java | 88 - ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../common/debezium-autoconfigure/README.adoc | 353 ---- .../common/debezium-autoconfigure/pom.xml | 106 - ...ebeziumEngineBuilderAutoConfiguration.java | 272 --- .../common/debezium/DebeziumProperties.java | 131 -- .../EmbeddedEngineExecutorService.java | 84 - ...ot.autoconfigure.AutoConfiguration.imports | 1 - ...ilderAutoConfigurationIntegrationTest.java | 202 -- ...umEngineBuilderAutoConfigurationTests.java | 63 - .../debezium/DebeziumPropertiesTests.java | 59 - functions/common/file-common/pom.xml | 23 - .../common/file/FileConsumerProperties.java | 83 - .../cloud/fn/common/file/FileReadingMode.java | 38 - .../cloud/fn/common/file/FileUtils.java | 108 - .../file/remote/RemoteFileDeletingAdvice.java | 60 - .../file/remote/RemoteFileRenamingAdvice.java | 69 - functions/common/ftp-common/pom.xml | 25 - .../ftp/FtpSessionFactoryConfiguration.java | 51 - .../ftp/FtpSessionFactoryProperties.java | 136 -- .../common/function-test-support/pom.xml | 72 - .../file/remote/RemoteFileTestSupport.java | 154 -- .../fn/test/support/ftp/FtpTestSupport.java | 129 -- .../fn/test/support/sftp/SftpTestSupport.java | 120 -- .../WebsocketConsumerClientHandler.java | 60 - .../xmpp/XmppTestContainerSupport.java | 80 - .../src/main/resources/id_rsa_pp | 30 - .../src/main/resources/id_rsa_pp.pub | 1 - .../src/main/resources/logback-test.xml | 12 - .../resources/xmpp/conf/available-plugins.xml | 59 - .../main/resources/xmpp/conf/crowd.properties | 42 - .../resources/xmpp/conf/openfire-demoboot.xml | 54 - .../src/main/resources/xmpp/conf/openfire.xml | 14 - .../src/main/resources/xmpp/conf/security.xml | 66 - .../xmpp/conf/security/archive/readme.txt | 1 - .../xmpp/conf/security/client.truststore | Bin 32 -> 0 bytes .../resources/xmpp/conf/security/keystore | Bin 4273 -> 0 bytes .../resources/xmpp/conf/security/truststore | Bin 174089 -> 0 bytes .../resources/xmpp/conf/server-update.xml | 4 - .../common/metadata-store-common/README.adoc | 139 -- .../common/metadata-store-common/pom.xml | 112 - .../store/MetadataStoreAutoConfiguration.java | 189 -- .../store/MetadataStoreProperties.java | 291 --- ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../MetadataStoreAutoConfigurationTests.java | 150 -- functions/common/mongodb-common/pom.xml | 43 - .../src/main/resources/application.properties | 1 - .../mongo/MongoDbTestContainerSupport.java | 45 - functions/common/mqtt-common/pom.xml | 23 - .../fn/common/mqtt/MqttConfiguration.java | 76 - .../cloud/fn/common/mqtt/MqttProperties.java | 151 -- functions/common/pom.xml | 41 - functions/common/redis-common/pom.xml | 35 - .../src/main/resources/application.properties | 1 - .../redis/RedisTestContainerSupport.java | 45 - functions/common/tcp-common/pom.xml | 25 - .../common/tcp/EncoderDecoderFactoryBean.java | 108 - .../cloud/fn/common/tcp/Encoding.java | 56 - .../tcp/TcpConnectionFactoryProperties.java | 96 - .../common/tensorflow-common/README.adoc | 344 --- functions/common/tensorflow-common/pom.xml | 76 - .../tensorflow/AbstractGraphRunner.java | 142 -- .../tensorflow/AutoCloseableSession.java | 63 - .../cloud/fn/common/tensorflow/Functions.java | 86 - .../fn/common/tensorflow/GraphDefinition.java | 27 - .../fn/common/tensorflow/GraphRunner.java | 107 - .../common/tensorflow/GraphRunnerMemory.java | 53 - .../tensorflow/ProtoBufGraphDefinition.java | 74 - .../tensorflow/deprecated/GraphicsUtils.java | 639 ------ .../deprecated/JsonMapperFunction.java | 46 - .../deprecated/TensorFlowService.java | 131 -- .../tensorflow/util/AutoCloseables.java | 153 -- .../tensorflow/util/CachedModelExtractor.java | 107 - .../tensorflow/util/ModelExtractor.java | 248 --- .../resources/images/programming_model.png | Bin 31008 -> 0 bytes .../src/main/resources/images/tf_pipeline.png | Bin 33684 -> 0 bytes .../common/tensorflow/EnrichFromMemory.java | 89 - .../tensorflow/FunctionComposition.java | 58 - ...ctionCompositionMultipleInputsOutputs.java | 67 - .../tensorflow/ReleaseTensorParameters.java | 77 - functions/common/twitter-common/pom.xml | 33 - .../cloud/fn/common/twitter/Cursor.java | 37 - .../TwitterConnectionConfiguration.java | 127 -- .../twitter/TwitterConnectionProperties.java | 115 - .../common/twitter/util/TwitterTestUtils.java | 68 - functions/common/xmpp-common/pom.xml | 24 - .../XmppConnectionFactoryConfiguration.java | 63 - .../xmpp/XmppConnectionFactoryProperties.java | 138 -- .../consumer/analytics-consumer/README.adoc | 177 -- functions/consumer/analytics-consumer/pom.xml | 46 - .../AnalyticsConsumerConfiguration.java | 209 -- .../AnalyticsConsumerProperties.java | 188 -- .../AnalyticsConsumerParentTest.java | 48 - .../analytics/CountWithAmountTest.java | 43 - .../fn/consumer/analytics/EmptyTagsTests.java | 55 - .../analytics/ExpressionCounterNameTests.java | 41 - .../fn/consumer/analytics/FixedTagsTests.java | 51 - .../analytics/GaugeWithAmountTest.java | 59 - .../analytics/LiteralTagExpressionsTests.java | 52 - .../fn/consumer/analytics/NullTagsTests.java | 55 - .../StockExchangeAnalyticsTests.java | 74 - .../demo/StockExchangeAnalyticsExample.java | 118 -- .../src/test/resources/data/stock_appl.json | 12 - .../src/test/resources/data/stock_vmw.json | 12 - .../consumer/cassandra-consumer/README.adoc | 32 - functions/consumer/cassandra-consumer/pom.xml | 34 - .../CassandraConsumerConfiguration.java | 206 -- .../CassandraConsumerProperties.java | 97 - .../CassandraAppClusterConfiguration.java | 154 -- .../cluster/CassandraClusterProperties.java | 85 - .../cluster/TrustAllSSLContextFactory.java | 70 - .../cassandra/query/ColumnNameExtractor.java | 30 - .../query/InsertQueryColumnNameExtractor.java | 57 - .../query/UpdateQueryColumnNameExtractor.java | 59 - .../src/main/resources/application.properties | 1 - .../CassandraConsumerApplicationTests.java | 98 - .../cassandra/CassandraContainerTest.java | 45 - .../cassandra/CassandraEntityInsertTests.java | 62 - .../cassandra/CassandraIngestInsertTests.java | 61 - .../CassandraIngestNamedParamsTests.java | 68 - .../cassandra/CassandraIngestUpdateTests.java | 63 - .../fn/consumer/cassandra/domain/Book.java | 41 - .../src/test/resources/init-db.cql | 10 - .../elasticsearch-consumer/README.adoc | 35 - .../consumer/elasticsearch-consumer/pom.xml | 48 - .../ElasticsearchConsumerConfiguration.java | 304 --- .../ElasticsearchConsumerProperties.java | 126 -- ...ElasticsearchConsumerApplicationTests.java | 306 --- .../src/test/resources/logback.xml | 13 - functions/consumer/file-consumer/README.adoc | 28 - functions/consumer/file-consumer/pom.xml | 23 - .../file/FileConsumerConfiguration.java | 84 - .../consumer/file/FileConsumerProperties.java | 162 -- .../file/AbstractFileConsumerTests.java | 58 - .../fn/consumer/file/BinaryFileTests.java | 46 - .../fn/consumer/file/ExpressionTests.java | 65 - .../cloud/fn/consumer/file/TextFileTests.java | 47 - functions/consumer/ftp-consumer/README.adoc | 28 - functions/consumer/ftp-consumer/pom.xml | 34 - .../ftp/FtpConsumerConfiguration.java | 82 - .../consumer/ftp/FtpConsumerProperties.java | 139 -- .../ftp/FtpConsumerPropertiesTests.java | 125 -- .../fn/consumer/ftp/FtpConsumerTests.java | 76 - functions/consumer/jdbc-consumer/README.adoc | 26 - functions/consumer/jdbc-consumer/pom.xml | 58 - .../DefaultInitializationScriptResource.java | 60 - .../jdbc/JdbcConsumerConfiguration.java | 288 --- .../consumer/jdbc/JdbcConsumerProperties.java | 109 - .../consumer/jdbc/ShorthandMapConverter.java | 61 - .../src/main/resources/application.properties | 1 - .../jdbc/BatchInsertTimeoutTests.java | 50 - .../jdbc/DataReceivedAsByteArrayTests.java | 49 - .../jdbc/ExplicitTableCreationTests.java | 53 - .../fn/consumer/jdbc/HeaderInsertTests.java | 48 - .../jdbc/ImplicitTableCreationTests.java | 53 - .../jdbc/JdbcConsumerApplicationTests.java | 93 - .../jdbc/JsonStringPayloadInsertTests.java | 61 - .../consumer/jdbc/MapPayloadInsertTests.java | 69 - .../consumer/jdbc/SimpleBatchInsertTests.java | 51 - .../fn/consumer/jdbc/SimpleInsertTests.java | 46 - .../fn/consumer/jdbc/SimpleMappingTests.java | 50 - .../cloud/fn/consumer/jdbc/SpELTests.java | 52 - .../UnqualifiableColumnExpressionTests.java | 46 - .../fn/consumer/jdbc/VaryingInsertTests.java | 61 - .../src/test/resources/explicit-script.sql | 6 - .../src/test/resources/schema.sql | 7 - .../consumer/kafka-publisher/README.adoc | 31 - functions/consumer/kafka-publisher/pom.xml | 34 - .../kafka/KafkaPublisherConfiguration.java | 121 -- .../kafka/KafkaPublisherProperties.java | 190 -- ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../KafkaPublisherConfigurationTests.java | 168 -- functions/consumer/log-consumer/README.adoc | 26 - functions/consumer/log-consumer/pom.xml | 30 - .../log/LogConsumerConfiguration.java | 52 - .../consumer/log/LogConsumerProperties.java | 84 - .../log/LogConsumerApplicationTests.java | 92 - .../consumer/mongodb-consumer/README.adoc | 31 - functions/consumer/mongodb-consumer/pom.xml | 41 - .../mongo/MongoDbConsumerConfiguration.java | 86 - .../mongo/MongoDbConsumerProperties.java | 64 - .../MongoDbConsumerApplicationTests.java | 108 - .../src/test/resources/logback-test.xml | 14 - functions/consumer/mqtt-consumer/README.adoc | 33 - functions/consumer/mqtt-consumer/pom.xml | 23 - .../mqtt/MqttConsumerConfiguration.java | 83 - .../consumer/mqtt/MqttConsumerProperties.java | 117 -- .../fn/consumer/mqtt/MqttConsumerTests.java | 124 -- .../src/test/resources/logback.xml | 14 - functions/consumer/pom.xml | 49 - .../consumer/rabbit-consumer/README.adoc | 26 - functions/consumer/rabbit-consumer/pom.xml | 31 - .../rabbit/RabbitConsumerConfiguration.java | 194 -- .../rabbit/RabbitConsumerProperties.java | 158 -- functions/consumer/redis-consumer/README.adoc | 25 - functions/consumer/redis-consumer/pom.xml | 41 - .../redis/RedisConsumerConfiguration.java | 68 - .../redis/RedisConsumerProperties.java | 156 -- .../redis/AbstractRedisConsumerTests.java | 60 - .../consumer/redis/RedisConsumerKeyTests.java | 66 - .../redis/RedisConsumerQueueTests.java | 44 - .../redis/RedisConsumerTopicTests.java | 86 - .../src/test/resources/application.properties | 1 - .../consumer/rsocket-consumer/README.adoc | 26 - functions/consumer/rsocket-consumer/pom.xml | 24 - .../rsocket/RsocketConsumerConfiguration.java | 52 - .../rsocket/RsocketConsumerProperties.java | 77 - .../rsocket/RsocketConsumerTests.java | 91 - functions/consumer/s3-consumer/README.adoc | 27 - functions/consumer/s3-consumer/pom.xml | 38 - .../s3/AwsS3ConsumerConfiguration.java | 109 - .../consumer/s3/AwsS3ConsumerProperties.java | 110 - .../s3/AbstractAwsS3ConsumerMockTests.java | 126 -- .../consumer/s3/AmazonS3UploadFileTests.java | 79 - .../s3/AmazonS3UploadInputStreamTests.java | 78 - functions/consumer/sftp-consumer/README.adoc | 27 - functions/consumer/sftp-consumer/pom.xml | 29 - .../sftp/SftpConsumerConfiguration.java | 80 - .../consumer/sftp/SftpConsumerProperties.java | 278 --- ...tpConsumerSessionFactoryConfiguration.java | 68 - .../sftp/SftpConsumerPropertiesTests.java | 208 -- .../fn/consumer/sftp/SftpConsumerTests.java | 79 - functions/consumer/tcp-consumer/README.adoc | 25 - functions/consumer/tcp-consumer/pom.xml | 24 - .../tcp/TcpConsumerConfiguration.java | 109 - .../consumer/tcp/TcpConsumerProperties.java | 90 - .../tcp/AbstractTcpConsumerTests.java | 182 -- .../cloud/fn/consumer/tcp/CRLFTests.java | 33 - .../cloud/fn/consumer/tcp/L1Tests.java | 34 - .../cloud/fn/consumer/tcp/L2Tests.java | 34 - .../cloud/fn/consumer/tcp/L4Tests.java | 34 - .../cloud/fn/consumer/tcp/LFTests.java | 34 - .../cloud/fn/consumer/tcp/NULLTests.java | 34 - .../cloud/fn/consumer/tcp/NotNioTests.java | 40 - .../tcp/PropertiesPopulatedTests.java | 44 - .../cloud/fn/consumer/tcp/RAWTests.java | 34 - .../cloud/fn/consumer/tcp/STXETXTests.java | 34 - .../consumer/twitter-consumer/README.adoc | 110 - functions/consumer/twitter-consumer/pom.xml | 29 - ...itterFriendshipsConsumerConfiguration.java | 96 - .../TwitterFriendshipsConsumerProperties.java | 149 -- .../TwitterMessageConsumerConfiguration.java | 71 - .../TwitterMessageConsumerProperties.java | 85 - .../TwitterUpdateConsumerConfiguration.java | 112 - .../TwitterUpdateConsumerProperties.java | 174 -- ...rUpdateSinkFunctionConfigurationTests.java | 86 - .../consumer/wavefront-consumer/README.adoc | 29 - functions/consumer/wavefront-consumer/pom.xml | 28 - .../WavefrontConsumerConfiguration.java | 72 - .../WavefrontConsumerProperties.java | 178 -- .../consumer/wavefront/WavefrontFormat.java | 124 -- .../DirectConnectionWavefrontService.java | 56 - .../ProxyConnectionWavefrontService.java | 48 - .../wavefront/service/WavefrontService.java | 24 - .../WavefrontConsumerConfigurationTest.java | 76 - .../WavefrontConsumerPropertiesTest.java | 111 - .../wavefront/WavefrontFormatTest.java | 200 -- .../DirectConnectionWavefrontServiceTest.java | 64 - .../ProxyConnectionWavefrontServiceTest.java | 50 - .../WavefrontServiceConditionTest.java | 104 - .../consumer/websocket-consumer/README.adoc | 25 - functions/consumer/websocket-consumer/pom.xml | 42 - .../WebsocketConsumerConfiguration.java | 121 -- .../WebsocketConsumerProperties.java | 114 - .../websocket/WebsocketConsumerServer.java | 113 - .../WebsocketConsumerServerHandler.java | 212 -- .../WebsocketConsumerServerInitializer.java | 90 - .../WebsocketConsumerTraceEndpoint.java | 67 - .../trace/InMemoryTraceRepository.java | 85 - .../fn/consumer/websocket/trace/Trace.java | 56 - .../websocket/WebsocketConsumerTests.java | 166 -- functions/consumer/xmpp-consumer/README.adoc | 30 - functions/consumer/xmpp-consumer/pom.xml | 31 - .../xmpp/XmppConsumerConfiguration.java | 63 - .../consumer/xmpp/XmppConsumerProperties.java | 44 - .../xmpp/XmppConsumerConfigurationTests.java | 156 -- .../consumer/zeromq-consumer/README.adoc | 30 - functions/consumer/zeromq-consumer/pom.xml | 23 - .../zeromq/ZeroMqConsumerConfiguration.java | 77 - .../zeromq/ZeroMqConsumerProperties.java | 86 - .../ZeroMqConsumerConfigurationTests.java | 94 - functions/function-dependencies/pom.xml | 310 --- .../function/aggregator-function/README.adoc | 27 - .../function/aggregator-function/pom.xml | 99 - .../AggregatorFunctionConfiguration.java | 164 -- .../AggregatorFunctionProperties.java | 122 -- ...ConfigurationEnvironmentPostProcessor.java | 60 - .../aggregator/MessageStoreConfiguration.java | 115 - .../main/resources/META-INF/spring.factories | 2 - ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../AbstractAggregatorFunctionTests.java | 56 - ...psAndMongoMessageStoreAggregatorTests.java | 82 - .../fn/aggregator/DefaultAggregatorTests.java | 76 - .../JdbcMessageStoreAggregatorTests.java | 73 - .../RedisMessageStoreAggregatorTests.java | 85 - .../function/filter-function/README.adoc | 27 - functions/function/filter-function/pom.xml | 25 - .../filter/FilterFunctionConfiguration.java | 56 - .../fn/filter/FilterFunctionProperties.java | 45 - ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../FilterFunctionApplicationTests.java | 67 - .../header-enricher-function/README.adoc | 25 - .../function/header-enricher-function/pom.xml | 25 - .../HeaderEnricherFunctionConfiguration.java | 71 - .../HeaderEnricherFunctionProperties.java | 65 - ...ot.autoconfigure.AutoConfiguration.imports | 1 - ...eaderEnricherFunctionApplicationTests.java | 71 - .../header-filter-function/README.adoc | 25 - .../function/header-filter-function/pom.xml | 30 - .../HeaderFilterFunctionConfiguration.java | 76 - .../HeaderFilterFunctionProperties.java | 53 - ...lterFunctionApplicationDeleteAllTests.java | 62 - .../HeaderFilterFunctionApplicationTests.java | 101 - .../cloud/fn/header/filter/HeaderUtils.java | 38 - .../src/test/resources/test.properties | 1 - .../http-request-function/README.adoc | 32 - .../function/http-request-function/pom.xml | 29 - .../HttpRequestFunctionConfiguration.java | 127 -- .../HttpRequestFunctionProperties.java | 140 -- ...tpRequestFunctionTestApplicationTests.java | 262 --- .../image-recognition-function/README.adoc | 103 - .../image-recognition-function/pom.xml | 41 - .../image/recognition/ImageRecognition.java | 272 --- .../ImageRecognitionAugmenter.java | 104 - .../recognition/RecognitionResponse.java | 54 - .../util/ImageNetReadableNamesWriter.java | 105 - .../main/resources/images/image-augmented.jpg | Bin 17520 -> 0 bytes .../image-recognition-panda-augmented.jpg | Bin 103832 -> 0 bytes .../resources/labels/inception_labels.txt | 1001 --------- .../resources/labels/mobilenet_labels.txt | 1001 --------- .../recognition/ImageRecognitionExample.java | 103 - .../recognition/ImageRecognitionExample2.java | 70 - .../fn/image/recognition/SavedModelTest.java | 63 - .../images/giant_panda_in_beijing_zoo_1.jpg | Bin 116068 -> 0 bytes .../src/test/resources/images/panda.jpeg | Bin 11312 -> 0 bytes .../object-detection-function/README.adoc | 189 -- .../object-detection-function/pom.xml | 74 - .../ObjectDetectionImageAugmenter.java | 119 -- .../ObjectDetectionInputAdapter.java | 76 - .../ObjectDetectionInputConverter.java | 98 - .../ObjectDetectionOutputConverter.java | 187 -- .../detection/ObjectDetectionService.java | 147 -- .../detection/ObjectDetectionService2.java | 113 - .../detection/domain/ObjectDetection.java | 116 - .../protos/StringIntLabelMapOuterClass.java | 1864 ----------------- .../src/main/proto/example.proto__ | 301 --- .../src/main/proto/feature.proto__ | 105 - .../src/main/proto/string_int_label_map.proto | 25 - .../images/object-detection-augmented.jpg | Bin 147482 -> 0 bytes ...bject-detection-segmentation-augmented.jpg | Bin 143707 -> 0 bytes .../resources/images/object-detection.jpg | Bin 1415684 -> 0 bytes .../resources/images/object_detection_1.jpg | Bin 49455 -> 0 bytes .../examples/ExampleInstanceSegmentation.java | 93 - .../examples/ExampleObjectDetection.java | 84 - .../detection/examples/SimpleExample.java | 47 - .../payload-converter-function/pom.xml | 18 - .../java/functions/ByteArrayTextToString.java | 51 - .../main/java/functions/JsonBytesToMap.java | 80 - .../functions/ByteArrayTextToStringTests.java | 79 - functions/function/pom.xml | 40 - .../README.adoc | 104 - .../semantic-segmentation-function/pom.xml | 39 - .../segmentation/NativeImageUtils.java | 107 - .../segmentation/SegmentationColorMap.java | 363 ---- .../segmentation/SemanticSegmentation.java | 286 --- .../attic/SemanticSegmentationUtils.java | 289 --- .../resources/colormap/ade20k_colormap.json | 156 -- .../colormap/black_white_colormap.json | 8 - .../resources/colormap/citymap_colormap.json | 24 - .../colormap/mapillary_colormap.json | 71 - .../resources/images/ADE20K-all-small.png | Bin 188155 -> 0 bytes .../main/resources/images/VikiMaxiAdi-all.png | Bin 248787 -> 0 bytes .../src/main/resources/images/VikiMaxiAdi.jpg | Bin 80161 -> 0 bytes .../resources/images/amsterdam-cityscape1.jpg | Bin 104966 -> 0 bytes .../resources/images/cityscape-all-small.png | Bin 242143 -> 0 bytes .../images/giant_panda_in_beijing_zoo_1.jpg | Bin 116068 -> 0 bytes .../src/main/resources/images/interior.jpg | Bin 152518 -> 0 bytes functions/function/spel-function/README.adoc | 28 - functions/function/spel-function/pom.xml | 25 - .../fn/spel/SpelFunctionConfiguration.java | 47 - .../cloud/fn/spel/SpelFunctionProperties.java | 47 - ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../fn/spel/SpelFunctionApplicationTests.java | 60 - .../function/splitter-function/README.adoc | 25 - functions/function/splitter-function/pom.xml | 24 - .../SplitterFunctionConfiguration.java | 125 -- .../splitter/SplitterFunctionProperties.java | 128 -- .../SplitterFunctionApplicationTests.java | 49 - .../task-launch-request-function/README.adoc | 22 - .../task-launch-request-function/pom.xml | 17 - .../CommandLineArgumentsMessageMapper.java | 24 - .../launch/request/KeyValueListParser.java | 66 - .../launch/request/TaskLaunchRequest.java | 65 - .../request/TaskLaunchRequestFunction.java | 31 - ...askLaunchRequestFunctionConfiguration.java | 184 -- .../TaskLaunchRequestFunctionProperties.java | 113 - .../TaskLaunchRequestMessageProcessor.java | 68 - .../request/TaskLaunchRequestSupplier.java | 67 - .../launch/request/TaskNameMessageMapper.java | 23 - ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../request/KeyValueListParserTests.java | 97 - ...LaunchRequestFunctionApplicationTests.java | 211 -- ...kLaunchRequestFunctionPropertiesTests.java | 76 - .../function/twitter-function/README.adoc | 149 -- functions/function/twitter-function/pom.xml | 37 - .../geo/TwitterGeoFunctionConfiguration.java | 113 - .../geo/TwitterGeoFunctionProperties.java | 197 -- .../TwitterTrendFunctionConfiguration.java | 91 - .../trend/TwitterTrendFunctionProperties.java | 107 - .../TwitterUsersFunctionConfiguration.java | 98 - .../users/TwitterUsersFunctionProperties.java | 144 -- .../twitter/geo/TwitterGeoFunctionTest.java | 279 --- .../trend/TwitterTrendFunctionTests.java | 140 -- .../users/TwitterUsersFunctionTests.java | 204 -- .../src/test/resources/logback.xml | 12 - .../resources/response/lookup_users_id.json | 1 - .../response/search_places_amsterdam.json | 1 - .../test/resources/response/search_users.json | 1 - .../src/test/resources/response/trends.json | 1 - functions/pom.xml | 33 - functions/spring-functions-parent/pom.xml | 104 - functions/supplier/debezium-supplier/pom.xml | 146 -- ...DebeziumReactiveConsumerConfiguration.java | 181 -- .../debezium/DebeziumSupplierProperties.java | 39 - ...ot.autoconfigure.AutoConfiguration.imports | 1 - ...iumReactiveConsumerConfigurationTests.java | 66 - .../DebeziumSupplierIntegrationTest.java | 169 -- .../TestJdbcTemplateConfiguration.java | 55 - .../src/test/resources/logback-test.xml | 30 - functions/supplier/file-supplier/README.adoc | 37 - functions/supplier/file-supplier/pom.xml | 49 - .../file/FileSupplierConfiguration.java | 138 -- .../supplier/file/FileSupplierProperties.java | 112 - .../file/AbstractFileSupplierTests.java | 80 - .../file/DefaultFileSupplierTests.java | 118 -- .../fn/supplier/file/FileModeRefTests.java | 64 - .../file/FilePayloadWithPatternTests.java | 68 - .../file/FilePayloadWithRegexTests.java | 68 - .../LinesAndMarkersAsJsonPayloadTests.java | 83 - .../fn/supplier/file/LinesPayloadTests.java | 56 - functions/supplier/ftp-supplier/README.adoc | 37 - functions/supplier/ftp-supplier/pom.xml | 44 - .../ftp/FtpSupplierConfiguration.java | 158 -- .../supplier/ftp/FtpSupplierProperties.java | 178 -- .../ftp/FtpSupplierPropertiesTests.java | 139 -- .../fn/supplier/ftp/FtpSupplierTests.java | 98 - functions/supplier/http-supplier/README.adoc | 35 - functions/supplier/http-supplier/pom.xml | 28 - .../http/HttpSupplierConfiguration.java | 95 - .../supplier/http/HttpSupplierProperties.java | 120 -- .../src/main/resources/application.properties | 1 - .../http/HttpSupplierApplicationTests.java | 200 -- .../http-supplier/src/test/resources/test.jks | Bin 1276 -> 0 bytes functions/supplier/jdbc-supplier/README.adoc | 36 - functions/supplier/jdbc-supplier/pom.xml | 69 - .../jdbc/JdbcSupplierConfiguration.java | 94 - .../supplier/jdbc/JdbcSupplierProperties.java | 85 - .../src/main/resources/application.properties | 1 - .../jdbc/DefaultJdbcSupplierTests.java | 101 - .../jdbc/NonSplitJdbcSupplierTests.java | 64 - .../src/test/resources/schema.sql | 10 - functions/supplier/jms-supplier/README.adoc | 35 - functions/supplier/jms-supplier/pom.xml | 38 - .../jms/JmsSupplierConfiguration.java | 122 -- .../supplier/jms/JmsSupplierProperties.java | 126 -- .../jms/AbstractJmsSupplierTests.java | 36 - .../jms/PropertiesPopulated1Tests.java | 57 - .../jms/PropertiesPopulated2Tests.java | 56 - .../jms/PropertiesPopulated3Tests.java | 82 - functions/supplier/kafka-supplier/README.adoc | 28 - functions/supplier/kafka-supplier/pom.xml | 33 - .../kafka/KafkaSupplierConfiguration.java | 139 -- .../kafka/KafkaSupplierProperties.java | 86 - ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../fn/supplier/kafka/KafkaSupplierTests.java | 129 -- functions/supplier/mail-supplier/README.adoc | 36 - functions/supplier/mail-supplier/pom.xml | 33 - .../mail/MailSupplierConfiguration.java | 209 -- .../supplier/mail/MailSupplierProperties.java | 185 -- .../mail/AbstractMailSupplierTests.java | 86 - .../cloud/fn/supplier/mail/ImapFailTests.java | 56 - .../fn/supplier/mail/ImapIdleFailTests.java | 47 - .../fn/supplier/mail/ImapIdlePassTests.java | 49 - .../cloud/fn/supplier/mail/ImapPassTests.java | 67 - .../cloud/fn/supplier/mail/Pop3FailTests.java | 48 - .../cloud/fn/supplier/mail/Pop3PassTests.java | 47 - .../supplier/mongodb-supplier/README.adoc | 39 - functions/supplier/mongodb-supplier/pom.xml | 51 - .../mongo/MongodbSupplierConfiguration.java | 105 - .../mongo/MongodbSupplierProperties.java | 103 - .../src/main/resources/application.properties | 1 - .../MongodbSupplierApplicationTests.java | 112 - functions/supplier/mqtt-supplier/README.adoc | 42 - functions/supplier/mqtt-supplier/pom.xml | 24 - .../mqtt/MqttSupplierConfiguration.java | 96 - .../supplier/mqtt/MqttSupplierProperties.java | 103 - .../fn/supplier/mqtt/MqttSupplierTests.java | 131 -- .../src/test/resources/logback.xml | 13 - functions/supplier/pom.xml | 47 - .../supplier/rabbit-supplier/README.adoc | 34 - functions/supplier/rabbit-supplier/pom.xml | 31 - .../rabbit/RabbitSupplierConfiguration.java | 234 --- .../rabbit/RabbitSupplierProperties.java | 161 -- functions/supplier/s3-supplier/README.adoc | 38 - functions/supplier/s3-supplier/pom.xml | 34 - .../s3/AwsS3SupplierConfiguration.java | 239 --- .../supplier/s3/AwsS3SupplierProperties.java | 175 -- .../s3/AbstractAwsS3SupplierMockTests.java | 166 -- .../s3/AmazonS3FilesTransferredTests.java | 55 - .../s3/AmazonS3LinesTransferredTests.java | 60 - .../fn/supplier/s3/AmazonS3ListOnlyTests.java | 80 - functions/supplier/sftp-supplier/README.adoc | 87 - functions/supplier/sftp-supplier/pom.xml | 48 - .../sftp/SftpSupplierConfiguration.java | 458 ---- .../SftpSupplierFactoryConfiguration.java | 135 -- .../supplier/sftp/SftpSupplierProperties.java | 517 ----- .../fn/supplier/sftp/SftpSupplierRotator.java | 63 - .../sftp/SftpSupplierApplicationTests.java | 449 ---- .../src/test/resources/logback.xml | 16 - .../supplier/syslog-supplier/README.adoc | 32 - functions/supplier/syslog-supplier/pom.xml | 23 - .../syslog/SyslogSupplierConfiguration.java | 177 -- .../syslog/SyslogSupplierProperties.java | 142 -- .../syslog/AbstractSyslogSupplierTests.java | 107 - .../cloud/fn/supplier/syslog/NotNioTests.java | 35 - .../syslog/PropertiesPopulatedTests.java | 38 - .../fn/supplier/syslog/Tcp3164Tests.java | 47 - .../fn/supplier/syslog/Tcp5424Tests.java | 49 - .../supplier/syslog/TcpAndUdp3164Tests.java | 52 - .../supplier/syslog/TcpAndUdp5424Tests.java | 53 - .../fn/supplier/syslog/Udp3164Tests.java | 52 - .../fn/supplier/syslog/Udp5424Tests.java | 47 - functions/supplier/tcp-supplier/README.adoc | 33 - functions/supplier/tcp-supplier/pom.xml | 24 - .../tcp/TcpSupplierConfiguration.java | 99 - .../supplier/tcp/TcpSupplierProperties.java | 63 - .../tcp/AbstractTcpSupplierTests.java | 111 - .../cloud/fn/supplier/tcp/CRLFTests.java | 30 - .../cloud/fn/supplier/tcp/L1Tests.java | 33 - .../cloud/fn/supplier/tcp/L2Tests.java | 33 - .../cloud/fn/supplier/tcp/L4Tests.java | 33 - .../cloud/fn/supplier/tcp/LFTests.java | 33 - .../cloud/fn/supplier/tcp/NULLTests.java | 33 - .../cloud/fn/supplier/tcp/NotNioTests.java | 38 - .../tcp/PropertiesPopulatedTests.java | 43 - .../cloud/fn/supplier/tcp/RAWTests.java | 33 - .../cloud/fn/supplier/tcp/STXETXTests.java | 33 - functions/supplier/time-supplier/README.adoc | 31 - functions/supplier/time-supplier/pom.xml | 24 - .../cloud/fn/supplier/time/DateFormat.java | 84 - .../time/TimeSupplierConfiguration.java | 41 - .../supplier/time/TimeSupplierProperties.java | 43 - .../time/SimpleTimeSupplierTests.java | 43 - .../time/TimeSupplierApplicationTests.java | 43 - .../supplier/time/VariationToSimpleTests.java | 54 - .../supplier/twitter-supplier/README.adoc | 143 -- functions/supplier/twitter-supplier/pom.xml | 45 - ...itterFriendshipsSupplierConfiguration.java | 150 -- .../TwitterFriendshipsSupplierProperties.java | 151 -- .../TwitterMessageSupplierConfiguration.java | 126 -- .../TwitterMessageSupplierProperties.java | 45 - .../status/search/SearchPagination.java | 166 -- .../TwitterSearchSupplierConfiguration.java | 135 -- .../TwitterSearchSupplierProperties.java | 197 -- .../TwitterStreamSupplierConfiguration.java | 154 -- .../TwitterStreamSupplierProperties.java | 267 --- .../status/search/SearchPaginationTests.java | 349 --- .../stream/TwitterStreamSupplierTests.java | 210 -- .../src/test/resources/logback.xml | 12 - .../resources/response/stream_test_1.json | 2 - .../supplier/websocket-supplier/README.adoc | 32 - functions/supplier/websocket-supplier/pom.xml | 39 - .../WebsocketSupplierConfiguration.java | 90 - .../WebsocketSupplierProperties.java | 96 - .../websocket/WebsocketSupplierTests.java | 103 - functions/supplier/xmpp-supplier/README.adoc | 30 - functions/supplier/xmpp-supplier/pom.xml | 33 - .../xmpp/XmppSupplierConfiguration.java | 67 - .../supplier/xmpp/XmppSupplierProperties.java | 54 - .../xmpp/XmppSupplierConfigurationTests.java | 134 -- .../supplier/zeromq-supplier/README.adoc | 32 - functions/supplier/zeromq-supplier/pom.xml | 24 - .../zeromq/ZeroMqSupplierConfiguration.java | 84 - .../zeromq/ZeroMqSupplierProperties.java | 131 -- .../ZeroMqSupplierConfigurationTests.java | 99 - pom.xml | 3 +- stream-applications-build/pom.xml | 22 +- update-project-version.sh | 2 - 739 files changed, 513 insertions(+), 53014 deletions(-) delete mode 100644 applications/processor/image-recognition-processor/README.adoc delete mode 100644 applications/processor/image-recognition-processor/pom.xml delete mode 100644 applications/processor/image-recognition-processor/src/main/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorConfiguration.java delete mode 100644 applications/processor/image-recognition-processor/src/main/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorProperties.java delete mode 100644 applications/processor/image-recognition-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties delete mode 100644 applications/processor/image-recognition-processor/src/main/resources/application.yml delete mode 100644 applications/processor/image-recognition-processor/src/test/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorTests.java delete mode 100644 applications/processor/image-recognition-processor/src/test/resources/images/giant_panda_in_beijing_zoo_1.jpg delete mode 100644 applications/processor/image-recognition-processor/src/test/resources/images/panda.jpeg delete mode 100644 applications/processor/object-detection-processor/README.adoc delete mode 100644 applications/processor/object-detection-processor/pom.xml delete mode 100644 applications/processor/object-detection-processor/src/main/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorConfiguration.java delete mode 100644 applications/processor/object-detection-processor/src/main/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorProperties.java delete mode 100644 applications/processor/object-detection-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties delete mode 100644 applications/processor/object-detection-processor/src/test/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorTests.java delete mode 100644 applications/processor/object-detection-processor/src/test/resources/images/animals2.jpg delete mode 100644 applications/processor/object-detection-processor/src/test/resources/images/object-detection.jpg delete mode 100644 applications/processor/object-detection-processor/src/test/resources/images/panda.jpeg delete mode 100644 applications/processor/object-detection-processor/src/test/resources/images/pets.jpg delete mode 100644 applications/processor/object-detection-processor/src/test/resources/images/pivotal.jpeg delete mode 100644 applications/processor/object-detection-processor/src/test/resources/images/scdf-tensorflow-object-detection-arch.png delete mode 100644 applications/processor/object-detection-processor/src/test/resources/images/tourists.jpg delete mode 100644 applications/processor/semantic-segmentation-processor/README.adoc delete mode 100644 applications/processor/semantic-segmentation-processor/pom.xml delete mode 100644 applications/processor/semantic-segmentation-processor/src/main/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorConfiguration.java delete mode 100644 applications/processor/semantic-segmentation-processor/src/main/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorProperties.java delete mode 100644 applications/processor/semantic-segmentation-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties delete mode 100644 applications/processor/semantic-segmentation-processor/src/test/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorTests.java delete mode 100644 applications/processor/semantic-segmentation-processor/src/test/resources/images/amsterdam-cityscape1.jpg delete mode 100644 functions/common/aws-s3-common/pom.xml delete mode 100644 functions/common/aws-s3-common/src/main/java/org/springframework/cloud/fn/common/aws/s3/AmazonS3Configuration.java delete mode 100644 functions/common/aws-s3-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/common/aws-s3-common/src/test/java/org/springframework/cloud/fn/common/aws/s3/AmazonS3ConfigurationTests.java delete mode 100644 functions/common/config-common/pom.xml delete mode 100644 functions/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/ComponentCustomizer.java delete mode 100644 functions/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/SpelExpressionConverterConfiguration.java delete mode 100644 functions/common/config-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/common/debezium-autoconfigure/README.adoc delete mode 100644 functions/common/debezium-autoconfigure/pom.xml delete mode 100644 functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfiguration.java delete mode 100644 functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/DebeziumProperties.java delete mode 100644 functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/EmbeddedEngineExecutorService.java delete mode 100644 functions/common/debezium-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfigurationIntegrationTest.java delete mode 100644 functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfigurationTests.java delete mode 100644 functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumPropertiesTests.java delete mode 100644 functions/common/file-common/pom.xml delete mode 100644 functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileConsumerProperties.java delete mode 100644 functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileReadingMode.java delete mode 100644 functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileUtils.java delete mode 100644 functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/remote/RemoteFileDeletingAdvice.java delete mode 100644 functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/remote/RemoteFileRenamingAdvice.java delete mode 100644 functions/common/ftp-common/pom.xml delete mode 100644 functions/common/ftp-common/src/main/java/org/springframework/cloud/fn/common/ftp/FtpSessionFactoryConfiguration.java delete mode 100644 functions/common/ftp-common/src/main/java/org/springframework/cloud/fn/common/ftp/FtpSessionFactoryProperties.java delete mode 100644 functions/common/function-test-support/pom.xml delete mode 100644 functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/file/remote/RemoteFileTestSupport.java delete mode 100644 functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/ftp/FtpTestSupport.java delete mode 100644 functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/sftp/SftpTestSupport.java delete mode 100644 functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/websocket/WebsocketConsumerClientHandler.java delete mode 100644 functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppTestContainerSupport.java delete mode 100644 functions/common/function-test-support/src/main/resources/id_rsa_pp delete mode 100644 functions/common/function-test-support/src/main/resources/id_rsa_pp.pub delete mode 100644 functions/common/function-test-support/src/main/resources/logback-test.xml delete mode 100755 functions/common/function-test-support/src/main/resources/xmpp/conf/available-plugins.xml delete mode 100755 functions/common/function-test-support/src/main/resources/xmpp/conf/crowd.properties delete mode 100755 functions/common/function-test-support/src/main/resources/xmpp/conf/openfire-demoboot.xml delete mode 100644 functions/common/function-test-support/src/main/resources/xmpp/conf/openfire.xml delete mode 100644 functions/common/function-test-support/src/main/resources/xmpp/conf/security.xml delete mode 100755 functions/common/function-test-support/src/main/resources/xmpp/conf/security/archive/readme.txt delete mode 100755 functions/common/function-test-support/src/main/resources/xmpp/conf/security/client.truststore delete mode 100755 functions/common/function-test-support/src/main/resources/xmpp/conf/security/keystore delete mode 100755 functions/common/function-test-support/src/main/resources/xmpp/conf/security/truststore delete mode 100755 functions/common/function-test-support/src/main/resources/xmpp/conf/server-update.xml delete mode 100644 functions/common/metadata-store-common/README.adoc delete mode 100644 functions/common/metadata-store-common/pom.xml delete mode 100644 functions/common/metadata-store-common/src/main/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreAutoConfiguration.java delete mode 100644 functions/common/metadata-store-common/src/main/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreProperties.java delete mode 100644 functions/common/metadata-store-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/common/metadata-store-common/src/test/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreAutoConfigurationTests.java delete mode 100644 functions/common/mongodb-common/pom.xml delete mode 100644 functions/common/mongodb-common/src/main/resources/application.properties delete mode 100644 functions/common/mongodb-common/src/test/java/org/springframework/cloud/fn/common/mongo/MongoDbTestContainerSupport.java delete mode 100644 functions/common/mqtt-common/pom.xml delete mode 100644 functions/common/mqtt-common/src/main/java/org/springframework/cloud/fn/common/mqtt/MqttConfiguration.java delete mode 100644 functions/common/mqtt-common/src/main/java/org/springframework/cloud/fn/common/mqtt/MqttProperties.java delete mode 100644 functions/common/pom.xml delete mode 100644 functions/common/redis-common/pom.xml delete mode 100644 functions/common/redis-common/src/main/resources/application.properties delete mode 100644 functions/common/redis-common/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisTestContainerSupport.java delete mode 100644 functions/common/tcp-common/pom.xml delete mode 100644 functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/EncoderDecoderFactoryBean.java delete mode 100644 functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/Encoding.java delete mode 100644 functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/TcpConnectionFactoryProperties.java delete mode 100644 functions/common/tensorflow-common/README.adoc delete mode 100644 functions/common/tensorflow-common/pom.xml delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AbstractGraphRunner.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AutoCloseableSession.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/Functions.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphDefinition.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunner.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunnerMemory.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/ProtoBufGraphDefinition.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/GraphicsUtils.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/JsonMapperFunction.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/TensorFlowService.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/AutoCloseables.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/CachedModelExtractor.java delete mode 100644 functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/ModelExtractor.java delete mode 100644 functions/common/tensorflow-common/src/main/resources/images/programming_model.png delete mode 100644 functions/common/tensorflow-common/src/main/resources/images/tf_pipeline.png delete mode 100644 functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/EnrichFromMemory.java delete mode 100644 functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/FunctionComposition.java delete mode 100644 functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/FunctionCompositionMultipleInputsOutputs.java delete mode 100644 functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/ReleaseTensorParameters.java delete mode 100644 functions/common/twitter-common/pom.xml delete mode 100644 functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/Cursor.java delete mode 100644 functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionConfiguration.java delete mode 100644 functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionProperties.java delete mode 100644 functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/util/TwitterTestUtils.java delete mode 100644 functions/common/xmpp-common/pom.xml delete mode 100644 functions/common/xmpp-common/src/main/java/org/springframework/cloud/fn/common/xmpp/XmppConnectionFactoryConfiguration.java delete mode 100644 functions/common/xmpp-common/src/main/java/org/springframework/cloud/fn/common/xmpp/XmppConnectionFactoryProperties.java delete mode 100644 functions/consumer/analytics-consumer/README.adoc delete mode 100644 functions/consumer/analytics-consumer/pom.xml delete mode 100644 functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerConfiguration.java delete mode 100644 functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerProperties.java delete mode 100644 functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerParentTest.java delete mode 100644 functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/CountWithAmountTest.java delete mode 100644 functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/EmptyTagsTests.java delete mode 100644 functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/ExpressionCounterNameTests.java delete mode 100644 functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/FixedTagsTests.java delete mode 100644 functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/GaugeWithAmountTest.java delete mode 100644 functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/LiteralTagExpressionsTests.java delete mode 100644 functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/NullTagsTests.java delete mode 100644 functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/StockExchangeAnalyticsTests.java delete mode 100644 functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/demo/StockExchangeAnalyticsExample.java delete mode 100644 functions/consumer/analytics-consumer/src/test/resources/data/stock_appl.json delete mode 100644 functions/consumer/analytics-consumer/src/test/resources/data/stock_vmw.json delete mode 100644 functions/consumer/cassandra-consumer/README.adoc delete mode 100644 functions/consumer/cassandra-consumer/pom.xml delete mode 100644 functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerConfiguration.java delete mode 100644 functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerProperties.java delete mode 100644 functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/CassandraAppClusterConfiguration.java delete mode 100644 functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/CassandraClusterProperties.java delete mode 100644 functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/TrustAllSSLContextFactory.java delete mode 100644 functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/ColumnNameExtractor.java delete mode 100644 functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/InsertQueryColumnNameExtractor.java delete mode 100644 functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/UpdateQueryColumnNameExtractor.java delete mode 100644 functions/consumer/cassandra-consumer/src/main/resources/application.properties delete mode 100644 functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerApplicationTests.java delete mode 100644 functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraContainerTest.java delete mode 100644 functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraEntityInsertTests.java delete mode 100644 functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestInsertTests.java delete mode 100644 functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestNamedParamsTests.java delete mode 100644 functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestUpdateTests.java delete mode 100644 functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/domain/Book.java delete mode 100644 functions/consumer/cassandra-consumer/src/test/resources/init-db.cql delete mode 100644 functions/consumer/elasticsearch-consumer/README.adoc delete mode 100644 functions/consumer/elasticsearch-consumer/pom.xml delete mode 100644 functions/consumer/elasticsearch-consumer/src/main/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerConfiguration.java delete mode 100644 functions/consumer/elasticsearch-consumer/src/main/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerProperties.java delete mode 100644 functions/consumer/elasticsearch-consumer/src/test/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerApplicationTests.java delete mode 100644 functions/consumer/elasticsearch-consumer/src/test/resources/logback.xml delete mode 100644 functions/consumer/file-consumer/README.adoc delete mode 100644 functions/consumer/file-consumer/pom.xml delete mode 100644 functions/consumer/file-consumer/src/main/java/org/springframework/cloud/fn/consumer/file/FileConsumerConfiguration.java delete mode 100644 functions/consumer/file-consumer/src/main/java/org/springframework/cloud/fn/consumer/file/FileConsumerProperties.java delete mode 100644 functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/AbstractFileConsumerTests.java delete mode 100644 functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/BinaryFileTests.java delete mode 100644 functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/ExpressionTests.java delete mode 100644 functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/TextFileTests.java delete mode 100644 functions/consumer/ftp-consumer/README.adoc delete mode 100644 functions/consumer/ftp-consumer/pom.xml delete mode 100644 functions/consumer/ftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerConfiguration.java delete mode 100644 functions/consumer/ftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerProperties.java delete mode 100644 functions/consumer/ftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerPropertiesTests.java delete mode 100644 functions/consumer/ftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerTests.java delete mode 100644 functions/consumer/jdbc-consumer/README.adoc delete mode 100644 functions/consumer/jdbc-consumer/pom.xml delete mode 100644 functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/DefaultInitializationScriptResource.java delete mode 100644 functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerConfiguration.java delete mode 100644 functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerProperties.java delete mode 100644 functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/ShorthandMapConverter.java delete mode 100644 functions/consumer/jdbc-consumer/src/main/resources/application.properties delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/BatchInsertTimeoutTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/DataReceivedAsByteArrayTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ExplicitTableCreationTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/HeaderInsertTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ImplicitTableCreationTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerApplicationTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/JsonStringPayloadInsertTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/MapPayloadInsertTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleBatchInsertTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleInsertTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleMappingTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SpELTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/UnqualifiableColumnExpressionTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/VaryingInsertTests.java delete mode 100644 functions/consumer/jdbc-consumer/src/test/resources/explicit-script.sql delete mode 100644 functions/consumer/jdbc-consumer/src/test/resources/schema.sql delete mode 100644 functions/consumer/kafka-publisher/README.adoc delete mode 100644 functions/consumer/kafka-publisher/pom.xml delete mode 100644 functions/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfiguration.java delete mode 100644 functions/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherProperties.java delete mode 100644 functions/consumer/kafka-publisher/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/consumer/kafka-publisher/src/test/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfigurationTests.java delete mode 100644 functions/consumer/log-consumer/README.adoc delete mode 100644 functions/consumer/log-consumer/pom.xml delete mode 100644 functions/consumer/log-consumer/src/main/java/org/springframework/cloud/fn/consumer/log/LogConsumerConfiguration.java delete mode 100644 functions/consumer/log-consumer/src/main/java/org/springframework/cloud/fn/consumer/log/LogConsumerProperties.java delete mode 100644 functions/consumer/log-consumer/src/test/java/org/springframework/cloud/fn/consumer/log/LogConsumerApplicationTests.java delete mode 100644 functions/consumer/mongodb-consumer/README.adoc delete mode 100644 functions/consumer/mongodb-consumer/pom.xml delete mode 100644 functions/consumer/mongodb-consumer/src/main/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerConfiguration.java delete mode 100644 functions/consumer/mongodb-consumer/src/main/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerProperties.java delete mode 100644 functions/consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerApplicationTests.java delete mode 100644 functions/consumer/mongodb-consumer/src/test/resources/logback-test.xml delete mode 100644 functions/consumer/mqtt-consumer/README.adoc delete mode 100644 functions/consumer/mqtt-consumer/pom.xml delete mode 100644 functions/consumer/mqtt-consumer/src/main/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerConfiguration.java delete mode 100644 functions/consumer/mqtt-consumer/src/main/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerProperties.java delete mode 100644 functions/consumer/mqtt-consumer/src/test/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerTests.java delete mode 100644 functions/consumer/mqtt-consumer/src/test/resources/logback.xml delete mode 100644 functions/consumer/pom.xml delete mode 100644 functions/consumer/rabbit-consumer/README.adoc delete mode 100644 functions/consumer/rabbit-consumer/pom.xml delete mode 100644 functions/consumer/rabbit-consumer/src/main/java/org/springframework/cloud/fn/consumer/rabbit/RabbitConsumerConfiguration.java delete mode 100644 functions/consumer/rabbit-consumer/src/main/java/org/springframework/cloud/fn/consumer/rabbit/RabbitConsumerProperties.java delete mode 100644 functions/consumer/redis-consumer/README.adoc delete mode 100644 functions/consumer/redis-consumer/pom.xml delete mode 100644 functions/consumer/redis-consumer/src/main/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerConfiguration.java delete mode 100644 functions/consumer/redis-consumer/src/main/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerProperties.java delete mode 100644 functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/AbstractRedisConsumerTests.java delete mode 100644 functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerKeyTests.java delete mode 100644 functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerQueueTests.java delete mode 100644 functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerTopicTests.java delete mode 100644 functions/consumer/redis-consumer/src/test/resources/application.properties delete mode 100644 functions/consumer/rsocket-consumer/README.adoc delete mode 100644 functions/consumer/rsocket-consumer/pom.xml delete mode 100644 functions/consumer/rsocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerConfiguration.java delete mode 100644 functions/consumer/rsocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerProperties.java delete mode 100644 functions/consumer/rsocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerTests.java delete mode 100644 functions/consumer/s3-consumer/README.adoc delete mode 100644 functions/consumer/s3-consumer/pom.xml delete mode 100644 functions/consumer/s3-consumer/src/main/java/org/springframework/cloud/fn/consumer/s3/AwsS3ConsumerConfiguration.java delete mode 100644 functions/consumer/s3-consumer/src/main/java/org/springframework/cloud/fn/consumer/s3/AwsS3ConsumerProperties.java delete mode 100644 functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java delete mode 100644 functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadFileTests.java delete mode 100644 functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadInputStreamTests.java delete mode 100644 functions/consumer/sftp-consumer/README.adoc delete mode 100644 functions/consumer/sftp-consumer/pom.xml delete mode 100644 functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerConfiguration.java delete mode 100644 functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerProperties.java delete mode 100644 functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerSessionFactoryConfiguration.java delete mode 100644 functions/consumer/sftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerPropertiesTests.java delete mode 100644 functions/consumer/sftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerTests.java delete mode 100644 functions/consumer/tcp-consumer/README.adoc delete mode 100644 functions/consumer/tcp-consumer/pom.xml delete mode 100644 functions/consumer/tcp-consumer/src/main/java/org/springframework/cloud/fn/consumer/tcp/TcpConsumerConfiguration.java delete mode 100644 functions/consumer/tcp-consumer/src/main/java/org/springframework/cloud/fn/consumer/tcp/TcpConsumerProperties.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/AbstractTcpConsumerTests.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/CRLFTests.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L1Tests.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L2Tests.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L4Tests.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/LFTests.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/NULLTests.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/NotNioTests.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/PropertiesPopulatedTests.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/RAWTests.java delete mode 100644 functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/STXETXTests.java delete mode 100644 functions/consumer/twitter-consumer/README.adoc delete mode 100644 functions/consumer/twitter-consumer/pom.xml delete mode 100644 functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/friendship/TwitterFriendshipsConsumerConfiguration.java delete mode 100644 functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/friendship/TwitterFriendshipsConsumerProperties.java delete mode 100644 functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/message/TwitterMessageConsumerConfiguration.java delete mode 100644 functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/message/TwitterMessageConsumerProperties.java delete mode 100644 functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateConsumerConfiguration.java delete mode 100644 functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateConsumerProperties.java delete mode 100644 functions/consumer/twitter-consumer/src/test/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateSinkFunctionConfigurationTests.java delete mode 100644 functions/consumer/wavefront-consumer/README.adoc delete mode 100644 functions/consumer/wavefront-consumer/pom.xml delete mode 100644 functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerConfiguration.java delete mode 100644 functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerProperties.java delete mode 100644 functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontFormat.java delete mode 100644 functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/DirectConnectionWavefrontService.java delete mode 100644 functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/ProxyConnectionWavefrontService.java delete mode 100644 functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/WavefrontService.java delete mode 100644 functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerConfigurationTest.java delete mode 100644 functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerPropertiesTest.java delete mode 100644 functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontFormatTest.java delete mode 100644 functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/DirectConnectionWavefrontServiceTest.java delete mode 100644 functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/ProxyConnectionWavefrontServiceTest.java delete mode 100644 functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/WavefrontServiceConditionTest.java delete mode 100644 functions/consumer/websocket-consumer/README.adoc delete mode 100644 functions/consumer/websocket-consumer/pom.xml delete mode 100644 functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerConfiguration.java delete mode 100644 functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerProperties.java delete mode 100644 functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServer.java delete mode 100644 functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServerHandler.java delete mode 100644 functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServerInitializer.java delete mode 100644 functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/actuator/WebsocketConsumerTraceEndpoint.java delete mode 100644 functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/trace/InMemoryTraceRepository.java delete mode 100644 functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/trace/Trace.java delete mode 100644 functions/consumer/websocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerTests.java delete mode 100644 functions/consumer/xmpp-consumer/README.adoc delete mode 100644 functions/consumer/xmpp-consumer/pom.xml delete mode 100644 functions/consumer/xmpp-consumer/src/main/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfiguration.java delete mode 100644 functions/consumer/xmpp-consumer/src/main/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerProperties.java delete mode 100644 functions/consumer/xmpp-consumer/src/test/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfigurationTests.java delete mode 100644 functions/consumer/zeromq-consumer/README.adoc delete mode 100644 functions/consumer/zeromq-consumer/pom.xml delete mode 100644 functions/consumer/zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfiguration.java delete mode 100644 functions/consumer/zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerProperties.java delete mode 100644 functions/consumer/zeromq-consumer/src/test/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfigurationTests.java delete mode 100644 functions/function-dependencies/pom.xml delete mode 100644 functions/function/aggregator-function/README.adoc delete mode 100644 functions/function/aggregator-function/pom.xml delete mode 100644 functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/AggregatorFunctionConfiguration.java delete mode 100644 functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/AggregatorFunctionProperties.java delete mode 100644 functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/ExcludeStoresAutoConfigurationEnvironmentPostProcessor.java delete mode 100644 functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/MessageStoreConfiguration.java delete mode 100644 functions/function/aggregator-function/src/main/resources/META-INF/spring.factories delete mode 100644 functions/function/aggregator-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/AbstractAggregatorFunctionTests.java delete mode 100644 functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/CustomPropsAndMongoMessageStoreAggregatorTests.java delete mode 100644 functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/DefaultAggregatorTests.java delete mode 100644 functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/JdbcMessageStoreAggregatorTests.java delete mode 100644 functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/RedisMessageStoreAggregatorTests.java delete mode 100644 functions/function/filter-function/README.adoc delete mode 100644 functions/function/filter-function/pom.xml delete mode 100644 functions/function/filter-function/src/main/java/org/springframework/cloud/fn/filter/FilterFunctionConfiguration.java delete mode 100644 functions/function/filter-function/src/main/java/org/springframework/cloud/fn/filter/FilterFunctionProperties.java delete mode 100644 functions/function/filter-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/function/filter-function/src/test/java/org/springframework/cloud/fn/filter/FilterFunctionApplicationTests.java delete mode 100644 functions/function/header-enricher-function/README.adoc delete mode 100644 functions/function/header-enricher-function/pom.xml delete mode 100644 functions/function/header-enricher-function/src/main/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionConfiguration.java delete mode 100644 functions/function/header-enricher-function/src/main/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionProperties.java delete mode 100644 functions/function/header-enricher-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/function/header-enricher-function/src/test/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionApplicationTests.java delete mode 100644 functions/function/header-filter-function/README.adoc delete mode 100644 functions/function/header-filter-function/pom.xml delete mode 100644 functions/function/header-filter-function/src/main/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionConfiguration.java delete mode 100644 functions/function/header-filter-function/src/main/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionProperties.java delete mode 100644 functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionApplicationDeleteAllTests.java delete mode 100644 functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionApplicationTests.java delete mode 100644 functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderUtils.java delete mode 100644 functions/function/header-filter-function/src/test/resources/test.properties delete mode 100644 functions/function/http-request-function/README.adoc delete mode 100644 functions/function/http-request-function/pom.xml delete mode 100644 functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionConfiguration.java delete mode 100644 functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionProperties.java delete mode 100644 functions/function/http-request-function/src/test/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionTestApplicationTests.java delete mode 100644 functions/function/image-recognition-function/README.adoc delete mode 100644 functions/function/image-recognition-function/pom.xml delete mode 100644 functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/ImageRecognition.java delete mode 100644 functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionAugmenter.java delete mode 100644 functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/RecognitionResponse.java delete mode 100644 functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/util/ImageNetReadableNamesWriter.java delete mode 100644 functions/function/image-recognition-function/src/main/resources/images/image-augmented.jpg delete mode 100644 functions/function/image-recognition-function/src/main/resources/images/image-recognition-panda-augmented.jpg delete mode 100644 functions/function/image-recognition-function/src/main/resources/labels/inception_labels.txt delete mode 100644 functions/function/image-recognition-function/src/main/resources/labels/mobilenet_labels.txt delete mode 100644 functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionExample.java delete mode 100644 functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionExample2.java delete mode 100644 functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/SavedModelTest.java delete mode 100644 functions/function/image-recognition-function/src/test/resources/images/giant_panda_in_beijing_zoo_1.jpg delete mode 100644 functions/function/image-recognition-function/src/test/resources/images/panda.jpeg delete mode 100644 functions/function/object-detection-function/README.adoc delete mode 100644 functions/function/object-detection-function/pom.xml delete mode 100644 functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionImageAugmenter.java delete mode 100644 functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputAdapter.java delete mode 100644 functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputConverter.java delete mode 100644 functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionOutputConverter.java delete mode 100644 functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionService.java delete mode 100644 functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionService2.java delete mode 100644 functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/domain/ObjectDetection.java delete mode 100644 functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/protos/StringIntLabelMapOuterClass.java delete mode 100644 functions/function/object-detection-function/src/main/proto/example.proto__ delete mode 100644 functions/function/object-detection-function/src/main/proto/feature.proto__ delete mode 100644 functions/function/object-detection-function/src/main/proto/string_int_label_map.proto delete mode 100644 functions/function/object-detection-function/src/main/resources/images/object-detection-augmented.jpg delete mode 100644 functions/function/object-detection-function/src/main/resources/images/object-detection-segmentation-augmented.jpg delete mode 100644 functions/function/object-detection-function/src/main/resources/images/object-detection.jpg delete mode 100644 functions/function/object-detection-function/src/main/resources/images/object_detection_1.jpg delete mode 100644 functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/ExampleInstanceSegmentation.java delete mode 100644 functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/ExampleObjectDetection.java delete mode 100644 functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/SimpleExample.java delete mode 100644 functions/function/payload-converter-function/pom.xml delete mode 100644 functions/function/payload-converter-function/src/main/java/functions/ByteArrayTextToString.java delete mode 100644 functions/function/payload-converter-function/src/main/java/functions/JsonBytesToMap.java delete mode 100644 functions/function/payload-converter-function/src/test/java/functions/ByteArrayTextToStringTests.java delete mode 100644 functions/function/pom.xml delete mode 100644 functions/function/semantic-segmentation-function/README.adoc delete mode 100644 functions/function/semantic-segmentation-function/pom.xml delete mode 100644 functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/NativeImageUtils.java delete mode 100644 functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/SegmentationColorMap.java delete mode 100644 functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/SemanticSegmentation.java delete mode 100644 functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/attic/SemanticSegmentationUtils.java delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/colormap/ade20k_colormap.json delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/colormap/black_white_colormap.json delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/colormap/citymap_colormap.json delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/colormap/mapillary_colormap.json delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/images/ADE20K-all-small.png delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/images/VikiMaxiAdi-all.png delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/images/VikiMaxiAdi.jpg delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/images/amsterdam-cityscape1.jpg delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/images/cityscape-all-small.png delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/images/giant_panda_in_beijing_zoo_1.jpg delete mode 100644 functions/function/semantic-segmentation-function/src/main/resources/images/interior.jpg delete mode 100644 functions/function/spel-function/README.adoc delete mode 100644 functions/function/spel-function/pom.xml delete mode 100644 functions/function/spel-function/src/main/java/org/springframework/cloud/fn/spel/SpelFunctionConfiguration.java delete mode 100644 functions/function/spel-function/src/main/java/org/springframework/cloud/fn/spel/SpelFunctionProperties.java delete mode 100644 functions/function/spel-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/function/spel-function/src/test/java/org/springframework/cloud/fn/spel/SpelFunctionApplicationTests.java delete mode 100644 functions/function/splitter-function/README.adoc delete mode 100644 functions/function/splitter-function/pom.xml delete mode 100644 functions/function/splitter-function/src/main/java/org/springframework/cloud/fn/splitter/SplitterFunctionConfiguration.java delete mode 100644 functions/function/splitter-function/src/main/java/org/springframework/cloud/fn/splitter/SplitterFunctionProperties.java delete mode 100644 functions/function/splitter-function/src/test/java/org/springframework/cloud/fn/splitter/SplitterFunctionApplicationTests.java delete mode 100644 functions/function/task-launch-request-function/README.adoc delete mode 100644 functions/function/task-launch-request-function/pom.xml delete mode 100644 functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/CommandLineArgumentsMessageMapper.java delete mode 100644 functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParser.java delete mode 100644 functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequest.java delete mode 100644 functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunction.java delete mode 100644 functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionConfiguration.java delete mode 100644 functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionProperties.java delete mode 100644 functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestMessageProcessor.java delete mode 100644 functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestSupplier.java delete mode 100644 functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskNameMessageMapper.java delete mode 100644 functions/function/task-launch-request-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParserTests.java delete mode 100644 functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionApplicationTests.java delete mode 100644 functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionPropertiesTests.java delete mode 100644 functions/function/twitter-function/README.adoc delete mode 100644 functions/function/twitter-function/pom.xml delete mode 100644 functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionConfiguration.java delete mode 100644 functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionProperties.java delete mode 100644 functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionConfiguration.java delete mode 100644 functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionProperties.java delete mode 100644 functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionConfiguration.java delete mode 100644 functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionProperties.java delete mode 100644 functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionTest.java delete mode 100644 functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionTests.java delete mode 100644 functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionTests.java delete mode 100644 functions/function/twitter-function/src/test/resources/logback.xml delete mode 100644 functions/function/twitter-function/src/test/resources/response/lookup_users_id.json delete mode 100644 functions/function/twitter-function/src/test/resources/response/search_places_amsterdam.json delete mode 100644 functions/function/twitter-function/src/test/resources/response/search_users.json delete mode 100644 functions/function/twitter-function/src/test/resources/response/trends.json delete mode 100644 functions/pom.xml delete mode 100644 functions/spring-functions-parent/pom.xml delete mode 100644 functions/supplier/debezium-supplier/pom.xml delete mode 100644 functions/supplier/debezium-supplier/src/main/java/org/springframework/cloud/fn/supplier/debezium/DebeziumReactiveConsumerConfiguration.java delete mode 100644 functions/supplier/debezium-supplier/src/main/java/org/springframework/cloud/fn/supplier/debezium/DebeziumSupplierProperties.java delete mode 100644 functions/supplier/debezium-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumReactiveConsumerConfigurationTests.java delete mode 100644 functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumSupplierIntegrationTest.java delete mode 100644 functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/TestJdbcTemplateConfiguration.java delete mode 100644 functions/supplier/debezium-supplier/src/test/resources/logback-test.xml delete mode 100644 functions/supplier/file-supplier/README.adoc delete mode 100644 functions/supplier/file-supplier/pom.xml delete mode 100644 functions/supplier/file-supplier/src/main/java/org/springframework/cloud/fn/supplier/file/FileSupplierConfiguration.java delete mode 100644 functions/supplier/file-supplier/src/main/java/org/springframework/cloud/fn/supplier/file/FileSupplierProperties.java delete mode 100644 functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/AbstractFileSupplierTests.java delete mode 100644 functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/DefaultFileSupplierTests.java delete mode 100644 functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FileModeRefTests.java delete mode 100644 functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FilePayloadWithPatternTests.java delete mode 100644 functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FilePayloadWithRegexTests.java delete mode 100644 functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/LinesAndMarkersAsJsonPayloadTests.java delete mode 100644 functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/LinesPayloadTests.java delete mode 100644 functions/supplier/ftp-supplier/README.adoc delete mode 100644 functions/supplier/ftp-supplier/pom.xml delete mode 100644 functions/supplier/ftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierConfiguration.java delete mode 100644 functions/supplier/ftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierProperties.java delete mode 100644 functions/supplier/ftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierPropertiesTests.java delete mode 100644 functions/supplier/ftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierTests.java delete mode 100644 functions/supplier/http-supplier/README.adoc delete mode 100644 functions/supplier/http-supplier/pom.xml delete mode 100644 functions/supplier/http-supplier/src/main/java/org/springframework/cloud/fn/supplier/http/HttpSupplierConfiguration.java delete mode 100644 functions/supplier/http-supplier/src/main/java/org/springframework/cloud/fn/supplier/http/HttpSupplierProperties.java delete mode 100644 functions/supplier/http-supplier/src/main/resources/application.properties delete mode 100644 functions/supplier/http-supplier/src/test/java/org/springframework/cloud/fn/supplier/http/HttpSupplierApplicationTests.java delete mode 100644 functions/supplier/http-supplier/src/test/resources/test.jks delete mode 100644 functions/supplier/jdbc-supplier/README.adoc delete mode 100644 functions/supplier/jdbc-supplier/pom.xml delete mode 100644 functions/supplier/jdbc-supplier/src/main/java/org/springframework/cloud/fn/supplier/jdbc/JdbcSupplierConfiguration.java delete mode 100644 functions/supplier/jdbc-supplier/src/main/java/org/springframework/cloud/fn/supplier/jdbc/JdbcSupplierProperties.java delete mode 100644 functions/supplier/jdbc-supplier/src/main/resources/application.properties delete mode 100644 functions/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/DefaultJdbcSupplierTests.java delete mode 100644 functions/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/NonSplitJdbcSupplierTests.java delete mode 100644 functions/supplier/jdbc-supplier/src/test/resources/schema.sql delete mode 100644 functions/supplier/jms-supplier/README.adoc delete mode 100644 functions/supplier/jms-supplier/pom.xml delete mode 100644 functions/supplier/jms-supplier/src/main/java/org/springframework/cloud/fn/supplier/jms/JmsSupplierConfiguration.java delete mode 100644 functions/supplier/jms-supplier/src/main/java/org/springframework/cloud/fn/supplier/jms/JmsSupplierProperties.java delete mode 100644 functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/AbstractJmsSupplierTests.java delete mode 100644 functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated1Tests.java delete mode 100644 functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated2Tests.java delete mode 100644 functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated3Tests.java delete mode 100644 functions/supplier/kafka-supplier/README.adoc delete mode 100644 functions/supplier/kafka-supplier/pom.xml delete mode 100644 functions/supplier/kafka-supplier/src/main/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierConfiguration.java delete mode 100644 functions/supplier/kafka-supplier/src/main/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierProperties.java delete mode 100644 functions/supplier/kafka-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 functions/supplier/kafka-supplier/src/test/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierTests.java delete mode 100644 functions/supplier/mail-supplier/README.adoc delete mode 100644 functions/supplier/mail-supplier/pom.xml delete mode 100644 functions/supplier/mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierConfiguration.java delete mode 100644 functions/supplier/mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierProperties.java delete mode 100644 functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/AbstractMailSupplierTests.java delete mode 100644 functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapFailTests.java delete mode 100644 functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapIdleFailTests.java delete mode 100644 functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapIdlePassTests.java delete mode 100644 functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapPassTests.java delete mode 100644 functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/Pop3FailTests.java delete mode 100644 functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/Pop3PassTests.java delete mode 100644 functions/supplier/mongodb-supplier/README.adoc delete mode 100644 functions/supplier/mongodb-supplier/pom.xml delete mode 100644 functions/supplier/mongodb-supplier/src/main/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierConfiguration.java delete mode 100644 functions/supplier/mongodb-supplier/src/main/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierProperties.java delete mode 100644 functions/supplier/mongodb-supplier/src/main/resources/application.properties delete mode 100644 functions/supplier/mongodb-supplier/src/test/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierApplicationTests.java delete mode 100644 functions/supplier/mqtt-supplier/README.adoc delete mode 100644 functions/supplier/mqtt-supplier/pom.xml delete mode 100644 functions/supplier/mqtt-supplier/src/main/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierConfiguration.java delete mode 100644 functions/supplier/mqtt-supplier/src/main/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierProperties.java delete mode 100644 functions/supplier/mqtt-supplier/src/test/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierTests.java delete mode 100644 functions/supplier/mqtt-supplier/src/test/resources/logback.xml delete mode 100644 functions/supplier/pom.xml delete mode 100644 functions/supplier/rabbit-supplier/README.adoc delete mode 100644 functions/supplier/rabbit-supplier/pom.xml delete mode 100644 functions/supplier/rabbit-supplier/src/main/java/org/springframework/cloud/fn/supplier/rabbit/RabbitSupplierConfiguration.java delete mode 100644 functions/supplier/rabbit-supplier/src/main/java/org/springframework/cloud/fn/supplier/rabbit/RabbitSupplierProperties.java delete mode 100644 functions/supplier/s3-supplier/README.adoc delete mode 100644 functions/supplier/s3-supplier/pom.xml delete mode 100644 functions/supplier/s3-supplier/src/main/java/org/springframework/cloud/fn/supplier/s3/AwsS3SupplierConfiguration.java delete mode 100644 functions/supplier/s3-supplier/src/main/java/org/springframework/cloud/fn/supplier/s3/AwsS3SupplierProperties.java delete mode 100644 functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AbstractAwsS3SupplierMockTests.java delete mode 100644 functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3FilesTransferredTests.java delete mode 100644 functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3LinesTransferredTests.java delete mode 100644 functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3ListOnlyTests.java delete mode 100644 functions/supplier/sftp-supplier/README.adoc delete mode 100644 functions/supplier/sftp-supplier/pom.xml delete mode 100644 functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierConfiguration.java delete mode 100644 functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierFactoryConfiguration.java delete mode 100644 functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierProperties.java delete mode 100644 functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierRotator.java delete mode 100644 functions/supplier/sftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierApplicationTests.java delete mode 100644 functions/supplier/sftp-supplier/src/test/resources/logback.xml delete mode 100644 functions/supplier/syslog-supplier/README.adoc delete mode 100644 functions/supplier/syslog-supplier/pom.xml delete mode 100644 functions/supplier/syslog-supplier/src/main/java/org/springframework/cloud/fn/supplier/syslog/SyslogSupplierConfiguration.java delete mode 100644 functions/supplier/syslog-supplier/src/main/java/org/springframework/cloud/fn/supplier/syslog/SyslogSupplierProperties.java delete mode 100644 functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/AbstractSyslogSupplierTests.java delete mode 100644 functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/NotNioTests.java delete mode 100644 functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/PropertiesPopulatedTests.java delete mode 100644 functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Tcp3164Tests.java delete mode 100644 functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Tcp5424Tests.java delete mode 100644 functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/TcpAndUdp3164Tests.java delete mode 100644 functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/TcpAndUdp5424Tests.java delete mode 100644 functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Udp3164Tests.java delete mode 100644 functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Udp5424Tests.java delete mode 100644 functions/supplier/tcp-supplier/README.adoc delete mode 100644 functions/supplier/tcp-supplier/pom.xml delete mode 100644 functions/supplier/tcp-supplier/src/main/java/org/springframework/cloud/fn/supplier/tcp/TcpSupplierConfiguration.java delete mode 100644 functions/supplier/tcp-supplier/src/main/java/org/springframework/cloud/fn/supplier/tcp/TcpSupplierProperties.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/AbstractTcpSupplierTests.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/CRLFTests.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L1Tests.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L2Tests.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L4Tests.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/LFTests.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/NULLTests.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/NotNioTests.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/PropertiesPopulatedTests.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/RAWTests.java delete mode 100644 functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/STXETXTests.java delete mode 100644 functions/supplier/time-supplier/README.adoc delete mode 100644 functions/supplier/time-supplier/pom.xml delete mode 100644 functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/DateFormat.java delete mode 100644 functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierConfiguration.java delete mode 100644 functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierProperties.java delete mode 100644 functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/SimpleTimeSupplierTests.java delete mode 100644 functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/TimeSupplierApplicationTests.java delete mode 100644 functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/VariationToSimpleTests.java delete mode 100644 functions/supplier/twitter-supplier/README.adoc delete mode 100644 functions/supplier/twitter-supplier/pom.xml delete mode 100644 functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/friendships/TwitterFriendshipsSupplierConfiguration.java delete mode 100644 functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/friendships/TwitterFriendshipsSupplierProperties.java delete mode 100644 functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/message/TwitterMessageSupplierConfiguration.java delete mode 100644 functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/message/TwitterMessageSupplierProperties.java delete mode 100644 functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/SearchPagination.java delete mode 100644 functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/TwitterSearchSupplierConfiguration.java delete mode 100644 functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/TwitterSearchSupplierProperties.java delete mode 100644 functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierConfiguration.java delete mode 100644 functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierProperties.java delete mode 100644 functions/supplier/twitter-supplier/src/test/java/org/springframework/cloud/fn/supplier/twitter/status/search/SearchPaginationTests.java delete mode 100644 functions/supplier/twitter-supplier/src/test/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierTests.java delete mode 100644 functions/supplier/twitter-supplier/src/test/resources/logback.xml delete mode 100644 functions/supplier/twitter-supplier/src/test/resources/response/stream_test_1.json delete mode 100644 functions/supplier/websocket-supplier/README.adoc delete mode 100644 functions/supplier/websocket-supplier/pom.xml delete mode 100644 functions/supplier/websocket-supplier/src/main/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierConfiguration.java delete mode 100644 functions/supplier/websocket-supplier/src/main/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierProperties.java delete mode 100644 functions/supplier/websocket-supplier/src/test/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierTests.java delete mode 100644 functions/supplier/xmpp-supplier/README.adoc delete mode 100644 functions/supplier/xmpp-supplier/pom.xml delete mode 100644 functions/supplier/xmpp-supplier/src/main/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierConfiguration.java delete mode 100644 functions/supplier/xmpp-supplier/src/main/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierProperties.java delete mode 100644 functions/supplier/xmpp-supplier/src/test/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierConfigurationTests.java delete mode 100644 functions/supplier/zeromq-supplier/README.adoc delete mode 100644 functions/supplier/zeromq-supplier/pom.xml delete mode 100644 functions/supplier/zeromq-supplier/src/main/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierConfiguration.java delete mode 100644 functions/supplier/zeromq-supplier/src/main/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierProperties.java delete mode 100644 functions/supplier/zeromq-supplier/src/test/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierConfigurationTests.java diff --git a/README.adoc b/README.adoc index 852bc0b9..3649986e 100644 --- a/README.adoc +++ b/README.adoc @@ -2,114 +2,20 @@ In this repository, you will find a collection of components that can meet various data integration use cases and requirements. -The repository's primary focus is to provide a set of standalone Java functions that can be useful in the end-user applications as-is. - -Besides, this repository builds on the Java functions to generate standalone Spring Cloud Stream applications that can run against Spring Cloud Stream's RabbitMQ or Apache Kafka binder implementations. +This repository builds on top of the https://github.com/spring-cloud/spring-functions-catalog[Spring Functions Catalog] and generates standalone Spring Cloud Stream applications that can run against Spring Cloud Stream's RabbitMQ or Apache Kafka binder implementations. It is also possible to extend the generator to bundle the Java functions with the other supported binder implementations. These applications can run standalone or as part of a data flow, such as the one orchestrated using Spring Cloud Data Flow. === Project Structure -The repository includes two major sections - `Functions` and `Applications`. -The former hosts the various Java functions, and the latter is for generating the standalone Spring Cloud Stream applications and hosting their related components. - The following are the various components of this repository. -* https://github.com/spring-cloud/stream-applications/tree/master/functions[Standalone Java Functions] * https://github.com/spring-cloud/stream-applications/tree/master/applications/stream-applications-core[Common Core Components for Applications] * https://github.com/spring-cloud/stream-applications/tree/master/applications[Spring Cloud Stream Applications] * https://github.com/spring-cloud/stream-applications/tree/master/stream-applications-build[Build Parent] * https://github.com/spring-cloud/stream-applications/tree/master/stream-applications-release-train[Release Train] -=== Reusable Functions - -|=== -| `java.util.Supplier` | `java.util.Function` | `java.util.Consumer` - -|link:functions/supplier/debezium-supplier/README.adoc[Debezium supplier] -|link:functions/function/aggregator-function/README.adoc[Aggregator] -|link:functions/consumer/analytics-consumer/README.adoc[Analytics] - -|link:functions/supplier/file-supplier/README.adoc[File] -|link:functions/function/filter-function/README.adoc[Filter] -|link:functions/consumer/cassandra-consumer/README.adoc[Cassandra] - -|link:functions/supplier/ftp-supplier/README.adoc[FTP] -|link:functions/function/header-enricher-function/README.adoc[Header-Enricher] -|link:functions/consumer/elasticsearch-consumer/README.adoc[Elasticsearch] - -| -|link:functions/function/header-filter-function/README.adoc[Header-Filter] -|link:functions/consumer/file-consumer/README.adoc[File] - -|link:functions/supplier/http-supplier/README.adoc[HTTP] -|link:functions/function/http-request-function/README.adoc[HTTP Request] -|link:functions/consumer/ftp-consumer/README.adoc[FTP] - -|link:functions/supplier/jdbc-supplier/README.adoc[JDBC] -|link:functions/function/image-recognition-function/README.adoc[Image Recognition(Tensorflow)] -| - -|link:functions/supplier/jms-supplier/README.adoc[JMS] -|link:functions/function/object-detection-function/README.adoc[Object Detection(Tensorflow)] -|link:functions/consumer/jdbc-consumer/README.adoc[JDBC] - -|link:functions/supplier/mail-supplier/README.adoc[Mail] -|link:functions/function/semantic-segmentation-function/README.adoc[Semantic Segmentation(Tensorflow)] -|link:functions/consumer/log-consumer/README.adoc[Log] - -|link:functions/supplier/mongodb-supplier/README.adoc[MongoDB] -|link:functions/function/spel-function/README.adoc[SpEL] -|link:functions/consumer/mongodb-consumer/README.adoc[MongoDB] - -|link:functions/supplier/mqtt-supplier/README.adoc[MQTT] - -|link:functions/function/splitter-function/README.adoc[Splitter] -|link:functions/consumer/mqtt-consumer/README.adoc[MQTT] - -|link:functions/supplier/rabbit-supplier/README.adoc[RabbitMQ] -|link:functions/function/task-launch-request-function/README.adoc[Task Launch Request] -|link:functions/consumer/rabbit-consumer/README.adoc[RabbitMQ] - -|link:functions/supplier/s3-supplier/README.adoc[AWS S3] -| -|link:functions/consumer/redis-consumer/README.adoc[Redis] - -|link:functions/supplier/sftp-supplier/README.adoc[SFTP] -| -|link:functions/consumer/rsocket-consumer/README.adoc[RSocket] - -|link:functions/supplier/syslog-supplier/README.adoc[Syslog] -| -|link:functions/consumer/s3-consumer/README.adoc[AWS S3] - -|link:functions/supplier/tcp-supplier/README.adoc[TCP] -| -|link:functions/consumer/sftp-consumer/README.adoc[SFTP] - -|link:functions/supplier/time-supplier/README.adoc[Time] -| -|link:functions/consumer/tcp-consumer/README.adoc[TCP] - -|link:functions/supplier/twitter-supplier/README.adoc[Twitter] -|link:functions/function/twitter-function/README.adoc[Twitter] -|link:functions/consumer/twitter-consumer/README.adoc[Twitter] - -|link:functions/supplier/websocket-supplier/README.adoc[Websocket] -| -|link:functions/consumer/websocket-consumer/README.adoc[Websocket] - -| -| -|link:functions/consumer/wavefront-consumer/README.adoc[Wavefront] - -|link:functions/supplier/xmpp-supplier/README.adoc[XMPP] -| -|link:functions/consumer/xmpp-consumer/README.adoc[XMPP] - -|=== - === Reusable Spring Cloud Stream Applications |=== @@ -139,11 +45,11 @@ The following are the various components of this repository. | |link:applications/source/jms-source/README.adoc[JMS] -|link:applications/processor/image-recognition-processor/README.adoc[Image Recognition(Tensorflow)] +| |link:applications/sink/jdbc-sink/README.adoc[JDBC] |link:applications/source/load-generator-source/README.adoc[Load-Generator] -|link:applications/processor/object-detection-processor/README.adoc[Object Detection(Tensorflow)] +| |link:applications/sink/log-sink/README.adoc[Log] |link:applications/source/mail-source/README.adoc[Mail] @@ -151,7 +57,7 @@ The following are the various components of this repository. |link:applications/sink/mongodb-sink/README.adoc[MongoDB] |link:applications/source/mongodb-source/README.adoc[MongoDB] -|link:applications/processor/semantic-segmentation-processor/README.adoc[Semantic Segmentation(Tensorflow)] +| |link:applications/sink/mqtt-sink/README.adoc[MQTT] |link:applications/source/mqtt-source/README.adoc[MQTT] @@ -180,7 +86,7 @@ The following are the various components of this repository. |link:applications/source/time-source/README.adoc[Time] | -|link:applications/sink/tasklauncher-sink/README.adoc[Task Launcher] +| |link:applications/source/twitter-message-source/README.adoc[Twitter Message] | @@ -253,7 +159,8 @@ You can then build the desired apps. ./build-app.sh . applications/sink/log-sink .... -NOTE: In order to disable metrics by default there needs to be application properties configured like in `default-application.properties`. The `build-app.sh` script will copy default-application.properties into src/main/resources if no application.properties,yml,yaml or json is present. +NOTE: In order to disable metrics by default there needs to be application properties configured like in `default-application.properties`. +The `build-app.sh` script will copy default-application.properties into src/main/resources if no application.properties,yml,yaml or json is present. === Additional Resources diff --git a/applications/processor/aggregator-processor/pom.xml b/applications/processor/aggregator-processor/pom.xml index 925103de..e98704e8 100644 --- a/applications/processor/aggregator-processor/pom.xml +++ b/applications/processor/aggregator-processor/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - aggregator-function + spring-aggregator-function @@ -35,13 +35,13 @@ aggregator processor ${project.version} - org.springframework.cloud.fn.aggregator.AggregatorFunctionConfiguration.class + AUTOCONFIGURATION jsonBytesToMap|aggregatorFunction org.springframework.cloud.fn - aggregator-function + spring-aggregator-function diff --git a/applications/processor/filter-processor/pom.xml b/applications/processor/filter-processor/pom.xml index 1b2f620c..53795c9a 100644 --- a/applications/processor/filter-processor/pom.xml +++ b/applications/processor/filter-processor/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - filter-function + spring-filter-function @@ -43,13 +43,13 @@ filter processor ${project.version} - org.springframework.cloud.fn.filter.FilterFunctionConfiguration.class + AUTOCONFIGURATION byteArrayTextToString|filterFunction org.springframework.cloud.fn - filter-function + spring-filter-function diff --git a/applications/processor/groovy-processor/pom.xml b/applications/processor/groovy-processor/pom.xml index c8c72fea..dd37ad15 100644 --- a/applications/processor/groovy-processor/pom.xml +++ b/applications/processor/groovy-processor/pom.xml @@ -54,7 +54,7 @@ org.springframework.cloud.fn - payload-converter-function + spring-payload-converter-function org.springframework.boot diff --git a/applications/processor/header-enricher-processor/pom.xml b/applications/processor/header-enricher-processor/pom.xml index 77e34ba3..63b21db1 100644 --- a/applications/processor/header-enricher-processor/pom.xml +++ b/applications/processor/header-enricher-processor/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - header-enricher-function + spring-header-enricher-function org.springframework.integration @@ -48,13 +48,13 @@ header-enricher processor ${project.version} - org.springframework.cloud.fn.header.enricher.HeaderEnricherFunctionConfiguration.class + AUTOCONFIGURATION headerEnricherFunction org.springframework.cloud.fn - header-enricher-function + spring-header-enricher-function diff --git a/applications/processor/header-filter-processor/pom.xml b/applications/processor/header-filter-processor/pom.xml index d36d4cd8..3a5d5e27 100644 --- a/applications/processor/header-filter-processor/pom.xml +++ b/applications/processor/header-filter-processor/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - header-filter-function + spring-header-filter-function org.springframework.integration @@ -53,13 +53,13 @@ header-filter processor ${project.version} - org.springframework.cloud.fn.header.filter.HeaderFilterFunctionConfiguration.class + AUTOCONFIGURATION headerFilterFunction org.springframework.cloud.fn - header-filter-function + spring-header-filter-function diff --git a/applications/processor/http-request-processor/README.adoc b/applications/processor/http-request-processor/README.adoc index 44a8b477..338e6b70 100644 --- a/applications/processor/http-request-processor/README.adoc +++ b/applications/processor/http-request-processor/README.adoc @@ -52,7 +52,7 @@ $$body-expression$$:: $$A SpEL expression to derive the request body from the in $$expected-response-type$$:: $$The type used to interpret the response.$$ *($$Class$$, default: `$$$$`)* $$headers-expression$$:: $$A SpEL expression used to derive the http headers map to use.$$ *($$Expression$$, default: `$$$$`)* $$http-method-expression$$:: $$A SpEL expression to derive the request method from the incoming message.$$ *($$Expression$$, default: `$$$$`)* -$$reply-expression$$:: $$A SpEL expression used to compute the final result, applied against the whole http {@link org.springframework.http.ResponseEntity}.$$ *($$Expression$$, default: `$$$$`)* +$$reply-expression$$:: $$A SpEL expression used to compute the final result, applied against the whole http {@link ResponseEntity}.$$ *($$Expression$$, default: `$$$$`)* $$timeout$$:: $$Request timeout in milliseconds.$$ *($$Long$$, default: `$$30000$$`)* $$url-expression$$:: $$A SpEL expression against incoming message to determine the URL to use.$$ *($$Expression$$, default: `$$$$`)* diff --git a/applications/processor/http-request-processor/pom.xml b/applications/processor/http-request-processor/pom.xml index bf8dfc78..9eddc9b9 100644 --- a/applications/processor/http-request-processor/pom.xml +++ b/applications/processor/http-request-processor/pom.xml @@ -21,7 +21,7 @@ org.springframework.cloud.fn - http-request-function + spring-http-request-function com.squareup.okhttp3 @@ -56,15 +56,14 @@ http-request processor ${project.version} - org.springframework.cloud.fn.http.request.HttpRequestFunctionConfiguration.class - + AUTOCONFIGURATION httpRequestFunction org.springframework.cloud.fn - http-request-function + spring-http-request-function diff --git a/applications/processor/image-recognition-processor/README.adoc b/applications/processor/image-recognition-processor/README.adoc deleted file mode 100644 index 84377609..00000000 --- a/applications/processor/image-recognition-processor/README.adoc +++ /dev/null @@ -1,56 +0,0 @@ -//tag::ref-doc[] -:image-root: https://raw.githubusercontent.com/spring-cloud-stream-app-starters/tensorflow/master/images - -= Image Recognition Processor - -A processor that uses an https://github.com/tensorflow/models/tree/master/inception[Inception model] to classify -in real-time images into different categories (e.g. labels). - -Model implements a deep https://en.wikipedia.org/wiki/Convolutional_neural_network[Convolutional Neural Network] that can achieve reasonable performance on hard visual recognition tasks -- matching or exceeding human performance in some domains like https://www.tensorflow.org/tutorials/image_recognition[image recognition]. - -The input of the model is an image as binary array. - -The output is a JSON message in this format: - -[source,json] -.... -{ - "labels" : [ - {"giant panda":0.98649305} - ] -} -.... - -Result contains the name of the recognized category (e.g. label) along with the confidence (e.g. confidence) that the image represents this category. - -If the `response-seize` is set to value higher then 1, then the result will include the top `response-seize` probable labels. For example `response-size=3` would return: - -[source,json] -.... -{ - "labels": [ - {"giant panda":0.98649305}, - {"badger":0.010562794}, - {"ice bear":0.001130851} - ] -} -.... - -== Payload - -If the incoming type is `byte[]` and the content type is set to `application/octet-stream` , then the application process the input `byte[]` image into and outputs augmented `byte[]` image payload and json header. - -== Options - -//tag::configuration-properties[] -$$image.recognition.cache-model$$:: $$cache the pre-trained tensorflow model.$$ *($$Boolean$$, default: `$$$$`)* -$$image.recognition.debug-output$$:: $$$$ *($$Boolean$$, default: `$$$$`)* -$$image.recognition.debug-output-path$$:: $$$$ *($$String$$, default: `$$$$`)* -$$image.recognition.model$$:: $$pre-trained tensorflow image recognition model. Note that the model must match the selected model type!$$ *($$String$$, default: `$$$$`)* -$$image.recognition.model-type$$:: $$Supports three different pre-trained tensorflow image recognition models: Inception, MobileNetV1 and MobileNetV2 1. Inception graph uses 'input' as input and 'output' as output. 2. MobileNetV2 pre-trained models: https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet#pretrained-models - normalized image size is always square (e.g. H=W) - graph uses 'input' as input and 'MobilenetV2/Predictions/Reshape_1' as output. 3. MobileNetV1 pre-trained models: https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md#pre-trained-models - graph uses 'input' as input and 'MobilenetV1/Predictions/Reshape_1' as output.$$ *($$ModelType$$, default: `$$$$`, possible values: `inception`,`mobilenetv1`,`mobilenetv2`)* -$$image.recognition.normalized-image-size$$:: $$Normalized image size.$$ *($$Integer$$, default: `$$$$`)* -$$image.recognition.response-size$$:: $$number of recognized images.$$ *($$Integer$$, default: `$$$$`)* -//end::configuration-properties[] - -//end::ref-doc[] diff --git a/applications/processor/image-recognition-processor/pom.xml b/applications/processor/image-recognition-processor/pom.xml deleted file mode 100644 index ca458105..00000000 --- a/applications/processor/image-recognition-processor/pom.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - 4.0.0 - image-recognition-processor - image-recognition-processor - Image recognition (tensorflow) processor apps - jar - - - org.springframework.cloud.stream.app - stream-applications-core - 5.0.0-SNAPSHOT - ../../stream-applications-core/pom.xml - - - - - org.springframework.boot - spring-boot-configuration-processor - - - org.springframework.cloud.fn - image-recognition-function - - - - - - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0 - - false - - - - org.springframework.cloud - spring-cloud-dataflow-apps-docs-plugin - - - org.springframework.cloud - spring-cloud-dataflow-apps-generator-plugin - - - image-recognition - processor - ${project.version} - org.springframework.cloud.stream.app.processor.image.recognition.ImageRecognitionProcessorConfiguration.class - imageRecognitionFunction - - - - - org.springframework.cloud.stream.app - image-recognition-processor - ${project.version} - - - - - - - - - - diff --git a/applications/processor/image-recognition-processor/src/main/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorConfiguration.java b/applications/processor/image-recognition-processor/src/main/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorConfiguration.java deleted file mode 100644 index b6a67643..00000000 --- a/applications/processor/image-recognition-processor/src/main/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorConfiguration.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.stream.app.processor.image.recognition; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.List; -import java.util.function.Function; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.tensorflow.deprecated.JsonMapperFunction; -import org.springframework.cloud.fn.image.recognition.ImageRecognition; -import org.springframework.cloud.fn.image.recognition.ImageRecognitionAugmenter; -import org.springframework.cloud.fn.image.recognition.RecognitionResponse; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; - -/** - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(ImageRecognitionProcessorProperties.class) -public class ImageRecognitionProcessorConfiguration { - - private static final Log logger = LogFactory.getLog(ImageRecognitionProcessorConfiguration.class); - - /** - * Name of the Message header containing the JSON encoded recognition response. - */ - public static final String RECOGNIZED_OBJECTS_HEADER = "recognized_objects"; - - @Bean - public Function, Message> imageRecognitionFunction(ImageRecognitionProcessorProperties properties) { - - return input -> { - // You can use file:, http: or classpath: to provide the path to the input image. - byte[] inputImage = input.getPayload(); - - try (ImageRecognition imageRecognition = createImageRecognitionFunction(properties)) { - - List recognizedObjects = - ImageRecognition.toRecognitionResponse(imageRecognition.recognizeTopK(inputImage)); - - // Draw the predicted labels on top of the input image. - byte[] augmentedImage = new ImageRecognitionAugmenter().apply(inputImage, recognizedObjects); - - String jsonRecognizedObjects = new JsonMapperFunction().apply(recognizedObjects); - - Message outMessage = MessageBuilder - .withPayload(augmentedImage) - .setHeader(RECOGNIZED_OBJECTS_HEADER, jsonRecognizedObjects) - .build(); - - if (properties.isDebugOutput()) { - try { - logger.info("recognized objects = " + jsonRecognizedObjects); - IOUtils.write(augmentedImage, new FileOutputStream(properties.getDebugOutputPath())); - } - catch (IOException e) { - logger.warn("Cloud not produce debug output", e); - } - } - - return outMessage; - } - }; - } - - private static ImageRecognition createImageRecognitionFunction(ImageRecognitionProcessorProperties properties) { - switch (properties.getModelType()) { - case inception: - return ImageRecognition.inception( - properties.getModel(), - properties.getNormalizedImageSize(), - properties.getResponseSize(), - properties.isCacheModel()); - case mobilenetv1: - return ImageRecognition.mobileNetV1( - properties.getModel(), - properties.getNormalizedImageSize(), - properties.getResponseSize(), - properties.isCacheModel()); - case mobilenetv2: - return ImageRecognition.mobileNetV2( - properties.getModel(), - properties.getNormalizedImageSize(), - properties.getResponseSize(), - properties.isCacheModel()); - default: - throw new RuntimeException("Not supported Model Type: " + properties.getModelType()); - - } - } -} diff --git a/applications/processor/image-recognition-processor/src/main/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorProperties.java b/applications/processor/image-recognition-processor/src/main/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorProperties.java deleted file mode 100644 index e59e3e9e..00000000 --- a/applications/processor/image-recognition-processor/src/main/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorProperties.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.stream.app.processor.image.recognition; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("image.recognition") -@Validated -public class ImageRecognitionProcessorProperties { - - enum ModelType { - inception, - mobilenetv1, - mobilenetv2 - } - - /** - * Supports three different pre-trained tensorflow image recognition models: Inception, MobileNetV1 and MobileNetV2 - * - * 1. Inception graph uses 'input' as input and 'output' as output. - * 2. MobileNetV2 pre-trained models: https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet#pretrained-models - * - normalized image size is always square (e.g. H=W) - * - graph uses 'input' as input and 'MobilenetV2/Predictions/Reshape_1' as output. - * 3. MobileNetV1 pre-trained models: https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md#pre-trained-models - * - graph uses 'input' as input and 'MobilenetV1/Predictions/Reshape_1' as output. - */ - private ModelType modelType = ModelType.mobilenetv2; - - /** - * pre-trained tensorflow image recognition model. Note that the model must match the selected model type! - */ - private String model = "https://storage.googleapis.com/mobilenet_v2/checkpoints/mobilenet_v2_1.4_224.tgz#mobilenet_v2_1.4_224_frozen.pb"; - - /** - * cache the pre-trained tensorflow model. - */ - private boolean cacheModel = true; - - /** - * Normalized image size. - */ - private int normalizedImageSize = 224; - - /** - * number of recognized images. - */ - private int responseSize = 5; - - private boolean debugOutput = false; - - private String debugOutputPath = "image-recognition-result.png"; - - public ModelType getModelType() { - return modelType; - } - - public void setModelType(ModelType modelType) { - this.modelType = modelType; - } - - public String getModel() { - return model; - } - - public void setModel(String model) { - this.model = model; - } - - public boolean isCacheModel() { - return cacheModel; - } - - public void setCacheModel(boolean cacheModel) { - this.cacheModel = cacheModel; - } - - public int getNormalizedImageSize() { - return normalizedImageSize; - } - - public void setNormalizedImageSize(int normalizedImageSize) { - this.normalizedImageSize = normalizedImageSize; - } - - public int getResponseSize() { - return responseSize; - } - - public void setResponseSize(int responseSize) { - this.responseSize = responseSize; - } - - public boolean isDebugOutput() { - return debugOutput; - } - - public void setDebugOutput(boolean debugOutput) { - this.debugOutput = debugOutput; - } - - public String getDebugOutputPath() { - return debugOutputPath; - } - - public void setDebugOutputPath(String debugOutputPath) { - this.debugOutputPath = debugOutputPath; - } -} diff --git a/applications/processor/image-recognition-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties b/applications/processor/image-recognition-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties deleted file mode 100644 index 4b2d310f..00000000 --- a/applications/processor/image-recognition-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties +++ /dev/null @@ -1,2 +0,0 @@ -configuration-properties.classes=\ - org.springframework.cloud.stream.app.processor.image.recognition.ImageRecognitionProcessorProperties diff --git a/applications/processor/image-recognition-processor/src/main/resources/application.yml b/applications/processor/image-recognition-processor/src/main/resources/application.yml deleted file mode 100644 index c608c20d..00000000 --- a/applications/processor/image-recognition-processor/src/main/resources/application.yml +++ /dev/null @@ -1,16 +0,0 @@ -image: - recognition: - model: https://storage.googleapis.com/mobilenet_v2/checkpoints/mobilenet_v2_1.4_224.tgz#mobilenet_v2_1.4_224_frozen.pb - modelType: mobilenetv2 - responseSize: 3 - normalizedImageSize: 224 - cacheModel: true -spring: - cloud: - function: - definition: imageRecognitionFunction -management: - defaults: - metrics: - export: - enabled: false \ No newline at end of file diff --git a/applications/processor/image-recognition-processor/src/test/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorTests.java b/applications/processor/image-recognition-processor/src/test/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorTests.java deleted file mode 100644 index 5695ed11..00000000 --- a/applications/processor/image-recognition-processor/src/test/java/org/springframework/cloud/stream/app/processor/image/recognition/ImageRecognitionProcessorTests.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.stream.app.processor.image.recognition; - -import java.io.IOException; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.Test; - -import org.springframework.boot.WebApplicationType; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; -import org.springframework.cloud.stream.binder.test.InputDestination; -import org.springframework.cloud.stream.binder.test.OutputDestination; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ -public class ImageRecognitionProcessorTests { - - private ObjectMapper objectMapper = new ObjectMapper(); - - @Test - public void testImageRecognitionProcessorMobileNetV2() throws IOException { - List> expected = deserializeAndRoundToNPlaces( - "[{\"label\":\"giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca\",\"probability\":0.962329626083374}," - + - "{\"label\":\"badger\",\"probability\":0.006058811210095882}," + - "{\"label\":\"ram, tup\",\"probability\":0.0010668420000001788}]", - 6); - - imageRecognitionProcessorMobileNetV2(verify(expected)); - } - - private void imageRecognitionProcessorMobileNetV2(Consumer> consumer) throws IOException { - try (ConfigurableApplicationContext context = new SpringApplicationBuilder( - TestChannelBinderConfiguration.getCompleteConfiguration(ImageRecognitionProcessorTestApplication.class)) - .web(WebApplicationType.NONE) - .run("--spring.cloud.function.definition=imageRecognitionFunction", - "--image.recognition.modelType=mobilenetv2", - "--image.recognition.responseSize=3", - "--image.recognition.debugOutput=true", - "--image.recognition.debugOutputPath=./target/image-recognition-mobilenetv2.png")) { - - InputDestination processorInput = context.getBean(InputDestination.class); - OutputDestination processorOutput = context.getBean(OutputDestination.class); - - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/giant_panda_in_beijing_zoo_1.jpg"); - processorInput.send(new GenericMessage<>(inputImage)); - Message sourceMessage = processorOutput.receive(10000); - consumer.accept(sourceMessage); - } - } - - @Test - public void testImageRecognitionProcessorMobileNetV1() throws IOException { - List> expected = deserializeAndRoundToNPlaces( - "[{\"label\":\"giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca\",\"probability\":0.984053909778595}," - + - "{\"label\":\"ram, tup\",\"probability\":0.0019619385711848736}," + - "{\"label\":\"Staffordshire bullterrier, Staffordshire bull terrier\",\"probability\":0.0018697341438382864}]", - 6); - - imageRecognitionProcessorMobileNetV1(verify(expected)); - } - - private void imageRecognitionProcessorMobileNetV1(Consumer> consumer) throws IOException { - try (ConfigurableApplicationContext context = new SpringApplicationBuilder( - TestChannelBinderConfiguration.getCompleteConfiguration(ImageRecognitionProcessorTestApplication.class)) - .web(WebApplicationType.NONE) - .run("--image.recognition.model=https://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224.tgz#mobilenet_v1_1.0_224_frozen.pb", - "--image.recognition.modelType=mobilenetv1", - "--image.recognition.responseSize=3", - "--image.recognition.debugOutput=true", - "--image.recognition.debugOutputPath=./target/image-recognition-mobilenetv1.png")) { - - InputDestination processorInput = context.getBean(InputDestination.class); - OutputDestination processorOutput = context.getBean(OutputDestination.class); - - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/giant_panda_in_beijing_zoo_1.jpg"); - processorInput.send(new GenericMessage<>(inputImage)); - Message sourceMessage = processorOutput.receive(10000); - consumer.accept(sourceMessage); - } - } - - @Test - public void testImageRecognitionProcessorInception() throws IOException { - List> expected = deserializeAndRoundToNPlaces( - "[{\"label\":\"giant panda\",\"probability\":0.9946685433387756}," + - "{\"label\":\"Arctic fox\",\"probability\":0.003663112409412861}," + - "{\"label\":\"ice bear\",\"probability\":3.378273395355791E-4}]", - 6); - imageRecognitionProcessorInception(verify(expected)); - } - - private void imageRecognitionProcessorInception(Consumer> consumer) throws IOException { - try (ConfigurableApplicationContext context = new SpringApplicationBuilder( - TestChannelBinderConfiguration.getCompleteConfiguration(ImageRecognitionProcessorTestApplication.class)) - .web(WebApplicationType.NONE) - .run("--image.recognition.model=https://storage.googleapis.com/scdf-tensorflow-models/image-recognition/tensorflow_inception_graph.pb", - "--image.recognition.modelType=inception", - "--image.recognition.responseSize=3", - "--image.recognition.debugOutput=true", - "--image.recognition.debugOutputPath=./target/image-recognition-inception.png")) { - - InputDestination processorInput = context.getBean(InputDestination.class); - OutputDestination processorOutput = context.getBean(OutputDestination.class); - - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/giant_panda_in_beijing_zoo_1.jpg"); - processorInput.send(new GenericMessage<>(inputImage)); - Message sourceMessage = processorOutput.receive(10000); - - consumer.accept(sourceMessage); - } - } - - private Consumer> verify(List> expected) { - return message -> { - List> actual = deserializeAndRoundToNPlaces((String) message.getHeaders() - .get(ImageRecognitionProcessorConfiguration.RECOGNIZED_OBJECTS_HEADER), 6); - assertThat(expected) - .isEqualTo(actual); - }; - } - - private List> deserializeAndRoundToNPlaces(String json, int places) { - List> result = null; - try { - result = objectMapper.readValue(json, ArrayList.class); - } - catch (JsonProcessingException e) { - throw new IllegalStateException(e.getMessage(), e); - } - - result.forEach(map -> { - if (map.containsKey("probability")) { - map.put("probability", round((double) map.get("probability"), places)); - } - }); - - return result; - - } - - private static double round(double value, int places) { - if (places < 0) { - throw new IllegalArgumentException(); - } - - BigDecimal bd = new BigDecimal(Double.toString(value)); - bd = bd.setScale(places, RoundingMode.HALF_UP); - return bd.doubleValue(); - } - - @SpringBootApplication - @Import({ ImageRecognitionProcessorConfiguration.class }) - public static class ImageRecognitionProcessorTestApplication { - } - -} diff --git a/applications/processor/image-recognition-processor/src/test/resources/images/giant_panda_in_beijing_zoo_1.jpg b/applications/processor/image-recognition-processor/src/test/resources/images/giant_panda_in_beijing_zoo_1.jpg deleted file mode 100644 index e7a44cae2c2b091095ba6b5f7ce659cce55651ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116068 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≫lF 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%0Dll^5?Xk2 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 *($$Boolean$$, default: `$$$$`)* -$$object.detection.confidence$$:: $$$$ *($$Float$$, default: `$$$$`)* -$$object.detection.debug-output$$:: $$$$ *($$Boolean$$, default: `$$$$`)* -$$object.detection.debug-output-path$$:: $$$$ *($$String$$, default: `$$$$`)* -$$object.detection.labels$$:: $$Labels URI.$$ *($$String$$, default: `$$$$`)* -$$object.detection.model$$:: $$pre-trained tensorflow object detection model.$$ *($$String$$, default: `$$$$`)* -$$object.detection.response-size$$:: $$$$ *($$Integer$$, default: `$$$$`)* -$$object.detection.with-masks$$:: $$$$ *($$Boolean$$, default: `$$$$`)* -//end::configuration-properties[] - -//end::ref-doc[] diff --git a/applications/processor/object-detection-processor/pom.xml b/applications/processor/object-detection-processor/pom.xml deleted file mode 100644 index 440f6013..00000000 --- a/applications/processor/object-detection-processor/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - 4.0.0 - object-detection-processor - object-detection-processor - Object Detection (tensorflow) processor apps - jar - - - org.springframework.cloud.stream.app - stream-applications-core - 5.0.0-SNAPSHOT - ../../stream-applications-core/pom.xml - - - - - org.springframework.boot - spring-boot-configuration-processor - - - org.springframework.cloud.fn - object-detection-function - - - - - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0 - - false - - - - org.springframework.cloud - spring-cloud-dataflow-apps-docs-plugin - - - org.springframework.cloud - spring-cloud-dataflow-apps-generator-plugin - - - object-detection - processor - ${project.version} - org.springframework.cloud.stream.app.processor.object.detection.ObjectDetectionProcessorConfiguration.class - objectDetection - - - - - org.springframework.cloud.stream.app - object-detection-processor - ${project.version} - - - - - - - - - - diff --git a/applications/processor/object-detection-processor/src/main/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorConfiguration.java b/applications/processor/object-detection-processor/src/main/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorConfiguration.java deleted file mode 100644 index fdce5fa5..00000000 --- a/applications/processor/object-detection-processor/src/main/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorConfiguration.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.stream.app.processor.object.detection; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.List; -import java.util.function.Function; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.tensorflow.deprecated.JsonMapperFunction; -import org.springframework.cloud.fn.object.detection.ObjectDetectionImageAugmenter; -import org.springframework.cloud.fn.object.detection.ObjectDetectionService; -import org.springframework.cloud.fn.object.detection.domain.ObjectDetection; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.util.CollectionUtils; - -/** - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(ObjectDetectionProcessorProperties.class) -public class ObjectDetectionProcessorConfiguration { - - private static final Log logger = LogFactory.getLog(ObjectDetectionProcessorConfiguration.class); - - /** - * Name of the Message header containing the JSON encoded detected objects. - */ - public static final String DETECTED_OBJECTS_HEADER = "detected_objects"; - - @Bean - public ObjectDetectionService objectDetectionService(ObjectDetectionProcessorProperties properties) { - return new ObjectDetectionService(properties.getModel(), - properties.getLabels(), properties.getConfidence(), properties.isWithMasks(), - properties.isCacheModel()); - } - - @Bean - public Function, Message> objectDetection( - ObjectDetectionService objectDetectionService, - ObjectDetectionProcessorProperties properties) { - - return input -> { - // You can use file:, http: or classpath: to provide the path to the input image. - byte[] inputImage = input.getPayload(); - - List detectedObjects = objectDetectionService.detect(inputImage); - - if (!CollectionUtils.isEmpty(detectedObjects) && properties.getResponseSize() < detectedObjects.size()) { - detectedObjects = detectedObjects.subList(0, properties.getResponseSize()); - } - - // Draw the predicted labels on top of the input image. - byte[] augmentedImage = new ObjectDetectionImageAugmenter().apply(inputImage, detectedObjects); - - String jsonDetectedObjects = new JsonMapperFunction().apply(detectedObjects); - - Message outMessage = MessageBuilder - .withPayload(augmentedImage) - .setHeader(DETECTED_OBJECTS_HEADER, jsonDetectedObjects) - .build(); - - if (properties.isDebugOutput()) { - try { - logger.info("detected objects = " + jsonDetectedObjects); - IOUtils.write(augmentedImage, new FileOutputStream(properties.getDebugOutputPath())); - } - catch (IOException e) { - logger.warn("Cloud not produce debug output", e); - } - } - - return outMessage; - - }; - } - -} diff --git a/applications/processor/object-detection-processor/src/main/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorProperties.java b/applications/processor/object-detection-processor/src/main/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorProperties.java deleted file mode 100644 index ad35f87a..00000000 --- a/applications/processor/object-detection-processor/src/main/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorProperties.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.stream.app.processor.object.detection; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("object.detection") -@Validated -public class ObjectDetectionProcessorProperties { - - /** - * pre-trained tensorflow object detection model. - */ - private String model = "https://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz#frozen_inference_graph.pb"; - - /** - * Labels URI. - */ - private String labels = "https://storage.googleapis.com/scdf-tensorflow-models/object-detection/mscoco_label_map.pbtxt"; - - private float confidence = 0.4f; - - private boolean withMasks; - - private boolean cacheModel = true; - - private boolean debugOutput = false; - - private String debugOutputPath = "object-detection-result.png"; - - private int responseSize = Integer.MAX_VALUE; - - public boolean isDebugOutput() { - return debugOutput; - } - - public void setDebugOutput(boolean debugOutput) { - this.debugOutput = debugOutput; - } - - public String getDebugOutputPath() { - return debugOutputPath; - } - - public void setDebugOutputPath(String debugOutputPath) { - this.debugOutputPath = debugOutputPath; - } - - public String getModel() { - return model; - } - - public void setModel(String model) { - this.model = model; - } - - public String getLabels() { - return labels; - } - - public void setLabels(String labels) { - this.labels = labels; - } - - public float getConfidence() { - return confidence; - } - - public void setConfidence(float confidence) { - this.confidence = confidence; - } - - public boolean isWithMasks() { - return withMasks; - } - - public void setWithMasks(boolean withMasks) { - this.withMasks = withMasks; - } - - public boolean isCacheModel() { - return cacheModel; - } - - public void setCacheModel(boolean cacheModel) { - this.cacheModel = cacheModel; - } - - public int getResponseSize() { - return responseSize; - } - - public void setResponseSize(int responseSize) { - this.responseSize = responseSize; - } -} diff --git a/applications/processor/object-detection-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties b/applications/processor/object-detection-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties deleted file mode 100644 index 4978c26c..00000000 --- a/applications/processor/object-detection-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties +++ /dev/null @@ -1,2 +0,0 @@ -configuration-properties.classes=\ - org.springframework.cloud.stream.app.processor.object.detection.ObjectDetectionProcessorProperties diff --git a/applications/processor/object-detection-processor/src/test/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorTests.java b/applications/processor/object-detection-processor/src/test/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorTests.java deleted file mode 100644 index 76a36cad..00000000 --- a/applications/processor/object-detection-processor/src/test/java/org/springframework/cloud/stream/app/processor/object/detection/ObjectDetectionProcessorTests.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.stream.app.processor.object.detection; - -import java.io.IOException; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.WebApplicationType; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; -import org.springframework.cloud.stream.binder.test.InputDestination; -import org.springframework.cloud.stream.binder.test.OutputDestination; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ -public class ObjectDetectionProcessorTests { - - @Test - public void testObjectDetectionProcessor() throws IOException { - try (ConfigurableApplicationContext context = new SpringApplicationBuilder( - TestChannelBinderConfiguration.getCompleteConfiguration(ObjectDetectionProcessorTestApplication.class)) - .web(WebApplicationType.NONE) - .run("--spring.cloud.function.definition=objectDetection", - "--object.detection.model=https://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz#frozen_inference_graph.pb", - "--object.detection.labels=https://storage.googleapis.com/scdf-tensorflow-models/object-detection/mscoco_label_map.pbtxt", - "--object.detection.responseSize=10", - "--object.detection.debugOutput=true", - "--object.detection.debugOutputPath=./target/object-detection-1.png")) { - - InputDestination processorInput = context.getBean(InputDestination.class); - OutputDestination processorOutput = context.getBean(OutputDestination.class); - - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/pivotal.jpeg"); - processorInput.send(new GenericMessage<>(inputImage)); - Message sourceMessage = processorOutput.receive(10000); - String jsonRecognizedObjects = (String) sourceMessage.getHeaders().get(ObjectDetectionProcessorConfiguration.DETECTED_OBJECTS_HEADER); - assertThat(jsonRecognizedObjects).isNotEmpty(); - //assertThat(jsonRecognizedObjects) - // .isEqualTo("[{\"label\":\"giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca\",\"probability\":0.962329626083374}," + - // "{\"label\":\"badger\",\"probability\":0.006058811210095882}," + - // "{\"label\":\"ram, tup\",\"probability\":0.0010668420000001788}]"); - } - } - - //@Test - public void testObjectDetectionProcessoriNaturalistSpecies() throws IOException { - try (ConfigurableApplicationContext context = new SpringApplicationBuilder( - TestChannelBinderConfiguration.getCompleteConfiguration(ObjectDetectionProcessorTestApplication.class)) - .web(WebApplicationType.NONE) - .run( - //"--spring.cloud.function.definition=objectDetection", - "--object.detection.model=https://download.tensorflow.org/models/object_detection/faster_rcnn_resnet101_fgvc_2018_07_19.tar.gz#frozen_inference_graph.pb", - "--object.detection.labels=https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/fgvc_2854_classes_label_map.pbtxt", - "--object.detection..debugOutput=true", - "--object.detection..debugOutputPath=./target/object-detection-2.png")) { - - InputDestination processorInput = context.getBean(InputDestination.class); - OutputDestination processorOutput = context.getBean(OutputDestination.class); - - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/animals2.jpg"); - processorInput.send(new GenericMessage<>(inputImage)); - Message sourceMessage = processorOutput.receive(10000); - String jsonRecognizedObjects = (String) sourceMessage.getHeaders().get(ObjectDetectionProcessorConfiguration.DETECTED_OBJECTS_HEADER); - //assertThat(jsonRecognizedObjects) - // .isEqualTo("[{\"label\":\"giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca\",\"probability\":0.962329626083374}," + - // "{\"label\":\"badger\",\"probability\":0.006058811210095882}," + - // "{\"label\":\"ram, tup\",\"probability\":0.0010668420000001788}]"); - } - } - - @SpringBootApplication - @Import({ ObjectDetectionProcessorConfiguration.class }) - public static class ObjectDetectionProcessorTestApplication { - } - -} diff --git a/applications/processor/object-detection-processor/src/test/resources/images/animals2.jpg b/applications/processor/object-detection-processor/src/test/resources/images/animals2.jpg deleted file mode 100644 index 71cb8558ae8521ebc88f16ad1c1fc1a2173d4434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181641 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
|`TZPxfe5*^`F?9wES1l;cV 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

h-2H~% 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 z +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

nVdzwgvaV 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

CHL3}D(gNVe0gJOTk>?s(;?qvU7O_lxgS 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ȟAW?yM-S}DgPA|A7?7EGlt{;7~wbv_XM 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%0DBb^V6EGh*&=5My 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 Wis0iHI-1AWU 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%0Avn3xwPiCFi1(yplP#6mDe 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 z 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%0AIIcTm)F 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

`7yJJhk&3dvIE|)(mJUMW8%Yxmh1;^ za_5Is24S*-C-(^~m9LQB9@@2K@}1#%Nf`M^{Kca3w>ZOd#v@5CgI9wkun1zj_EZmJIs9I&24iwy&17@8WTx@Ol=1jd zmMOluKmT&P8!C1CbK)L6^zm`2UYwTE zn8cjvF3s^$CsGa>QbR2TnI?9FyfVyP!qs~=Kuk2uYljXCopMGqmgqJyYlDwy+ufIC zJ0q44_iAeH0Q;N#7s-(yWg9ndzxoC*;WK|}#}v>pL07aE)|pK9`!`SmhYV#Mt+zmS z6^O$EQ?*~rCd_6Slun(BBth+41Tu?};(Xp8`epm)3{CXK!r!9ZJpbozc&zfz?AXtF`bi3}L_cA!jUuq!MtDcBBUPKh7wZY?y!?Dq9iON`#~va=PQ z(0xkp(*V;U^q|@7enMsTvFmT&zZZXYJ~I**Fs95G2zO{XKc2@=nR7{^3{4TM6)z9G#!*9=xGXl(D~R zmSubqcK8x^t>Y>FYWP48O!`nDA-iJ*&N|fSG2sBAs{!UPwM@L@JI7DRsxHqg z?bkLWrPBZ&+{lGwu~qrcKzZq^X+3MZo@e=#uaE4}zE|rD)dt4s+?WmwPG%gat|NAg zbg!}VT*!-)m7}#y%OhTDX51SUH3q`0ar|KD>pZ#s9TkQ{ z?AOooa_0^~o8uTfjKGN+ZZh3SwB7)eaDs1Kp+)eE)zst~k$+G4I_<@5*^=U%NHEsb znwT?4eCr7h{^uw_QQ~f$abIiGA6ls%LEZXwR29QAHVwPp*BarDSsq| zlhyK#g!@N!Gw9-CAcAWZTW;#_agSvCKMyus>yR5=af$>i0;`>Ciy@EgM9R)x(o{1D z|J0l%&_Spl+J9a|Y^bp>?nxJzC~A(r^tRJ^{rVPEm0npq*^Q;@K% zWb)=8bE8U+tkvZKu$hK!r((85{~6MGhS@naGn<8~15fJO<`Dq7P4QG9T;i83S1hRTmCUEe9`L;25DH+O_RO@ccyI`cKEfjuJIyHOK1 zFm1}xfyQr3tThH&#|dD|^fz`Y*T!xK4N297;}1g?P7#ycFpsJn?BF^1gBfC4k(1dW zq?85boe@c54kLWI*I=`6t4Cqg`_mVtZb@Hg*J=GEL0OD6NPP5H$**+;uncQ6HD!)B z4}-igu+x#3faa#7mVj+$@mq3gQ|<*>lbr$4yiJ!7@z>O9xe|s}rc-wKeYjbs zY%w~+P4#T&S&D-;rDQm5kp&n?GZzX`w;V2`{9cdy^Qg@8bLiPB*3<+mB(t?=hT|GH zb`7A%janfAU*lcUjI##XqIQVR?&O9lxnu*AD`;s1&^#Yc-4OB z2(1NI?Es}|=&@Bo(Do)!k6fqF+unS6Br{~^G>u@YjkZn(Gyww3LK5u$2^9gUbDB*J z{(%_sDS6-hvZ*_872#o6dJ(5CB(*IaV$ zBpu1%AnJxFwL(oU(^$_cy7`dHFaQ(sDdxXpP?}BqO;3Ui@2Vh)Z$cg+^5vs3?lL#O z28W;xo6lursol71W?z$6QJG>rHgKf1>TUI?*ul&fYi+;o6l9;8xZbxPOl?FG$#9`C z0eqq=<;Z}}&d0f3jyzhs94 zGJaMJW6D&g&D4QA$+K=q^-(E=oxjg$Yg<0K+8^69+cyt34_|k$he5%F9g}{c^BcSj zy7iDatsV>Fn?Dl#t1@iPd9j!$@+urKB9ZwZQKHdFc_{t$g-^5IYALd@MsLf^l1~YZ zWQ0<4d^5rb)ubVO{QX=vaI1s_R8^8%NcDg;IwA9fm)7xtxYR-c_7SE}t28~*&G)(2 z`}&}8u@sH_v8z|i669>s)U*Zr0p1D{n|alPxkxE%D_qYa-us?Df~58`D%6?tC$b%7Xh$18{{|M#+9oVQpO`pe{V%55rgV36F7)0DP=+IJtyc znFd@OvoLkIy3nlf$YN9xRb4bRYNfWy^Y;4{AR>AqKK$bSDmN{WcE7g5I&ru1 znzxyU>6BlrjHV;qWT*uu)r)r=j1)*7n`jzJDTFsusG8MN-bU*Vnl zWh*%eV?ox0Dn=09dONa+8lW~u-&u7&W{Yb28?Pu*~_UWNqeGg?4vP$L$mt0z9_aTF0C?w##Q+m2$4~)USM?+N^-eJ`B{V zyo@I^QaHg=n0)4)BFi){&}vDRgCM1zvfi9YQbCm^M3_rIjet}v38sH@0C?Y~Nf71G zdJ#oVS|ZH;!`Z>K3lAT|GhH0^pgVc|ZWb8+;Y5rXZ425v*^<^`>cpxxxl3C6be3vg z#18+HS;53nMGF-qSh)Q-+So(R+p0;Ux&$#7*DHg5brC~tCpY_g)aCA7b4E_u8_9cl zwVKhw0AmTgPPuei&n}QTNmDHzm}snKj7=~A&@muDCzp`r3PFf8@M%ZaE?qWg|A<@e zM#^`+=(&^eB)w{(!(PakBo<)&_L_vpC9m9wwX?u#$D>@~UpAn0W2EHN$eOx(9Lm%qatPixJfj-NKVs$3 zbTrzM8=0<-`*YvLL!cqiOnJqq;ocOWctV~M(NMtadpi{{Qoi-e9sa87jsnG^NLyzdbs2_xMz z=#UQL=EMcInT|(MBcIQfScPK&cV=|D#Ry3?210UaHT%I9AlbAaW&gVPe=IVsM?0id zdj$)K)}%c!dJ36!L?+yJ%-NM(FKvlqHj~IsfNxV^Qr+u%r~v-Gb8^-InJBv%dn##0 z1So0y)%j^<35vfC^^gAkhSg#Z_@GIZP%`o&$02}B#UoXgwzXww8B=oA+!j(fb_%3U zCezm`1e)fNO}o}iy}Gbt^2dPrcrge8S^2r70&cjv7!fP&>j{JM{!umwKiVpXD4sP|N8xFRkg-WXSP_wNP%(* zt&}^+ynKG{eSzywzW-%AU}=FxOPwQ2G6u{7i-eeWmBHkt42MIk{br>#)@&$H!kw6C zo&2|#ZZqr=_1UJL2)0!Z%{&M!YSKp2#>N~dcXRdkDUf!r{%d;frw@vNQrA_M}YuZ*b5A}a3yz{FO2zAa}`tO)kn(c_` zoS|qPPtg(Y}&0HLmvbS54k zMcBe_i>Y=%5MT(Eb%(x+U`{X9uh$XRb|vF_2eRvYkpiD{G`(-v*TgH#`y`*gwe@)D z%|nucIq&>Q_IWoDw+Cu6#6=s04~DdGFFvquYHd*i5h32YoKq_PH`hIwj-4#|vccrSaUDD^psLTZrZsY^UBc0TVW`qg>2U#pK_RNQ_f2+>hz@{{R0%0nE8+qR_aX}(G;EF9`MDk2 zhu>lUlA6EpZ^v3`zDgrTMtfmD5Bf)qOWmJxsPYi9JiNTiO5a*yl780zLCVi(LDB-{ zs>hAA-FCkUeDF&Vve*4e;*0SaIMi?x(N7Duu$IL)GeNqVY4E8?2!0{+khwxDFP5AT z&4uc2N0FNutia~H3GcTm-%yfp0>C}I!gxkQaPBWy-9y4xJo1{>&vxF;OMS`qn`PZq zuyAd;W-KvRW*KNmK;TeH$Ad2w4yv@&b7kr~=ng|=JYqC!Aq<$@;h9ypq>u8D0z#(trW z+tqbHSPp=Teu{!EyBB1J1-$TxRna{S97Cxxk=o$28Bi7diNeF6TXiO!L*cu@mt8O5 z#4$+*$IieK0X;rHya+Y2d9&6~l2jA|iS!QNwr*ZyXa>wEjUt|Bcu1=Z+t*km6ArCe zR6=tul&%YnUeR^7oQHF2`;0vr4@H>voytC>1()r;QK z?@{l2#mdD6A52?7pAIB3iFr!1Im@-yq`-OVI@2Sh1=m}J=g0M4>(J$x z?bZg34g7aZy*EAdBQrL2(v9%!Jr?$(%lnF7?WqE7^vnKh-<}5b70C z5v!3%w;`<4_PFCDr>4D8!j=732DwLxz;6;#PPE@-jP($6PHk^EU_+f3SQCxODQBj< zFmw5L&A!eXt>V62OLKdGDie;h@XFpd~5K{qjL7N+OpD(OTFaC3qA+LAoE zPFR3zdnnz;;8VoFsl}wol7=E4;(r2#Pi%b^9 z@M-VE9nF+W-DEH3YaFUa8IJ@E`={@@Mdelh-E#8!)8e`>vG$%3Y zZ(esJY})H@0!Jo9e|X0A%B1~NNLkyYfS#UTaFeLA4-bf^KvO)^j{lCmu$kB*3Ls@IbkMtoRYFlJz?kk6qzv`+mSW z?>+&)t(Mt8%3TaHo}& z$&EiZ!#n%o&CTQ%kO0SckeR4@=d#$%K5a zvVNbA?8yH!9Qp{gaLS6hPH}l=1kQ=~)VJM8w+KLz( zD<H!_pmtkK-q^WO{>)+j5C{TX zR@)}z07F;mqsZR4@irlgq$w3K4I(QyZHYjFEmOH0Mlr@4fj7SLSMux~?6ob9ZE&92 z>U^)~*~!Xp5rhC;bBF-80KlANErvy`n|e#4S@kXE0REu-7pLV+k}?W6`?1>aNZRQ3 z;&@9?AK8rTC%DwtB_nUKGWYG|-3t+vmtSpAUxMy+HS8x;_UvFo;^j0Ac6`}&Txi;X z9BiJpDrAT|g|LJ#{8jKKFQN``oLU)b>8BSPbF69!Z~1s`9X{!svFEg%!lTbUylF{S z-YDOY6|id^f@8g=#<^O}u<>mZmSbLNTE1*1+(5gUNcy?*2mjx(mkULEpVAyEbo|=; zT&&HBEJM3QNwuioFM@?m$|FcEEXkB8M9^?>WVGCY!)~49hDyP8Rj9K48io56>6 zCWxG|)w)`zSN|PjMmpwI2viz~$cKSV)|#L3s8Ym~Jz`o_FaG*hN{TJ<=;}$N**WcD zFdeR|wO-avRz$B>l$2tMGSaC`>+oQT8RKBvdQt-)jy2-{4qMETNNvc3OoehPSfd%z zzAsX52cF4ee?Dg2>%wynzjj!E3%yF3MMR8|cVKnZs?v7;W>NL4k-Bd9{;o(~f%hXg zqwI+9{d~2j61t3Im}2wOV3uT~XNG|MmYz?)cr0)~^m>`55R>Rg*)HgQeOvTBr9;gGrk0; zzmU&8{w@p9G&i&INv$fMHWbViGWEd7wkEzd z1$TJ7Ju%@_0<=CiI+8$ADQ*E-6itP?xJxzizMak#HL}WE{a3|6@Uvk;krdx)g||lE zVmH54*JI6O^*VKMQa!Y=)%CEQZMv(OC^)HEhN2Dcy+%Rcm~a-Bg(x1jQX2+x(_G;# zE2g&V`us>RQny%AEbF~^ZLerMVzch`4{?KAp(+1B=VE2OP|-G2qcTG6oCQ={)x*7h zXcdD&m{da00To)wv{w=J`}ylZtb&>??qjz)+K3fh{SBn?)5J*Gm}H%X0&8?O@5Gsm zJNK@mtb*J<7+=q00b%^mxY~LYC!85QIJl;{v}wr(g0w>w$N|C2Bmi-&JI9(_lknsG zs_@*^|IMZk66;gWl!@OxE8OjSE90}n<^}OrLH&JZTwVH*$p9U>&APwEV(bpd*~SW| zn@;UIMfF00s@I3TVYy0sabL=EZxrfMdv9}x7;+h@yi4;JrQV1z_-;D!QU2~ z)C4MPmq76%EC+kc2L$|HuAAhdKRh=>Q&$qZ)51;P=Kra`qqARe`*Nq%+F6yVGWje2 z77_#H**8obkRlXjZ5V(MpWNW6MxLVX@(t1F^T6y7o<8XJ55{bN6XI{Om&&+$h2e|<_Ys6~yE#-Dlhpnf@KFW1e4T4a+w z`1V85Kp$O=#^g7U2V=;5% zdxttAsn;*DKc?8-yCYjF@FZbnQ{{ho(*-qUhDGKqazYSIi*e}1*`|k^^ouZ*_tv?O znnj$NHZitIlS|41>jR3jp2lr% zdw*lN6?8w|=#shiY^Zu_S{j?xY8w{SJ)D2?7ZW8Qn7OdsjDwYRGk($9F%Fs#w3c=^ zEyJaV4u=(mu@3B0hQB~n3AL={sPn%Y8y=_pqf0DU`5Jumh5jkxvz>kE{ELQ%3Sk6r zuaB9m<(KIhV$^E$ssu7jTWYBq>2wz_^|w2zJzSvb*|vFExNh_yi;DRiaPyx@#)nVC zcfsnmpHkLLul%c=l3C%cW3F_~jnC+9{G%JwL~>;EsT*dFwnra~io#*G*yeoFkR+yS zClBHsgzP}!Ps!~!s?&{-p<$}t;poiXuVL<=JTr6LCj2L$-`sM3Evxq;ewn|^&Y81~ z80W7qc!qYk6Kp#&FV}~O`2^)J7H%Fxz_vzSyCB&TA>PPbG#-JF-mxr(T1}+Ck(-)| zneztWD_8cxyWXX5mtHszdE=gU#+TU}*7Zs;6>#;dIDRu4aPF_7vhr*XIhl|mNuH#4y+>ufA{HAXG?baSL} z;u)21byh7+nnOOM=U4d4ONC2=N|gmQC?0X;WwO`1_0Kz~zEP(CA}mo^I%}!v5G!ju z+G}Qth0xUw4sUkAKsV~)x2RcmBlV3%T=l@P-4N1M?H`!e8`9xPqhBxN5mLFSwdP8n zOG$|s^8y9m+;AC#hh3%;yl8D+pvHG0%c6O~ z2ZngehkV?mJK^_SF%q@WG1v4G^c)eECjWIz%#Rat0o&Nhhs~H3l9B++7z7rJQn2vw z7dy=UhQ+IWjEb|Jj$6Rd2s#TFFg3txe5co#_V)}#L3N6^TTJvj47PB^l>Jh&uXA6% zK3{KA^F+}MJjk%S1`^-&Et- za~rR<^S2CiW?L}i@C{RPVJgLz)B;lN(yn?H>sNH`Z?A8tvbITr7y@vWQ?-=E1L zri?K&*AWL{lM9{P9SB~o4^S2Vc{E3(j%DswJKW4Ml1<%**U=c=zJ@fFXy7|D)(U+>&blKVHw%-kCFP zJ9418&DGOzpt*2^Xt@!=oVe|&v|O1eSkA|R3(-UY1<^9K+_@l8GzV@l7iNy{kKaFV zu5-?Ho%`I^=YGFmF9I^}a&rgIDRYXOiv_~fJ<=i{YYYAsQ3Qti-R{I*`belTsGwL&z#@10`S{U@T{fSC7Es|YeaoWew8}^HZ1D- z;KNJDbNU-WCvP}IdQz#C-}7$-8+G>@OjJ6$Hizx7Iuu2Ktvqxp(7;}HM}+SH(}Vg} zp+|!u?@9Z4nyLT2U%vEJI9>IIkLR1*(HP<#vr4ESq%b44yEy7!j;%;4Ed}ki}_>cX^@#|4n946wpcmGWn z>3P?sv1#rLc5u!srCMJ#SucWqjkJSxS*07>AiFFt%&qpGbf)nGkbNsz4kh3hd8VJc z)>HSHqd?i_*}MT!TG51?6-;Do`M{n??vBxRX&fXl98%u_17&j`DwLo5S+ZiaSO4bL zaVUNOFFxduB^|))D2^W{(+MF2xSK^RAR?RpEWmUE7PVely3&$W$5=Jp=Y8=SENu|Q zS{qeND5ZdaefX=CD|M}g0S3Lj^<3!#2a#Gpd-bC-AyM!w-mETHL{}~I)@f+pr6fpm zC1_~fcG33&*iNuIkL9^Nip%MO1a$$5J}9H|^_BcI=8+N~x` zamv1X2vdTnx?!4(1xlq$+e|}8R=t6OIPcb}3dA%Jfb42ZNfv)=Fnby;onGRm`iz!$`iNqQSEz8I zglqRS8XXDnudeYSZITlwvy0u%cHi!3s&1i$UWwz5vDgO66pX3zX0qP0ukB~lYG|~L zvgQrKeyKPhJt-$Ala_t=ve2U=W)gx<<3F7c`z5xWGBJG)Oln#O(dnRsAol0T+wlrQRh zs9fNV=wwbtI~p;TLIm^sm~PRk0k=oVQfe zfWLrJz|Y$+HrVtWU!deawmnhconNaC89yXyOajVMO>dmCFUj)=vF=-|3u@H2l6i!^ zTmqwXhgxXSXv#jN)Vn4`^pC-Cd$Z_)@?0!AWynHq(g?pbX-vL5mUBhjvUxWc>XK|x zCz&kn3VCx&83;t!6rT+H{Kmv5%GPtx$8)io^8xUj~D?7gH*>I z*j%<2KxHQ7hWVVy8_rOVug$+Q!&L~W8s(ofXYD7(4^5GWU3 zP8%gu#d^kl_G=O;iFV!pw^=&e&APVkmib!1m-Ck(lbuQmfAs&Tr1&c%Njhc!7}dKo zxvJyenjg?JDWXFbQp&u7sHtXWjL*UCUk`eNPu+EuJetz`R4HW5$uBshcGOVuY+`Gx z2qY-H+$a#g6SNfo1=`D~`A+{dX( zTKE>kun?Rl_1Rt6<6s~$#N#!(#-?cXmx=TCp| zayoO=(SC{}b@Ys=ZmH@QEaprMxFOuo$pizk8?3K4ga}GwwAlWFdb#!*R`UJdg}+*+ zc(v21qRUf0@vqibW-EwP}l_ijXHB}q3nQk%8I92~N+{LA?qA*e}|bYMj7eVx}U zt9$1*#*aBB&z#ByzUcYo6yY5n-T(K8sq$%$1cH_J=byg@Km_xnDQ3TOFWXo2>1TR$ z>k52tQQ`Y@kaYLT4Sl(hrNPulvCo$HGKDRvE4r9{R+9NBD;quM!h-|NzU{*VcM7qX zX*qWAt@-q?^X&#E;6eTSQ&-~J-#L}WdzJYyPEWaAfTIj$eod*doO@A-D416{0W(ti zA5$Bqe_lEZb@Ha^ zk6ltMR^oBiE=u3DvrY=HgFEGI&Um4FKu?PC0k}{L7B=p*)DKZHEHs#_rhe zT^U^Ctv_1C1;;NQziT>zp1PglGab5RS2IN%1~Wsv*C#BJMkg+0G{(qf{n`rfIiBMY z5ErIh{F;hl3>7+Nv#)6&qJm`myDCTe7dLKmbX213W_0={EZv+Z1>_y-07|=M>gun} zSUbwbvi8NU+V}bYJLF6?y&`c!LE=Vy^mnl!Ma_OBho`)1mBM-f-usG%A| zh#q7j*#-^;h?f-uR{{mCF`wGxq%z}V2+k~*pi-ZKqBi$-E><@&@8+RCu|z-GgiH$g zQH86FfB$S0eB+oi&;LUMKpj(~*Dhl2tGy>zIB=3y&t%-@=QB^H1jgJ@$RCK*H1wvz zsvHhX{_YL-IjJx#@+dEN#L)cS?(43CsO6y;P7meF>IE2fn{si_^tIhv)*yfSGyu{X zE0N#bYaYRQE9Uh=0yJ)_ZJHb?ae}M7MiLn5)>m{pgYA>vLcv*lFjZ3BBF( ziGn4gu8p<&dYaZS5^V*0TDAoCy$D|3jx4Rv&M0iksgWKk%4K(o%gxGYW&Iv*t- zY{lMtv91f6a+Ub>^9jdX677Y#BE6qyIwk+~S!H(lLbF+5k)XP0IlvDQ#)t>YKT6VZ ztDKs56gw4+e^I;=g9{(7=mdq#gX+gK6@vOl2lyC2Jz#52?x0O>@lNlr^Wfi;_}K4m zr#yb&h?+impyC?+=+|7@ucDaK&}56Xqh+a0MwL~r63O>RLiLu-uiS)@^h(~^=TCn% z8om{=68%u)PfYJ{+P+0AQbP3J-)~zv2kfcK9Ujl@?)*ybxicDbiue^&b4s;L$z_SN zxfa4v7{tn0W6Z*xpNUVH;Z0|jC*(bpH`yclU zWB>k5JWV*abt6|`KC)_SIpk`j@kcvF|LBY&T@sW>3OK)fIagQacY#Ir!IB)AMqO8T z+X~hwb4=1vzjns)j7RVpV8}q*?c1KH`&XCvGK&e}O`^)-;Wl5VS|W@s zOH_qF9x&9;p(|298;9Phxug(!+o9qmA^G!gH1U<xHs6TbsK^q+G2vzd(&g9||nOh|ZqJ5u{}0uZ@|;rT@HHB?&iGpGMZ?{+ZOY z@~*)9u`)G)zJshW?V_lKE!E=q?JEKqPgGDv6mNA0x$*}AUzMrYa7+98X7yZU^u6l+ zB*^;*5SH(s5)>HuTJfIx5+6*$jV-9H7_W10C52!<4E3gDVw$339zSTQtMKI8W!1lm zTV6&ZvxhA0@nF`%*2m0+p_JGX&%o0Yu3#ypC`RSNgFJX4gWo+k2UuyR-DUU$*r%) z_2S0NI>83jw%K%j^>}%jG0>=;ke88xu5*RP0{WnXeT>_)M5cR7O5#I^(bK4B&KKXS zydV6>-SIl|3{qVQ~opMv3d>DH>;S{*_mRb`g1da5r*gm7YfygrXFE(09RW zGGPfPJjmJJXV&f=<+oNk{w-BiNO?~CxA&e0NZA^J<1LF0#So+mvX^676Uw2tn*0YR z-DstJZtpxj!4>>?XeGhIA=G#9pQP*InQavtC#TNph|8FDUM{}$oRjuV!G0&Nh^b7m z0Cz_<=OAd2Ay==4jJtLU&i$8Hy+k(F$=QwJEnLZ8tH!@y|I+>%dw9)gU{GIkW+7Vp z=j5d&TR+AhYpavL)7q)ZY17z*d9GGJe|6A@A@x?|Q2r258@o1!Su?9}AXq7{N>Uh|sdr!&c4 z{M`<(#Xg)iR!{tR7yA%|_4+~zzB^qx`+GBAEnldz3}o}H_{?DQ)tq*Dk6R~(ik1}Y zq`Y=kU$~j22{jCsB{!XHcNJm$oLuoA62biH7oJ{E+Ht*>6r_Z_Ct+NzmQxd7RQux% zqubAsKfE;Uv8C^Qs=g9T*Lk?f*@Q>Pyni!C5mK|f;HQ1t-cwKO&=t$?|Ac_f6vO}e z`ny@=>Aa0f1df&hNxL4ZaxkD0SKw
CZiS% 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
Oq=J`x1PuNQ}4 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ⅆ-t1V-#S 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�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

}a-ep0aZS>#CQ(51gESRd}7kkta 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

)Ze(8uf2#M%^-Q^m1fAw>p5x9fW= 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 z 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 sq!%-MC`;De@^sJvh`|4!3j5ADNZDiGmvZKAe( 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

*8oGXGG8{|-_-0l2g}X1 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

dA{u<`LAk&PFdC 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 diff --git a/applications/processor/object-detection-processor/src/test/resources/images/pivotal.jpeg b/applications/processor/object-detection-processor/src/test/resources/images/pivotal.jpeg deleted file mode 100644 index 36d7494f11a1063711e40dbc841d3aa779a72bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163069 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 diff --git a/applications/processor/object-detection-processor/src/test/resources/images/scdf-tensorflow-object-detection-arch.png b/applications/processor/object-detection-processor/src/test/resources/images/scdf-tensorflow-object-detection-arch.png deleted file mode 100644 index 2acde16cf408c0dc36997b7bfb385b417fcac89c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298518 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 script-processor twitter-trend-processor - image-recognition-processor - object-detection-processor - semantic-segmentation-processor diff --git a/applications/processor/script-processor/pom.xml b/applications/processor/script-processor/pom.xml index fa4c3bb0..2551418e 100644 --- a/applications/processor/script-processor/pom.xml +++ b/applications/processor/script-processor/pom.xml @@ -78,8 +78,8 @@ org.springframework.cloud.fn - payload-converter-function - ${java-functions.version} + spring-payload-converter-function + org.springframework.boot diff --git a/applications/processor/script-processor/src/main/java/org/springframework/cloud/stream/app/processor/script/ScriptProcessorConfiguration.java b/applications/processor/script-processor/src/main/java/org/springframework/cloud/stream/app/processor/script/ScriptProcessorConfiguration.java index 9f66d08d..77097437 100644 --- a/applications/processor/script-processor/src/main/java/org/springframework/cloud/stream/app/processor/script/ScriptProcessorConfiguration.java +++ b/applications/processor/script-processor/src/main/java/org/springframework/cloud/stream/app/processor/script/ScriptProcessorConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 the original author or authors. + * Copyright 2016-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.Resource; import org.springframework.integration.handler.MessageProcessor; import org.springframework.integration.scripting.ScriptVariableGenerator; +import org.springframework.integration.scripting.dsl.ScriptSpec; import org.springframework.integration.scripting.dsl.Scripts; import org.springframework.messaging.Message; @@ -47,7 +48,7 @@ import org.springframework.messaging.Message; * @author Artme Bilan * @author Soby Chacko */ -@Configuration +@Configuration(proxyBeanMethods = false) @EnableConfigurationProperties(ScriptProcessorProperties.class) @Import(ScriptVariableGeneratorConfiguration.class) public class ScriptProcessorConfiguration { @@ -69,12 +70,12 @@ public class ScriptProcessorConfiguration { } @Bean - public Function, Object> scriptProcessorFunction() { - return processor()::processMessage; + public Function, Object> scriptProcessorFunction(MessageProcessor messageProcessor) { + return messageProcessor::processMessage; } @Bean - public MessageProcessor processor() { + public ScriptSpec processor() { String language = this.properties.getLanguage(); String script = this.properties.getScript(); logger.info(String.format("Input script is '%s', language is '%s'", script, language)); @@ -82,8 +83,7 @@ public class ScriptProcessorConfiguration { return Scripts.processor(scriptResource) .lang(language) - .variableGenerator(scriptVariableGenerator) - .get(); + .variableGenerator(scriptVariableGenerator); } private static String decodeScript(String script) { @@ -94,4 +94,5 @@ public class ScriptProcessorConfiguration { } return toProcess.replaceAll(NEWLINE_ESCAPE, "\n").replaceAll(DOUBLE_DOUBLE_QUOTE, "\""); } + } diff --git a/applications/processor/semantic-segmentation-processor/README.adoc b/applications/processor/semantic-segmentation-processor/README.adoc deleted file mode 100644 index 1716fced..00000000 --- a/applications/processor/semantic-segmentation-processor/README.adoc +++ /dev/null @@ -1,42 +0,0 @@ -//tag::ref-doc[] - -= Semantic Segmentation Processor - -Image Semantic Segmentation based on the state-of-art https://github.com/tensorflow/models/tree/master/research/deeplab[DeepLab] Tensorflow model. - -The `Semantic Segmentation` is the process of associating each pixel of an image with a class label, (such as flower, person, road, sky, ocean, or car). -Unlike the `Instance Segmentation`, which produces instance-aware region masks, the `Semantic Segmentation` produces class-aware masks. -For implementing `Instance Segmentation` consult the https://github.com/spring-cloud/stream-applications/tree/master/functions/function/object-detection-function[Object Detection Service] instead. - -The `Semantic Segmentation Processor` uses the https://github.com/spring-cloud/stream-applications/tree/master/functions/function/semantic-segmentation-function[Semantic Segmentation Function] library and the https://github.com/spring-cloud/stream-applications/tree/master/functions/common/tensorflow-common[TensorFlow Service]. - -== Payload - -The incoming type is `byte[]`, and the content type is `application/octet-stream`. The processor processes the input `byte[]` image and outputs augmented `byte[]` image payload and json header. - -Processor's input is an image byte array, and the output is an augmented image byte array, and a JSON header `semantic_segmentation` in this format: - -[source,json] -.... -[ - [ 0, 0, 0 ], - [ 127, 127, 127 ], - [ 255, 255, 255 ], - ... -] -.... - -The output header json format represents the color pixel map computed from the input image. - -== Options - -//tag::configuration-properties[] -$$semantic.segmentation.color-map-uri$$:: $$Every pre-trained model is based on certain object color maps. The pre-defined options are: - classpath:/colormap/citymap_colormap.json - classpath:/colormap/ade20k_colormap.json - classpath:/colormap/black_white_colormap.json - classpath:/colormap/mapillary_colormap.json$$ *($$String$$, default: `$$$$`)* -$$semantic.segmentation.debug-output$$:: $$save output image inn the local debugOutputPath path.$$ *($$Boolean$$, default: `$$$$`)* -$$semantic.segmentation.debug-output-path$$:: $$$$ *($$String$$, default: `$$$$`)* -$$semantic.segmentation.mask-transparency$$:: $$The alpha color of the computed segmentation mask image.$$ *($$Float$$, default: `$$$$`)* -$$semantic.segmentation.model$$:: $$pre-trained tensorflow semantic segmentation model.$$ *($$String$$, default: `$$$$`)* -$$semantic.segmentation.output-type$$:: $$Specifies the output image type. You can return either the input image with the computed mask overlay, or the mask alone.$$ *($$OutputType$$, default: `$$$$`, possible values: `blended`,`mask`)* -//end::configuration-properties[] - -//end::ref-doc[] diff --git a/applications/processor/semantic-segmentation-processor/pom.xml b/applications/processor/semantic-segmentation-processor/pom.xml deleted file mode 100644 index 5605cc5e..00000000 --- a/applications/processor/semantic-segmentation-processor/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - semantic-segmentation-processor - semantic-segmentation-processor - Semantic Segmentation (tensorflow) processor apps - jar - - - org.springframework.cloud.stream.app - stream-applications-core - 5.0.0-SNAPSHOT - ../../stream-applications-core/pom.xml - - - - - org.springframework.boot - spring-boot-configuration-processor - - - org.springframework.cloud.fn - semantic-segmentation-function - - - org.springframework.cloud.fn - object-detection-function - - - - - - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0 - - false - - - - org.springframework.cloud - spring-cloud-dataflow-apps-docs-plugin - - - org.springframework.cloud - spring-cloud-dataflow-apps-generator-plugin - - - semantic-segmentation - processor - ${project.version} - org.springframework.cloud.stream.app.processor.semantic.segmentation.SemanticSegmentationProcessorConfiguration.class - semanticSegmentationFunction - - - - - org.springframework.cloud.stream.app - semantic-segmentation-processor - ${project.version} - - - - - - - - - - diff --git a/applications/processor/semantic-segmentation-processor/src/main/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorConfiguration.java b/applications/processor/semantic-segmentation-processor/src/main/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorConfiguration.java deleted file mode 100644 index 7a6e5554..00000000 --- a/applications/processor/semantic-segmentation-processor/src/main/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorConfiguration.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.stream.app.processor.semantic.segmentation; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.function.Function; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.tensorflow.deprecated.JsonMapperFunction; -import org.springframework.cloud.fn.semantic.segmentation.SegmentationColorMap; -import org.springframework.cloud.fn.semantic.segmentation.SemanticSegmentation; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; - -/** - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(SemanticSegmentationProcessorProperties.class) -public class SemanticSegmentationProcessorConfiguration { - - private static final Log logger = LogFactory.getLog(SemanticSegmentationProcessorConfiguration.class); - - /** - * Output header name. - */ - public static final String SEMANTIC_SEGMENTATION_HEADER = "semantic_segmentation"; - - @Bean - public SemanticSegmentation semanticSegmentation(SemanticSegmentationProcessorProperties properties) { - return new SemanticSegmentation(properties.getModel(), - SegmentationColorMap.loadColorMap(properties.getColorMapUri()), null, - properties.getMaskTransparency()); - } - - @Bean - public Function, Message> semanticSegmentationFunction( - SemanticSegmentation semanticSegmentation, - SemanticSegmentationProcessorProperties properties) { - - return input -> { - // You can use file:, http: or classpath: to provide the path to the input image. - byte[] inputImage = input.getPayload(); - - byte[] outputImage = (properties.getOutputType() == SemanticSegmentationProcessorProperties.OutputType.blended) ? - semanticSegmentation.blendMask(inputImage) : semanticSegmentation.maskImage(inputImage); - - long[][] maskPixels = semanticSegmentation.maskPixels(inputImage); - String jsonMaskPixels = new JsonMapperFunction().apply(maskPixels); - - Message outMessage = MessageBuilder - .withPayload(outputImage) - .setHeader(SEMANTIC_SEGMENTATION_HEADER, jsonMaskPixels) - .build(); - - if (properties.isDebugOutput()) { - try { - IOUtils.write(outputImage, new FileOutputStream(properties.getDebugOutputPath())); - } - catch (IOException e) { - logger.warn("Cloud not produce debug output", e); - } - } - - return outMessage; - }; - } -} diff --git a/applications/processor/semantic-segmentation-processor/src/main/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorProperties.java b/applications/processor/semantic-segmentation-processor/src/main/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorProperties.java deleted file mode 100644 index fec7b807..00000000 --- a/applications/processor/semantic-segmentation-processor/src/main/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorProperties.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.stream.app.processor.semantic.segmentation; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("semantic.segmentation") -@Validated -public class SemanticSegmentationProcessorProperties { - - enum OutputType { - /** Input image augmented with the segmentation mask on top. */ - blended, - /** Image of the segmentation mask. */ - mask - } - - /** - * pre-trained tensorflow semantic segmentation model. - */ - private String model = "https://download.tensorflow.org/models/deeplabv3_mnv2_cityscapes_train_2018_02_05.tar.gz#frozen_inference_graph.pb"; - - /** - * Specifies the output image type. You can return either the input image with the computed mask overlay, or - * the mask alone. - */ - private OutputType outputType = OutputType.blended; - - /** - * Every pre-trained model is based on certain object color maps. - * The pre-defined options are: - * - classpath:/colormap/citymap_colormap.json - * - classpath:/colormap/ade20k_colormap.json - * - classpath:/colormap/black_white_colormap.json - * - classpath:/colormap/mapillary_colormap.json - */ - private String colorMapUri = "classpath:/colormap/citymap_colormap.json"; - - /** - * The alpha color of the computed segmentation mask image. - */ - private float maskTransparency = 0.45f; - - /** - * save output image inn the local debugOutputPath path. - */ - private boolean debugOutput = false; - - private String debugOutputPath = "semantic-segmentation-result.png"; - - public OutputType getOutputType() { - return outputType; - } - - public void setOutputType(OutputType outputType) { - this.outputType = outputType; - } - - public boolean isDebugOutput() { - return debugOutput; - } - - public void setDebugOutput(boolean debugOutput) { - this.debugOutput = debugOutput; - } - - public String getDebugOutputPath() { - return debugOutputPath; - } - - public void setDebugOutputPath(String debugOutputPath) { - this.debugOutputPath = debugOutputPath; - } - - public String getModel() { - return model; - } - - public void setModel(String model) { - this.model = model; - } - - public String getColorMapUri() { - return colorMapUri; - } - - public void setColorMapUri(String colorMapUri) { - this.colorMapUri = colorMapUri; - } - - public float getMaskTransparency() { - return maskTransparency; - } - - public void setMaskTransparency(float maskTransparency) { - this.maskTransparency = maskTransparency; - } - -} diff --git a/applications/processor/semantic-segmentation-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties b/applications/processor/semantic-segmentation-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties deleted file mode 100644 index 104f7436..00000000 --- a/applications/processor/semantic-segmentation-processor/src/main/resources/META-INF/dataflow-configuration-metadata.properties +++ /dev/null @@ -1,2 +0,0 @@ -configuration-properties.classes=\ - org.springframework.cloud.stream.app.processor.semantic.segmentation.SemanticSegmentationProcessorProperties diff --git a/applications/processor/semantic-segmentation-processor/src/test/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorTests.java b/applications/processor/semantic-segmentation-processor/src/test/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorTests.java deleted file mode 100644 index d95adc2f..00000000 --- a/applications/processor/semantic-segmentation-processor/src/test/java/org/springframework/cloud/stream/app/processor/semantic/segmentation/SemanticSegmentationProcessorTests.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.stream.app.processor.semantic.segmentation; - -import java.io.IOException; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.WebApplicationType; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; -import org.springframework.cloud.stream.binder.test.InputDestination; -import org.springframework.cloud.stream.binder.test.OutputDestination; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ -public class SemanticSegmentationProcessorTests { - - @Test - public void testSemanticSegmentationProcessor() throws IOException { - try (ConfigurableApplicationContext context = new SpringApplicationBuilder( - TestChannelBinderConfiguration.getCompleteConfiguration(SemanticSegmentationTestApplication.class)) - .web(WebApplicationType.NONE) - .run("--spring.cloud.function.definition=semanticSegmentationFunction", - "--semantic.segmentation.model=https://download.tensorflow.org/models/deeplabv3_mnv2_cityscapes_train_2018_02_05.tar.gz#frozen_inference_graph.pb", - "--semantic.segmentation.colorMapUri=classpath:/colormap/citymap_colormap.json", - "--semantic.segmentation.outputType=blended", - "--semantic.segmentation.debugOutput=true", - "--semantic.segmentation.debugOutputPath=./target/semantic-segmentation-1.png")) { - - InputDestination processorInput = context.getBean(InputDestination.class); - OutputDestination processorOutput = context.getBean(OutputDestination.class); - - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/amsterdam-cityscape1.jpg"); - processorInput.send(new GenericMessage<>(inputImage)); - Message sourceMessage = processorOutput.receive(10000); - String jsonRecognizedObjects = (String) sourceMessage.getHeaders().get( - SemanticSegmentationProcessorConfiguration.SEMANTIC_SEGMENTATION_HEADER); - assertThat(jsonRecognizedObjects).isNotEmpty(); - //assertThat(jsonRecognizedObjects) - // .isEqualTo("[{\"label\":\"giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca\",\"probability\":0.962329626083374}," + - // "{\"label\":\"badger\",\"probability\":0.006058811210095882}," + - // "{\"label\":\"ram, tup\",\"probability\":0.0010668420000001788}]"); - } - } - - - @SpringBootApplication - @Import(SemanticSegmentationProcessorConfiguration.class) - public static class SemanticSegmentationTestApplication { - } - -} diff --git a/applications/processor/semantic-segmentation-processor/src/test/resources/images/amsterdam-cityscape1.jpg b/applications/processor/semantic-segmentation-processor/src/test/resources/images/amsterdam-cityscape1.jpg deleted file mode 100644 index d77cae4064c8dc042c7930cf771bd8a3c69bbae9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104966 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 z zoO@UE2GH5QW(|Aa`7K@|ed2t;cw=VjjjPd*XsqORfF83n2Qr1)9rGzUCV;#7si^bL zKd7!l(1_m1kDp0iGDTVrP9x<^u{7+m@SVFkWOl)7< znN>d0zwG^@&yZ&JQ?q3Fe(>J+EoqEmx0DC5X7gV~!0w|J)uUFRt?n^T`LU*tz7(ii=vPb6OE{$cTeIQ>*4`!N(k)u7{{TUP8$H^Zbq77aC^`JSIF!?A~LpA&%mKQf31*DvXo z_IZZ;{@bZbx20XjSN^{fE^)~VJUC)rRX=HWt;3#9(uXEIknmdqpTbb&-weMY%4OJL9UX76j!|49=D}s8=HT=@MW5Ww~VsdIi048NGZYu)3;_$d&Qw7bzPTHmzx51DtEtK`QzFz*KOZ`yjb zGuf{){O7b@*1Wl!!91DwaDPIdDrzCE`u$IQPkXuY4@ z@Z0N&U9stzUhkYh?!BeixU3;;I4)&O}dm8%$)_M-$Q<)KSQ5Q z#Up6KMN+%L%)k8i8VYZqtm%Ckeu(s1E-TQgqi(k>JpeqyHt6)6%a23o2)ftNbZ@5- zii4(6;R^o%@*PZwvEpz`%q`4gIKVJ|tA*Z$T?DR&&q;1?9dz5JeIHJnMEVe7UslrU zGsGb^2SKS<9*~-Jq^JH1=~XsNAXaCXID*v1S3yDyzN$AiKwZq`LI}ML%a_o&&AKnq zwduD|ZJWWz*PV9>T{LuJHbr@q)EqxvvBueXT@SPtV2yqvT(Uaz2nfqgWnzut()uhQ zf|VF=uKgLb*P~9GN3H0(hebVU&}l8)Qtng$LE2z>#bl>%wknDp9QX5B5Oy*G^8pqggcT}bq}RJ{0$FT^hziy=&DEP*kV3Vxvm zddI3msXHL%Aj|0O%f>a(xt^C6qizA!Vg-?Yjpg)ZSdY@ShT}KrqG9?3s8SIk=t_Yw z>u3J}70OXB(NJ900WL>f3de+blt^_hZd744zKqV59)ubCXomV8jpp4q=obm8T^0{Q zHacl>xoC7AsbBn7k6j=hq0zh|j*Z3XQ(Z0ubI_Lvy#}$Hx-d^shh9i?({8t;^eTr? z=w%L<&q))YE&6OzpgI^*pjQJzMIqF4(!fGlmrMFx<~j#ZK_8;Z=p!Z_ z7M&=V$E~_0RN86MiRlm0YE*8agvvE8RrE1Y=u-kw0#pb}=;mXLNLLc###CigtA@~H zrm&R@ESNI-2ptZ$s!EJpdLA(8S3=U$P+^453}2$10y5zVQEEL1#0Uhj=?qX{CCOJR zaVU#$CG}Jei>`(Yb?qJW0L9F>Jr-Tcsi#ZN*L@gT3h12!2q_+k59y|olEvv#<@#<^ z$^kAZ7N$%k#GBk@bjk#c48WR%Vnd}u7lt}t z>0eSn`VoT`q7!?I(SCvsl?W#t8XrO$gfNF)rqFsY>bPUBhgND_sDfqCHx#*UmEs>l zp-z+ZmDIAj2VIQJRCCh0=j$A{7R2hf!c=-~(NXAh*XSB268b$Dbc;6#32>~+B&Fz1 zge6ObV~imB_tLs*S4;Gk2hx)I5l|r$5Fyh3k?P;CPo;WvgnC@Qk46zom2vtKX>yU2 zWwAQNIExeY+#&S1N3NyxRJc7xUrUS`a^>}|gnB#b*QWh!(reXUNf

4z<*gCJYCl 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 $$splitter.delimiters$$:: $$When expression is null, delimiters to use when tokenizing {@link String} payloads.$$ *($$String$$, default: `$$$$`)* -$$splitter.expression$$:: $$A SpEL expression for splitting payloads.$$ *($$String$$, default: `$$$$`)* +$$splitter.expression$$:: $$A SpEL expression for splitting payloads.$$ *($$Expression$$, default: `$$$$`)* $$splitter.file-markers$$:: $$Set to true or false to use a {@code FileSplitter} (to split text-based files by line) that includes (or not) beginning/end of file markers.$$ *($$Boolean$$, default: `$$$$`)* $$splitter.markers-json$$:: $$When 'fileMarkers == true', specify if they should be produced as FileSplitter.FileMarker objects or JSON.$$ *($$Boolean$$, default: `$$true$$`)* //end::configuration-properties[] diff --git a/applications/processor/splitter-processor/pom.xml b/applications/processor/splitter-processor/pom.xml index 2ba8e99e..6237244b 100644 --- a/applications/processor/splitter-processor/pom.xml +++ b/applications/processor/splitter-processor/pom.xml @@ -17,11 +17,11 @@ org.springframework.cloud.fn - splitter-function + spring-splitter-function org.springframework.cloud.fn - payload-converter-function + spring-payload-converter-function @@ -47,19 +47,18 @@ splitter processor ${project.version} - org.springframework.cloud.fn.splitter.SplitterFunctionConfiguration.class - + AUTOCONFIGURATION byteArrayTextToString|splitterFunction org.springframework.cloud.fn - payload-converter-function + spring-payload-converter-function org.springframework.cloud.fn - splitter-function + spring-splitter-function diff --git a/applications/processor/transform-processor/README.adoc b/applications/processor/transform-processor/README.adoc index 4a4eeb4f..b998f0ec 100644 --- a/applications/processor/transform-processor/README.adoc +++ b/applications/processor/transform-processor/README.adoc @@ -21,7 +21,7 @@ The incoming message can contain any type of payload. == Options //tag::configuration-properties[] -$$spel.function.expression$$:: $$A SpEL expression to apply.$$ *($$String$$, default: `$$$$`)* +$$spel.function.expression$$:: $$A SpEL expression to apply.$$ *($$Expression$$, default: `$$$$`)* //end::configuration-properties[] //end::ref-doc[] diff --git a/applications/processor/transform-processor/pom.xml b/applications/processor/transform-processor/pom.xml index 01bb02fd..05fabf93 100644 --- a/applications/processor/transform-processor/pom.xml +++ b/applications/processor/transform-processor/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - spel-function + spring-spel-function @@ -43,13 +43,13 @@ transform processor ${project.version} - org.springframework.cloud.fn.spel.SpelFunctionConfiguration.class + AUTOCONFIGURATION byteArrayTextToString|spelFunction org.springframework.cloud.fn - spel-function + spring-spel-function diff --git a/applications/processor/twitter-trend-processor/README.adoc b/applications/processor/twitter-trend-processor/README.adoc index 691466f8..780f448e 100644 --- a/applications/processor/twitter-trend-processor/README.adoc +++ b/applications/processor/twitter-trend-processor/README.adoc @@ -31,12 +31,12 @@ Properties grouped by prefix: === twitter.trend.closest -$$lat$$:: $$If provided with a long parameter the available trend locations will be sorted by distance, nearest to furthest, to the co-ordinate pair. The valid ranges for longitude is -180.0 to +180.0 (West is negative, East is positive) inclusive.$$ *($$Expression$$, default: `$$$$`)* -$$lon$$:: $$If provided with a lat parameter the available trend locations will be sorted by distance, nearest to furthest, to the co-ordinate pair. The valid ranges for longitude is -180.0 to +180.0 (West is negative, East is positive) inclusive.$$ *($$Expression$$, default: `$$$$`)* +$$lat$$:: $$If provided with a long parameter the available trend locations will be sorted by distance, nearest to the furthest, to the co-ordinate pair. The valid ranges for longitude is -180.0 to +180.0 (West is negative, East is positive) inclusive.$$ *($$Expression$$, default: `$$$$`)* +$$lon$$:: $$If provided with a lat parameter the available trend locations will be sorted by distance, nearest to the furthest, to the co-ordinate pair. The valid ranges for longitude is -180.0 to +180.0 (West is negative, East is positive) inclusive.$$ *($$Expression$$, default: `$$$$`)* === twitter.trend -$$location-id$$:: $$The Yahoo! Where On Earth ID of the location to return trending information for. Global information is available by using 1 as the WOEID.$$ *($$Expression$$, default: `$$payload$$`)* +$$location-id$$:: $$The Yahoo! Where On Earth ID of the location to return trending information for. Global information is available by using 1 as the WOEID.$$ *($$Expression$$, default: `$$$$`)* $$trend-query-type$$:: $$$$ *($$TrendQueryType$$, default: `$$$$`, possible values: `trend`,`trendLocation`)* //end::configuration-properties[] diff --git a/applications/processor/twitter-trend-processor/pom.xml b/applications/processor/twitter-trend-processor/pom.xml index b3238de7..d983c1b7 100644 --- a/applications/processor/twitter-trend-processor/pom.xml +++ b/applications/processor/twitter-trend-processor/pom.xml @@ -18,7 +18,7 @@ org.springframework.cloud.fn - twitter-function + spring-twitter-function org.springframework.boot @@ -28,13 +28,6 @@ org.mock-server mockserver-netty - ${mockserver.version} - test - - - org.mock-server - mockserver-client-java - ${mockserver.version} test @@ -61,14 +54,14 @@ twitter-trend processor ${project.version} - org.springframework.cloud.fn.twitter.trend.TwitterTrendFunctionConfiguration.class + AUTOCONFIGURATION twitterTrendFunction org.springframework.cloud.fn - twitter-function + spring-twitter-function diff --git a/applications/processor/twitter-trend-processor/src/test/java/org/springframework/cloud/stream/app/processor/twitter/trend/TwitterTrendProcessorIntegrationTests.java b/applications/processor/twitter-trend-processor/src/test/java/org/springframework/cloud/stream/app/processor/twitter/trend/TwitterTrendProcessorIntegrationTests.java index 723027e3..94a968c4 100644 --- a/applications/processor/twitter-trend-processor/src/test/java/org/springframework/cloud/stream/app/processor/twitter/trend/TwitterTrendProcessorIntegrationTests.java +++ b/applications/processor/twitter-trend-processor/src/test/java/org/springframework/cloud/stream/app/processor/twitter/trend/TwitterTrendProcessorIntegrationTests.java @@ -18,7 +18,6 @@ package org.springframework.cloud.stream.app.processor.twitter.trend; import java.nio.charset.StandardCharsets; import java.time.Duration; -import java.util.concurrent.TimeUnit; import java.util.function.Function; import org.junit.jupiter.api.AfterAll; @@ -36,17 +35,14 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; import org.springframework.cloud.fn.common.twitter.util.TwitterTestUtils; -import org.springframework.cloud.fn.twitter.trend.TwitterTrendFunctionConfiguration; import org.springframework.cloud.stream.binder.test.InputDestination; import org.springframework.cloud.stream.binder.test.OutputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; import org.springframework.messaging.Message; import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.util.TestSocketUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.mockserver.matchers.Times.exactly; @@ -56,22 +52,20 @@ import static org.mockserver.verify.VerificationTimes.once; /** * @author Christian Tzolov + * @author Artem Bilan */ public class TwitterTrendProcessorIntegrationTests { - private static final String MOCK_SERVER_IP = "127.0.0.1"; - - private static final Integer MOCK_SERVER_PORT = TestSocketUtils.findAvailableTcpPort(); - private static ClientAndServer mockServer; private static MockServerClient mockClient; + private static HttpRequest trendsRequest; @BeforeAll public static void startServer() { - mockServer = ClientAndServer.startClientAndServer(MOCK_SERVER_PORT); - mockClient = new MockServerClient(MOCK_SERVER_IP, MOCK_SERVER_PORT); + mockServer = ClientAndServer.startClientAndServer(); + mockClient = new MockServerClient("localhost", mockServer.getPort()); trendsRequest = setExpectation(request() .withMethod("GET") @@ -91,6 +85,7 @@ public class TwitterTrendProcessorIntegrationTests { .web(WebApplicationType.NONE) .run("--spring.cloud.function.definition=twitterTrendFunction", + "--twitter.trend.trend-query-type=trend", "--twitter.trend.locationId='2972'", "--twitter.connection.rawJson=true", @@ -110,11 +105,6 @@ public class TwitterTrendProcessorIntegrationTests { assertThat(outputMessage).isNotNull(); mockClient.verify(trendsRequest, once()); - - //Resource trendsResource = new DefaultResourceLoader().getResource("classpath:/response/trends.json"); - //String expected = new String(StreamUtils.copyToByteArray(trendsResource.getInputStream()), StandardCharsets.UTF_8).trim(); - //String actual = new String(outputMessage.getPayload(), StandardCharsets.UTF_8); - //JSONAssert.assertEquals(expected, actual, JSONCompareMode.LENIENT); } } @@ -127,15 +117,14 @@ public class TwitterTrendProcessorIntegrationTests { new Header("Content-Type", "application/json; charset=utf-8"), new Header("Cache-Control", "public, max-age=86400")) .withBody(TwitterTestUtils.asString("classpath:/response/trends.json")) - .withDelay(TimeUnit.SECONDS, 1) ); return request; } @SpringBootConfiguration @EnableAutoConfiguration - @Import(TwitterTrendFunctionConfiguration.class) public static class TestTwitterTrendProcessorApplication { + @Bean @Primary public twitter4j.conf.Configuration twitterConfiguration2(TwitterConnectionProperties properties, @@ -143,11 +132,11 @@ public class TwitterTrendProcessorIntegrationTests { Function mockedConfiguration = toConfigurationBuilder.andThen( - new TwitterTestUtils().mockTwitterUrls( - String.format("http://%s:%s", MOCK_SERVER_IP, MOCK_SERVER_PORT))); + new TwitterTestUtils().mockTwitterUrls("http://localhost:" + mockServer.getPort())); return mockedConfiguration.apply(properties).build(); } + } } diff --git a/applications/sink/analytics-sink/pom.xml b/applications/sink/analytics-sink/pom.xml index 40c66001..2987b4d6 100644 --- a/applications/sink/analytics-sink/pom.xml +++ b/applications/sink/analytics-sink/pom.xml @@ -18,7 +18,7 @@ org.springframework.cloud.fn - analytics-consumer + spring-analytics-consumer org.awaitility @@ -55,13 +55,13 @@ analytics sink ${project.version} - org.springframework.cloud.fn.consumer.analytics.AnalyticsConsumerConfiguration.class + AUTOCONFIGURATION byteArrayTextToString|analyticsConsumer org.springframework.cloud.fn - analytics-consumer + spring-analytics-consumer diff --git a/applications/sink/cassandra-sink/README.adoc b/applications/sink/cassandra-sink/README.adoc index b9b64823..703bf16f 100644 --- a/applications/sink/cassandra-sink/README.adoc +++ b/applications/sink/cassandra-sink/README.adoc @@ -24,7 +24,7 @@ $$entity-base-packages$$:: $$Base packages to scan for entities annotated with T $$init-script$$:: $$Resource with CQL scripts (delimited by ';') to initialize keyspace schema.$$ *($$Resource$$, default: `$$$$`)* $$skip-ssl-validation$$:: $$Flag to validate the Servers' SSL certs.$$ *($$Boolean$$, default: `$$false$$`)* -=== cassandra +=== cassandra.consumer $$consistency-level$$:: $$The consistency level for write operation.$$ *($$ConsistencyLevel$$, default: `$$$$`)* $$ingest-query$$:: $$Ingest Cassandra query.$$ *($$String$$, default: `$$$$`)* diff --git a/applications/sink/cassandra-sink/pom.xml b/applications/sink/cassandra-sink/pom.xml index a85a7047..df604d71 100644 --- a/applications/sink/cassandra-sink/pom.xml +++ b/applications/sink/cassandra-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - cassandra-consumer + spring-cassandra-consumer @@ -43,15 +43,13 @@ cassandra sink ${project.version} - - org.springframework.cloud.fn.consumer.cassandra.CassandraConsumerConfiguration.class - - + AUTOCONFIGURATION + cassandraConsumer org.springframework.cloud.fn - cassandra-consumer + spring-cassandra-consumer diff --git a/applications/sink/elasticsearch-sink/README.adoc b/applications/sink/elasticsearch-sink/README.adoc index e7a63e4b..bfd69096 100644 --- a/applications/sink/elasticsearch-sink/README.adoc +++ b/applications/sink/elasticsearch-sink/README.adoc @@ -20,11 +20,11 @@ Properties grouped by prefix: === elasticsearch.consumer -$$async$$:: $$Indicates whether the indexing operation is async or not. By default indexing is done synchronously.$$ *($$Boolean$$, default: `$$false$$`)* +$$async$$:: $$Indicates whether the indexing operation is async or not. By default, indexing is done synchronously.$$ *($$Boolean$$, default: `$$false$$`)* $$batch-size$$:: $$Number of items to index for each request. It defaults to 1. For values greater than 1 bulk indexing API will be used.$$ *($$Integer$$, default: `$$1$$`)* $$group-timeout$$:: $$Timeout in milliseconds after which message group is flushed when bulk indexing is active. It defaults to -1, meaning no automatic flush of idle message groups occurs.$$ *($$Long$$, default: `$$-1$$`)* -$$id$$:: $$The id of the document to index. If set, the INDEX_ID header value overrides this property on a per message basis.$$ *($$Expression$$, default: `$$$$`)* -$$index$$:: $$Name of the index. If set, the INDEX_NAME header value overrides this property on a per message basis.$$ *($$String$$, default: `$$$$`)* +$$id$$:: $$The id of the document to index. If set, the INDEX_ID header value overrides this property on a per-message basis.$$ *($$Expression$$, default: `$$$$`)* +$$index$$:: $$Name of the index. If set, the INDEX_NAME header value overrides this property on a per-message basis.$$ *($$String$$, default: `$$$$`)* $$routing$$:: $$Indicates the shard to route to. If not provided, Elasticsearch will default to a hash of the document id.$$ *($$String$$, default: `$$$$`)* $$timeout-seconds$$:: $$Timeout for the shard to be available. If not set, it defaults to 1 minute set by the Elasticsearch client.$$ *($$Long$$, default: `$$0$$`)* diff --git a/applications/sink/elasticsearch-sink/pom.xml b/applications/sink/elasticsearch-sink/pom.xml index 01fa91c3..cf117e5a 100644 --- a/applications/sink/elasticsearch-sink/pom.xml +++ b/applications/sink/elasticsearch-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - elasticsearch-consumer + spring-elasticsearch-consumer org.awaitility @@ -72,14 +72,14 @@ elasticsearch sink ${project.version} - org.springframework.cloud.fn.consumer.elasticsearch.ElasticsearchConsumerConfiguration.class + AUTOCONFIGURATION byteArrayTextToString|elasticsearchConsumer org.springframework.cloud.fn - elasticsearch-consumer + spring-elasticsearch-consumer diff --git a/applications/sink/file-sink/README.adoc b/applications/sink/file-sink/README.adoc index 20487057..889495f5 100644 --- a/applications/sink/file-sink/README.adoc +++ b/applications/sink/file-sink/README.adoc @@ -15,10 +15,10 @@ The file sink app writes each message it receives to a file. The `file-sink` has the following options: //tag::configuration-properties[] -$$file.consumer.binary$$:: $$A flag to indicate whether adding a newline after the write should be suppressed.$$ *($$Boolean$$, default: `$$false$$`)* +$$file.consumer.binary$$:: $$A flag to indicate whether adding a newline after the write operation should be suppressed.$$ *($$Boolean$$, default: `$$false$$`)* $$file.consumer.charset$$:: $$The charset to use when writing text content.$$ *($$String$$, default: `$$UTF-8$$`)* $$file.consumer.directory$$:: $$The parent directory of the target file.$$ *($$File$$, default: `$$$$`)* -$$file.consumer.directory-expression$$:: $$The expression to evaluate for the parent directory of the target file.$$ *($$String$$, default: `$$$$`)* +$$file.consumer.directory-expression$$:: $$The expression to evaluate for the parent directory of the target file.$$ *($$Expression$$, default: `$$$$`)* $$file.consumer.mode$$:: $$The FileExistsMode to use if the target file already exists.$$ *($$FileExistsMode$$, default: `$$$$`, possible values: `APPEND`,`APPEND_NO_FLUSH`,`FAIL`,`IGNORE`,`REPLACE`,`REPLACE_IF_MODIFIED`)* $$file.consumer.name$$:: $$The name of the target file.$$ *($$String$$, default: `$$file-consumer$$`)* $$file.consumer.name-expression$$:: $$The expression to evaluate for the name of the target file.$$ *($$String$$, default: `$$$$`)* diff --git a/applications/sink/file-sink/pom.xml b/applications/sink/file-sink/pom.xml index 9efc18a3..269f46f1 100644 --- a/applications/sink/file-sink/pom.xml +++ b/applications/sink/file-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - file-consumer + spring-file-consumer @@ -43,13 +43,13 @@ file sink ${project.version} - org.springframework.cloud.fn.consumer.file.FileConsumerConfiguration.class - + AUTOCONFIGURATION + fileConsumer org.springframework.cloud.fn - file-consumer + spring-file-consumer diff --git a/applications/sink/ftp-sink/README.adoc b/applications/sink/ftp-sink/README.adoc index c6c38c69..3cda28c8 100644 --- a/applications/sink/ftp-sink/README.adoc +++ b/applications/sink/ftp-sink/README.adoc @@ -37,14 +37,14 @@ Properties grouped by prefix: === ftp.consumer -$$auto-create-dir$$:: $$Whether or not to create the remote directory.$$ *($$Boolean$$, default: `$$true$$`)* +$$auto-create-dir$$:: $$Whether to create the remote directory.$$ *($$Boolean$$, default: `$$true$$`)* $$filename-expression$$:: $$A SpEL expression to generate the remote file name.$$ *($$String$$, default: `$$$$`)* $$mode$$:: $$Action to take if the remote file already exists.$$ *($$FileExistsMode$$, default: `$$$$`, possible values: `APPEND`,`APPEND_NO_FLUSH`,`FAIL`,`IGNORE`,`REPLACE`,`REPLACE_IF_MODIFIED`)* $$remote-dir$$:: $$The remote FTP directory.$$ *($$String$$, default: `$$/$$`)* $$remote-file-separator$$:: $$The remote file separator.$$ *($$String$$, default: `$$/$$`)* $$temporary-remote-dir$$:: $$A temporary directory where the file will be written if '#isUseTemporaryFilename()' is true.$$ *($$String$$, default: `$$/$$`)* $$tmp-file-suffix$$:: $$The suffix to use while the transfer is in progress.$$ *($$String$$, default: `$$.tmp$$`)* -$$use-temporary-filename$$:: $$Whether or not to write to a temporary file and rename.$$ *($$Boolean$$, default: `$$true$$`)* +$$use-temporary-filename$$:: $$Whether to write to a temporary file and rename.$$ *($$Boolean$$, default: `$$true$$`)* === ftp.factory diff --git a/applications/sink/ftp-sink/pom.xml b/applications/sink/ftp-sink/pom.xml index f5ad426e..6f417a0e 100644 --- a/applications/sink/ftp-sink/pom.xml +++ b/applications/sink/ftp-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - ftp-consumer + spring-ftp-consumer @@ -43,12 +43,13 @@ ftp sink ${project.version} - org.springframework.cloud.fn.consumer.ftp.FtpConsumerConfiguration.class + AUTOCONFIGURATION + ftpConsumer org.springframework.cloud.fn - ftp-consumer + spring-ftp-consumer diff --git a/applications/sink/jdbc-sink/pom.xml b/applications/sink/jdbc-sink/pom.xml index e388ff35..e8df6b76 100644 --- a/applications/sink/jdbc-sink/pom.xml +++ b/applications/sink/jdbc-sink/pom.xml @@ -18,7 +18,7 @@ org.springframework.cloud.fn - jdbc-consumer + spring-jdbc-consumer com.h2database @@ -54,12 +54,13 @@ jdbc sink ${project.version} - org.springframework.cloud.fn.consumer.jdbc.JdbcConsumerConfiguration.class + AUTOCONFIGURATION + jdbcConsumer org.springframework.cloud.fn - jdbc-consumer + spring-jdbc-consumer diff --git a/applications/sink/kafka-sink/README.adoc b/applications/sink/kafka-sink/README.adoc index 52f337c4..90638632 100644 --- a/applications/sink/kafka-sink/README.adoc +++ b/applications/sink/kafka-sink/README.adoc @@ -51,6 +51,7 @@ $$value-serializer$$:: $$Serializer class for values.$$ *($$Class$$, default: === spring.kafka.template $$default-topic$$:: $$Default topic to which messages are sent.$$ *($$String$$, default: `$$$$`)* +$$observation-enabled$$:: $$Whether to enable observation.$$ *($$Boolean$$, default: `$$false$$`)* $$transaction-id-prefix$$:: $$Transaction id prefix, override the transaction id prefix in the producer factory.$$ *($$String$$, default: `$$$$`)* //end::configuration-properties[] diff --git a/applications/sink/kafka-sink/pom.xml b/applications/sink/kafka-sink/pom.xml index 99588869..5bcd294f 100644 --- a/applications/sink/kafka-sink/pom.xml +++ b/applications/sink/kafka-sink/pom.xml @@ -19,7 +19,7 @@ org.springframework.cloud.fn - kafka-publisher + spring-kafka-publisher diff --git a/applications/sink/kafka-sink/src/test/java/org/springframework/cloud/stream/app/sink/kafka/KafkaSinkTests.java b/applications/sink/kafka-sink/src/test/java/org/springframework/cloud/stream/app/sink/kafka/KafkaSinkTests.java index 2416e8eb..21d51670 100644 --- a/applications/sink/kafka-sink/src/test/java/org/springframework/cloud/stream/app/sink/kafka/KafkaSinkTests.java +++ b/applications/sink/kafka-sink/src/test/java/org/springframework/cloud/stream/app/sink/kafka/KafkaSinkTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2023 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -46,7 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat; "kafka.publisher.topic=" + KafkaSinkTests.TEST_TOPIC, "kafka.publisher.mappedHeaders=mapped" }) -@EmbeddedKafka(bootstrapServersProperty = "spring.kafka.bootstrap-servers") +@EmbeddedKafka(kraft = false) @DirtiesContext public class KafkaSinkTests { diff --git a/applications/sink/log-sink/README.adoc b/applications/sink/log-sink/README.adoc index 44b7671e..75d217a8 100644 --- a/applications/sink/log-sink/README.adoc +++ b/applications/sink/log-sink/README.adoc @@ -13,9 +13,9 @@ The **$$log$$** $$sink$$ has the following options: //tag::configuration-properties[] -$$log.expression$$:: $$A SpEL expression (against the incoming message) to evaluate as the logged message.$$ *($$String$$, default: `$$payload$$`)* -$$log.level$$:: $$The level at which to log messages.$$ *($$Level$$, default: `$$$$`, possible values: `FATAL`,`ERROR`,`WARN`,`INFO`,`DEBUG`,`TRACE`)* -$$log.name$$:: $$The name of the logger to use.$$ *($$String$$, default: `$$$$`)* +$$log.consumer.expression$$:: $$A SpEL expression (against the incoming message) to evaluate as the logged message.$$ *($$String$$, default: `$$payload$$`)* +$$log.consumer.level$$:: $$The level at which to log messages.$$ *($$Level$$, default: `$$$$`, possible values: `FATAL`,`ERROR`,`WARN`,`INFO`,`DEBUG`,`TRACE`)* +$$log.consumer.name$$:: $$The name of the logger to use.$$ *($$String$$, default: `$$$$`)* //end::configuration-properties[] //end::ref-doc[] diff --git a/applications/sink/log-sink/pom.xml b/applications/sink/log-sink/pom.xml index 2f7907f4..44e004d1 100644 --- a/applications/sink/log-sink/pom.xml +++ b/applications/sink/log-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - log-consumer + spring-log-consumer org.awaitility @@ -54,14 +54,14 @@ log sink ${project.version} - org.springframework.cloud.fn.consumer.log.LogConsumerConfiguration.class + AUTOCONFIGURATION byteArrayTextToString|logConsumer org.springframework.cloud.fn - log-consumer + spring-log-consumer diff --git a/applications/sink/mongodb-sink/pom.xml b/applications/sink/mongodb-sink/pom.xml index d0fc4597..34f41839 100644 --- a/applications/sink/mongodb-sink/pom.xml +++ b/applications/sink/mongodb-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - mongodb-consumer + spring-mongodb-consumer io.projectreactor @@ -48,14 +48,13 @@ mongodb sink ${project.version} - org.springframework.cloud.fn.consumer.mongo.MongoDbConsumerConfiguration.class - + AUTOCONFIGURATION byteArrayTextToString|mongodbConsumer org.springframework.cloud.fn - mongodb-consumer + spring-mongodb-consumer org.springframework.cloud.fn diff --git a/applications/sink/mqtt-sink/README.adoc b/applications/sink/mqtt-sink/README.adoc index fc8fd079..ebdaa5a2 100644 --- a/applications/sink/mqtt-sink/README.adoc +++ b/applications/sink/mqtt-sink/README.adoc @@ -30,12 +30,12 @@ $$username$$:: $$the username to use when connecting to the broker.$$ *($$String === mqtt.consumer -$$async$$:: $$whether or not to use async sends.$$ *($$Boolean$$, default: `$$false$$`)* -$$charset$$:: $$the charset used to convert a String payload to byte[].$$ *($$String$$, default: `$$UTF-8$$`)* -$$client-id$$:: $$identifies the client.$$ *($$String$$, default: `$$stream.client.id.sink$$`)* -$$qos$$:: $$the quality of service to use.$$ *($$Integer$$, default: `$$1$$`)* -$$retained$$:: $$whether to set the 'retained' flag.$$ *($$Boolean$$, default: `$$false$$`)* -$$topic$$:: $$the topic to which the sink will publish.$$ *($$String$$, default: `$$stream.mqtt$$`)* +$$async$$:: $$Whether to use async sends.$$ *($$Boolean$$, default: `$$false$$`)* +$$charset$$:: $$The charset used to convert a String payload to byte[].$$ *($$String$$, default: `$$UTF-8$$`)* +$$client-id$$:: $$Identifies the client.$$ *($$String$$, default: `$$stream.client.id.sink$$`)* +$$qos$$:: $$The quality of service to use.$$ *($$Integer$$, default: `$$1$$`)* +$$retained$$:: $$Whether to set the 'retained' flag.$$ *($$Boolean$$, default: `$$false$$`)* +$$topic$$:: $$The topic to which the sink will publish.$$ *($$String$$, default: `$$stream.mqtt$$`)* //end::configuration-properties[] //end::ref-doc[] diff --git a/applications/sink/mqtt-sink/pom.xml b/applications/sink/mqtt-sink/pom.xml index 4a751ded..bc3f46c6 100644 --- a/applications/sink/mqtt-sink/pom.xml +++ b/applications/sink/mqtt-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - mqtt-consumer + spring-mqtt-consumer org.testcontainers @@ -49,13 +49,13 @@ mqtt sink ${project.version} - org.springframework.cloud.fn.consumer.mqtt.MqttConsumerConfiguration.class - + AUTOCONFIGURATION + mqttConsumer org.springframework.cloud.fn - mqtt-consumer + spring-mqtt-consumer diff --git a/applications/sink/pgcopy-sink/pom.xml b/applications/sink/pgcopy-sink/pom.xml index 037e5dc4..b2aafc3d 100644 --- a/applications/sink/pgcopy-sink/pom.xml +++ b/applications/sink/pgcopy-sink/pom.xml @@ -28,11 +28,6 @@ postgresql compile - - org.springframework.cloud - spring-cloud-stream-test-binder - test - diff --git a/applications/sink/rabbit-sink/README.adoc b/applications/sink/rabbit-sink/README.adoc index 70a8cc00..93b26eae 100644 --- a/applications/sink/rabbit-sink/README.adoc +++ b/applications/sink/rabbit-sink/README.adoc @@ -13,14 +13,13 @@ The **$$rabbit$$** $$sink$$ has the following options: Properties grouped by prefix: -=== rabbit +=== rabbit.consumer $$converter-bean-name$$:: $$The bean name for a custom message converter; if omitted, a SimpleMessageConverter is used. If 'jsonConverter', a Jackson2JsonMessageConverter bean will be created for you.$$ *($$String$$, default: `$$$$`)* $$exchange$$:: $$Exchange name - overridden by exchangeNameExpression, if supplied.$$ *($$String$$, default: `$$$$`)* $$exchange-expression$$:: $$A SpEL expression that evaluates to an exchange name.$$ *($$Expression$$, default: `$$$$`)* -$$headers-mapped-last$$:: $$When mapping headers for the outbound message, determine whether the headers are mapped before the message is converted, or afterwards.$$ *($$Boolean$$, default: `$$true$$`)* +$$headers-mapped-last$$:: $$When mapping headers for the outbound message, determine whether the headers are mapped before the message is converted, or afterward.$$ *($$Boolean$$, default: `$$true$$`)* $$mapped-request-headers$$:: $$Headers that will be mapped.$$ *($$String[]$$, default: `$$[*]$$`)* -$$own-connection$$:: $$When true, use a separate connection based on the boot properties.$$ *($$Boolean$$, default: `$$false$$`)* $$persistent-delivery-mode$$:: $$Default delivery mode when 'amqp_deliveryMode' header is not present, true for PERSISTENT.$$ *($$Boolean$$, default: `$$false$$`)* $$routing-key$$:: $$Routing key - overridden by routingKeyExpression, if supplied.$$ *($$String$$, default: `$$$$`)* $$routing-key-expression$$:: $$A SpEL expression that evaluates to a routing key.$$ *($$Expression$$, default: `$$$$`)* @@ -32,6 +31,7 @@ $$addresses$$:: $$Comma-separated list of addresses to which the client should c $$channel-rpc-timeout$$:: $$Continuation timeout for RPC calls in channels. Set it to zero to wait forever.$$ *($$Duration$$, default: `$$10m$$`)* $$connection-timeout$$:: $$Connection timeout. Set it to zero to wait forever.$$ *($$Duration$$, default: `$$$$`)* $$host$$:: $$RabbitMQ host. Ignored if an address is set.$$ *($$String$$, default: `$$localhost$$`)* +$$max-inbound-message-body-size$$:: $$Maximum size of the body of inbound (received) messages.$$ *($$DataSize$$, default: `$$64MB$$`)* $$password$$:: $$Login to authenticate against the broker.$$ *($$String$$, default: `$$guest$$`)* $$port$$:: $$RabbitMQ port. Ignored if an address is set. Default to 5672, or 5671 if SSL is enabled.$$ *($$Integer$$, default: `$$$$`)* $$publisher-confirm-type$$:: $$Type of publisher confirms to use.$$ *($$ConfirmType$$, default: `$$$$`, possible values: `SIMPLE`,`CORRELATED`,`NONE`)* diff --git a/applications/sink/rabbit-sink/pom.xml b/applications/sink/rabbit-sink/pom.xml index 36aa64f6..50e248ef 100644 --- a/applications/sink/rabbit-sink/pom.xml +++ b/applications/sink/rabbit-sink/pom.xml @@ -27,14 +27,9 @@ org.springframework.cloud.fn - rabbit-consumer + spring-rabbit-consumer - org.springframework.cloud - spring-cloud-stream-test-binder - test - - org.testcontainers testcontainers ${testcontainers.version} @@ -76,13 +71,13 @@ rabbit sink ${project.version} - org.springframework.cloud.fn.consumer.rabbit.RabbitConsumerConfiguration.class - + AUTOCONFIGURATION + rabbitConsumer org.springframework.cloud.fn - rabbit-consumer + spring-rabbit-consumer diff --git a/applications/sink/redis-sink/README.adoc b/applications/sink/redis-sink/README.adoc index ea07a136..7ecf5ce2 100644 --- a/applications/sink/redis-sink/README.adoc +++ b/applications/sink/redis-sink/README.adoc @@ -14,11 +14,11 @@ Properties grouped by prefix: === redis.consumer $$key$$:: $$A literal key name to use when storing to a key.$$ *($$String$$, default: `$$$$`)* -$$key-expression$$:: $$A SpEL expression to use for storing to a key.$$ *($$String$$, default: `$$$$`)* +$$key-expression$$:: $$A SpEL expression to use for storing to a key.$$ *($$Expression$$, default: `$$$$`)* $$queue$$:: $$A literal queue name to use when storing in a queue.$$ *($$String$$, default: `$$$$`)* -$$queue-expression$$:: $$A SpEL expression to use for queue.$$ *($$String$$, default: `$$$$`)* +$$queue-expression$$:: $$A SpEL expression to use for queue.$$ *($$Expression$$, default: `$$$$`)* $$topic$$:: $$A literal topic name to use when publishing to a topic.$$ *($$String$$, default: `$$$$`)* -$$topic-expression$$:: $$A SpEL expression to use for topic.$$ *($$String$$, default: `$$$$`)* +$$topic-expression$$:: $$A SpEL expression to use for topic.$$ *($$Expression$$, default: `$$$$`)* === spring.data.redis diff --git a/applications/sink/redis-sink/pom.xml b/applications/sink/redis-sink/pom.xml index eb9585b7..1bff70bb 100644 --- a/applications/sink/redis-sink/pom.xml +++ b/applications/sink/redis-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - redis-consumer + spring-redis-consumer @@ -79,13 +79,13 @@ redis sink ${project.version} - org.springframework.cloud.fn.consumer.redis.RedisConsumerConfiguration.class - + AUTOCONFIGURATION + redisConsumer org.springframework.cloud.fn - redis-consumer + spring-redis-consumer diff --git a/applications/sink/redis-sink/src/test/java/org/springframework/cloud/stream/app/sink/redis/RedisSinkTests.java b/applications/sink/redis-sink/src/test/java/org/springframework/cloud/stream/app/sink/redis/RedisSinkTests.java index f89e7c3d..7c05255c 100644 --- a/applications/sink/redis-sink/src/test/java/org/springframework/cloud/stream/app/sink/redis/RedisSinkTests.java +++ b/applications/sink/redis-sink/src/test/java/org/springframework/cloud/stream/app/sink/redis/RedisSinkTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 the original author or authors. + * Copyright 2020-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,12 +24,10 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.cloud.fn.consumer.redis.RedisConsumerConfiguration; import org.springframework.cloud.fn.consumer.redis.RedisTestContainerSupport; import org.springframework.cloud.stream.binder.test.InputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.Import; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.support.collections.DefaultRedisList; import org.springframework.data.redis.support.collections.RedisList; @@ -47,32 +45,30 @@ public class RedisSinkTests implements RedisTestContainerSupport { @Test public void testRedisSink() { + String key = "foo"; try (ConfigurableApplicationContext context = new SpringApplicationBuilder( TestChannelBinderConfiguration .getCompleteConfiguration(RedisSinkTestApplication.class)) .web(WebApplicationType.NONE) .run("--spring.cloud.function.definition=redisConsumer", + "--spring.cloud.stream.bindings.redisConsumer-in-0.consumer.use-native-decoding=true", "--spring.data.redis.url=" + RedisTestContainerSupport.getUri(), - "--redis.consumer.key=foo")) { + "--redis.consumer.key=" + key)) { - //Setup - String key = "foo"; - - final StringRedisTemplate redisTemplate = context.getBean(StringRedisTemplate.class); + StringRedisTemplate redisTemplate = context.getBean(StringRedisTemplate.class); redisTemplate.delete(key); - RedisList redisList = new DefaultRedisList<>(key, redisTemplate); List list = new ArrayList<>(); list.add("Manny"); list.add("Moe"); list.add("Jack"); - //Execute Message> message = new GenericMessage<>(list); InputDestination source = context.getBean(InputDestination.class); source.send(message); + RedisList redisList = new DefaultRedisList<>(key, redisTemplate); assertThat(redisList.size()).isEqualTo(3); assertThat(redisList.get(0)).isEqualTo("Manny"); assertThat(redisList.get(1)).isEqualTo("Moe"); @@ -81,7 +77,6 @@ public class RedisSinkTests implements RedisTestContainerSupport { } @SpringBootApplication - @Import(RedisConsumerConfiguration.class) public static class RedisSinkTestApplication { } } diff --git a/applications/sink/router-sink/pom.xml b/applications/sink/router-sink/pom.xml index 0c1ece0e..bd92aeb6 100644 --- a/applications/sink/router-sink/pom.xml +++ b/applications/sink/router-sink/pom.xml @@ -54,7 +54,7 @@ org.springframework.cloud.fn - payload-converter-function + spring-payload-converter-function org.springframework.boot diff --git a/applications/sink/router-sink/src/main/java/org/springframework/cloud/stream/app/sink/router/RouterSinkConfiguration.java b/applications/sink/router-sink/src/main/java/org/springframework/cloud/stream/app/sink/router/RouterSinkConfiguration.java index 836dde29..6ecf7423 100644 --- a/applications/sink/router-sink/src/main/java/org/springframework/cloud/stream/app/sink/router/RouterSinkConfiguration.java +++ b/applications/sink/router-sink/src/main/java/org/springframework/cloud/stream/app/sink/router/RouterSinkConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2023 the original author or authors. + * Copyright 2016-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,6 +36,7 @@ import org.springframework.integration.router.AbstractMappingMessageRouter; import org.springframework.integration.router.AbstractMessageRouter; import org.springframework.integration.router.ExpressionEvaluatingRouter; import org.springframework.integration.router.MethodInvokingRouter; +import org.springframework.integration.scripting.dsl.ScriptSpec; import org.springframework.integration.scripting.dsl.Scripts; import org.springframework.lang.Nullable; import org.springframework.messaging.Message; @@ -93,12 +94,11 @@ public class RouterSinkConfiguration { @Bean @ConditionalOnProperty("router.script") - public MessageProcessor scriptProcessor() { + public ScriptSpec scriptProcessor() { return Scripts.processor(this.properties.getScript()) .lang("groovy") .refreshCheckDelay(this.properties.getRefreshDelay()) - .variables(obtainScriptVariables(this.properties)) - .get(); + .variables(obtainScriptVariables(this.properties)); } private static Map obtainScriptVariables(RouterSinkProperties properties) { diff --git a/applications/sink/rsocket-sink/pom.xml b/applications/sink/rsocket-sink/pom.xml index 7aaebde9..47a77202 100644 --- a/applications/sink/rsocket-sink/pom.xml +++ b/applications/sink/rsocket-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - rsocket-consumer + spring-rsocket-consumer io.projectreactor @@ -53,12 +53,13 @@ rsocket sink ${project.version} - org.springframework.cloud.fn.consumer.rsocket.RsocketConsumerConfiguration.class + AUTOCONFIGURATION + rsocketConsumer org.springframework.cloud.fn - rsocket-consumer + spring-rsocket-consumer diff --git a/applications/sink/rsocket-sink/src/test/java/org/springframework/cloud/stream/app/rsocket/sink/RSocketSinkTests.java b/applications/sink/rsocket-sink/src/test/java/org/springframework/cloud/stream/app/rsocket/sink/RSocketSinkTests.java index 185166e9..8524eaa6 100644 --- a/applications/sink/rsocket-sink/src/test/java/org/springframework/cloud/stream/app/rsocket/sink/RSocketSinkTests.java +++ b/applications/sink/rsocket-sink/src/test/java/org/springframework/cloud/stream/app/rsocket/sink/RSocketSinkTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2020 the original author or authors. + * Copyright 2020-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,13 +16,11 @@ package org.springframework.cloud.stream.app.rsocket.sink; -import java.util.function.Function; +import java.time.Duration; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; -import reactor.core.publisher.ReplayProcessor; +import reactor.core.publisher.Sinks; import reactor.test.StepVerifier; import org.springframework.beans.factory.annotation.Autowired; @@ -36,11 +34,9 @@ import org.springframework.cloud.fn.consumer.rsocket.RsocketConsumerConfiguratio import org.springframework.cloud.stream.binder.test.InputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Import; import org.springframework.integration.support.MessageBuilder; import org.springframework.messaging.Message; import org.springframework.messaging.handler.annotation.MessageMapping; -import org.springframework.messaging.support.GenericMessage; import org.springframework.stereotype.Controller; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.util.ReflectionTestUtils; @@ -48,7 +44,7 @@ import org.springframework.test.util.ReflectionTestUtils; /** * @author Soby Chacko */ -@SpringBootTest(properties = {"spring.rsocket.server.port=0"}, classes = RSocketSinkTests.RSocketserverApplication.class) +@SpringBootTest(properties = {"spring.rsocket.server.port=0"}, classes = RSocketSinkTests.RSocketServerApplication.class) @DirtiesContext public class RSocketSinkTests { @@ -71,15 +67,11 @@ public class RSocketSinkTests { final int port = server.address().getPort(); applicationContextRunner.withPropertyValues( - "spring.cloud.function.definition=rsocketConsumer", - "rsocket.consumer.port=" + port, - "rsocket.consumer.route=test-route") + "spring.cloud.function.definition=rsocketFunctionConsumer", + "rsocket.consumer.port=" + port, + "rsocket.consumer.route=test-route") .run(context -> { - Function>, Mono> rsocketConsumer = context.getBean("rsocketConsumer", Function.class); - rsocketConsumer.apply(Flux.just(new GenericMessage<>("Hello RSocket"))) - .subscribe(); - - final StepVerifier stepVerifier = StepVerifier.create(RSocketserverApplication.fireForgetPayloads) + final StepVerifier stepVerifier = StepVerifier.create(RSocketServerApplication.fireForgetPayloads.asMono()) .expectNext("Hello RSocket") .thenCancel() .verifyLater(); @@ -88,25 +80,24 @@ public class RSocketSinkTests { InputDestination source = context.getBean(InputDestination.class); source.send(message); - stepVerifier.verify(); + stepVerifier.verify(Duration.ofSeconds(10)); }); } - @EnableAutoConfiguration + @EnableAutoConfiguration(exclude = RsocketConsumerConfiguration.class) @SpringBootConfiguration @Controller - static class RSocketserverApplication { - static final ReplayProcessor fireForgetPayloads = ReplayProcessor.create(); + static class RSocketServerApplication { + static final Sinks.One fireForgetPayloads = Sinks.one(); @MessageMapping("test-route") void someMethod(String payload) { - this.fireForgetPayloads.onNext(payload); + this.fireForgetPayloads.tryEmitValue(payload); } } @EnableAutoConfiguration @SpringBootConfiguration - @Import(RsocketConsumerConfiguration.class) static class RsocketSinkTestApplication { } diff --git a/applications/sink/s3-sink/README.adoc b/applications/sink/s3-sink/README.adoc index dbf1bc2d..6ec4d503 100644 --- a/applications/sink/s3-sink/README.adoc +++ b/applications/sink/s3-sink/README.adoc @@ -44,6 +44,7 @@ $$static$$:: $$$$ *($$String$$, default: `$$$$`)* $$accelerate-mode-enabled$$:: $$Option to enable using the accelerate endpoint when accessing S3. Accelerate endpoints allow faster transfer of objects by using Amazon CloudFront's globally distributed edge locations.$$ *($$Boolean$$, default: `$$$$`)* $$checksum-validation-enabled$$:: $$Option to disable doing a validation of the checksum of an object stored in S3.$$ *($$Boolean$$, default: `$$$$`)* $$chunked-encoding-enabled$$:: $$Option to enable using chunked encoding when signing the request payload for {@link software.amazon.awssdk.services.s3.model.PutObjectRequest} and {@link software.amazon.awssdk.services.s3.model.UploadPartRequest}.$$ *($$Boolean$$, default: `$$$$`)* +$$cross-region-enabled$$:: $$Enables cross-region bucket access.$$ *($$Boolean$$, default: `$$$$`)* $$endpoint$$:: $$Overrides the default endpoint.$$ *($$URI$$, default: `$$$$`)* $$path-style-access-enabled$$:: $$Option to enable using path style access for accessing S3 objects instead of DNS style access. DNS style access is preferred as it will result in better load balancing when accessing S3.$$ *($$Boolean$$, default: `$$$$`)* $$region$$:: $$Overrides the default region.$$ *($$String$$, default: `$$$$`)* diff --git a/applications/sink/s3-sink/pom.xml b/applications/sink/s3-sink/pom.xml index c015855b..4d75ce7b 100644 --- a/applications/sink/s3-sink/pom.xml +++ b/applications/sink/s3-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - s3-consumer + spring-s3-consumer org.springframework.integration @@ -58,13 +58,13 @@ s3 sink ${project.version} - org.springframework.cloud.fn.consumer.s3.AwsS3ConsumerConfiguration.class - + AUTOCONFIGURATION + s3Consumer org.springframework.cloud.fn - s3-consumer + spring-s3-consumer diff --git a/applications/sink/s3-sink/src/test/java/org/springframework/cloud/stream/app/s3/sink/AwsS3SinkTests.java b/applications/sink/s3-sink/src/test/java/org/springframework/cloud/stream/app/s3/sink/AwsS3SinkTests.java index f47c2954..24be6bb9 100644 --- a/applications/sink/s3-sink/src/test/java/org/springframework/cloud/stream/app/s3/sink/AwsS3SinkTests.java +++ b/applications/sink/s3-sink/src/test/java/org/springframework/cloud/stream/app/s3/sink/AwsS3SinkTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2023 the original author or authors. + * Copyright 2016-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ package org.springframework.cloud.stream.app.s3.sink; import java.io.File; +import java.nio.ByteBuffer; import java.nio.file.Path; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CountDownLatch; @@ -40,7 +41,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.cloud.fn.consumer.s3.AwsS3ConsumerConfiguration; +import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.cloud.stream.binder.test.InputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.annotation.Bean; @@ -54,7 +55,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.willReturn; import static org.mockito.Mockito.atLeastOnce; -import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, @@ -62,6 +62,7 @@ import static org.mockito.Mockito.verify; "spring.cloud.aws.credentials.accessKey=" + AwsS3SinkTests.AWS_ACCESS_KEY, "spring.cloud.aws.credentials.secretKey=" + AwsS3SinkTests.AWS_SECRET_KEY, "spring.cloud.aws.region.static=" + AwsS3SinkTests.AWS_REGION, + "spring.cloud.aws.s3.endpoint=s3://test.endpoint", "s3.consumer.bucket=" + AwsS3SinkTests.S3_BUCKET, "s3.consumer.acl=PUBLIC_READ_WRITE"}) @DirtiesContext @@ -78,7 +79,7 @@ public class AwsS3SinkTests { @TempDir protected static Path temporaryRemoteFolder; - @Autowired + @MockBean private S3AsyncClient amazonS3; @Autowired @@ -95,8 +96,6 @@ public class AwsS3SinkTests { @BeforeEach public void setupTest() { - S3AsyncClient amazonS3 = spy(this.amazonS3); - willReturn(CompletableFuture.completedFuture(PutObjectResponse.builder().build())) .given(amazonS3) .putObject(any(PutObjectRequest.class), any(AsyncRequestBody.class)); @@ -133,7 +132,7 @@ public class AwsS3SinkTests { AsyncRequestBody asyncRequestBody = asyncRequestBodyArgumentCaptor.getValue(); StepVerifier.create(asyncRequestBody) - .assertNext(buffer -> assertThat(buffer.array()).isEmpty()) + .assertNext(buffer -> assertThat(buffer).isEqualTo(ByteBuffer.allocate(0))) .expectComplete() .verify(); @@ -141,7 +140,7 @@ public class AwsS3SinkTests { } @SpringBootApplication - @Import({AwsS3ConsumerConfiguration.class, TestChannelBinderConfiguration.class}) + @Import(TestChannelBinderConfiguration.class) public static class SampleConfiguration { @Bean diff --git a/applications/sink/sftp-sink/pom.xml b/applications/sink/sftp-sink/pom.xml index 71ec07df..9f05bf73 100644 --- a/applications/sink/sftp-sink/pom.xml +++ b/applications/sink/sftp-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - sftp-consumer + spring-sftp-consumer @@ -43,13 +43,13 @@ sftp sink ${project.version} - org.springframework.cloud.fn.consumer.sftp.SftpConsumerConfiguration.class - + AUTOCONFIGURATION + sftpConsumer org.springframework.cloud.fn - sftp-consumer + spring-sftp-consumer diff --git a/applications/sink/tcp-sink/README.adoc b/applications/sink/tcp-sink/README.adoc index 5f940b24..d0f1c51d 100644 --- a/applications/sink/tcp-sink/README.adoc +++ b/applications/sink/tcp-sink/README.adoc @@ -23,11 +23,11 @@ $$host$$:: $$The host to which this sink will connect.$$ *($$String$$, default: === tcp -$$nio$$:: $$Whether or not to use NIO.$$ *($$Boolean$$, default: `$$false$$`)* +$$nio$$:: $$Whether to use NIO.$$ *($$Boolean$$, default: `$$false$$`)* $$port$$:: $$The port on which to listen; 0 for the OS to choose a port.$$ *($$Integer$$, default: `$$1234$$`)* $$reverse-lookup$$:: $$Perform a reverse DNS lookup on the remote IP Address; if false, just the IP address is included in the message headers.$$ *($$Boolean$$, default: `$$false$$`)* $$socket-timeout$$:: $$The timeout (ms) before closing the socket when no data is received.$$ *($$Integer$$, default: `$$120000$$`)* -$$use-direct-buffers$$:: $$Whether or not to use direct buffers.$$ *($$Boolean$$, default: `$$false$$`)* +$$use-direct-buffers$$:: $$Whether to use direct buffers.$$ *($$Boolean$$, default: `$$false$$`)* //end::configuration-properties[] == Available Encoders diff --git a/applications/sink/tcp-sink/pom.xml b/applications/sink/tcp-sink/pom.xml index 93955b11..1a1551a5 100644 --- a/applications/sink/tcp-sink/pom.xml +++ b/applications/sink/tcp-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - tcp-consumer + spring-tcp-consumer @@ -43,12 +43,13 @@ tcp sink ${project.version} - org.springframework.cloud.fn.consumer.tcp.TcpConsumerConfiguration.class + AUTOCONFIGURATION + tcpConsumer org.springframework.cloud.fn - tcp-consumer + spring-tcp-consumer diff --git a/applications/sink/throughput-sink/README.adoc b/applications/sink/throughput-sink/README.adoc index b7589fa8..1a077a49 100644 --- a/applications/sink/throughput-sink/README.adoc +++ b/applications/sink/throughput-sink/README.adoc @@ -8,7 +8,7 @@ Sink that will count messages and log the observed throughput at a selected inte The **$$throughput$$** $$sink$$ has the following options: //tag::configuration-properties[] -$$throughput.report-every-ms$$:: $$how often to report.$$ *($$Integer$$, default: `$$$$`)* +$$throughput.report-every-ms$$:: $$how often to report.$$ *($$Integer$$, default: `$$1000$$`)* //end::configuration-properties[] //end::ref-doc[] diff --git a/applications/sink/twitter-message-sink/pom.xml b/applications/sink/twitter-message-sink/pom.xml index fbf1f4cf..1d456076 100644 --- a/applications/sink/twitter-message-sink/pom.xml +++ b/applications/sink/twitter-message-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - twitter-consumer + spring-twitter-consumer org.awaitility @@ -33,13 +33,6 @@ org.mock-server mockserver-netty - ${mockserver.version} - test - - - org.mock-server - mockserver-client-java - ${mockserver.version} test @@ -66,14 +59,14 @@ twitter-message sink ${project.version} - org.springframework.cloud.fn.consumer.twitter.message.TwitterMessageConsumerConfiguration.class - byteArrayTextToString|sendDirectMessageConsumer + AUTOCONFIGURATION + byteArrayTextToString|twitterSendMessageConsumer org.springframework.cloud.fn - twitter-consumer + spring-twitter-consumer diff --git a/applications/sink/twitter-message-sink/src/test/java/org/springframework/cloud/stream/app/sink/twitter/message/TwitterMessageSinkIntegrationTests.java b/applications/sink/twitter-message-sink/src/test/java/org/springframework/cloud/stream/app/sink/twitter/message/TwitterMessageSinkIntegrationTests.java index 736febcd..e09e924a 100644 --- a/applications/sink/twitter-message-sink/src/test/java/org/springframework/cloud/stream/app/sink/twitter/message/TwitterMessageSinkIntegrationTests.java +++ b/applications/sink/twitter-message-sink/src/test/java/org/springframework/cloud/stream/app/sink/twitter/message/TwitterMessageSinkIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2020 the original author or authors. + * Copyright 2020-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,15 +36,12 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; import org.springframework.cloud.fn.common.twitter.util.TwitterTestUtils; -import org.springframework.cloud.fn.consumer.twitter.message.TwitterMessageConsumerConfiguration; import org.springframework.cloud.stream.binder.test.InputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.util.TestSocketUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.mockserver.matchers.Times.unlimited; @@ -54,21 +51,18 @@ import static org.mockserver.verify.VerificationTimes.once; /** * @author Christian Tzolov + * @author Artem Bilan */ public class TwitterMessageSinkIntegrationTests { - private static final String MOCK_SERVER_IP = "127.0.0.1"; - - private static final Integer MOCK_SERVER_PORT = TestSocketUtils.findAvailableTcpPort(); - private static ClientAndServer mockServer; private static MockServerClient mockClient; @BeforeEach public void startMockServer() { - mockServer = ClientAndServer.startClientAndServer(MOCK_SERVER_PORT); - mockClient = new MockServerClient(MOCK_SERVER_IP, MOCK_SERVER_PORT); + mockServer = ClientAndServer.startClientAndServer(); + mockClient = new MockServerClient("localhost", mockServer.getPort()); mockClient .when( @@ -111,7 +105,7 @@ public class TwitterMessageSinkIntegrationTests { try (ConfigurableApplicationContext context = new SpringApplicationBuilder( TestChannelBinderConfiguration.getCompleteConfiguration(TestTwitterMessageSinkApplication.class)) .web(WebApplicationType.NONE) - .run("--spring.cloud.function.definition=byteArrayTextToString|sendDirectMessageConsumer", + .run("--spring.cloud.function.definition=byteArrayTextToString|twitterSendMessageConsumer", "--twitter.message.update.screenName='user666'", @@ -149,7 +143,7 @@ public class TwitterMessageSinkIntegrationTests { try (ConfigurableApplicationContext context = new SpringApplicationBuilder( TestChannelBinderConfiguration.getCompleteConfiguration(TestTwitterMessageSinkApplication.class)) .web(WebApplicationType.NONE) - .run("--spring.cloud.function.definition=byteArrayTextToString|sendDirectMessageConsumer", + .run("--spring.cloud.function.definition=byteArrayTextToString|twitterSendMessageConsumer", "--twitter.message.update.userId='1075751718749659136'", @@ -178,7 +172,7 @@ public class TwitterMessageSinkIntegrationTests { try (ConfigurableApplicationContext context = new SpringApplicationBuilder( TestChannelBinderConfiguration.getCompleteConfiguration(TestTwitterMessageSinkApplication.class)) .web(WebApplicationType.NONE) - .run("--spring.cloud.function.definition=byteArrayTextToString|sendDirectMessageConsumer", + .run("--spring.cloud.function.definition=byteArrayTextToString|twitterSendMessageConsumer", "--twitter.message.update.userId=headers['user']", "--twitter.message.update.text=payload.concat(\" with suffix \")", @@ -192,8 +186,8 @@ public class TwitterMessageSinkIntegrationTests { InputDestination source = context.getBean(InputDestination.class); assertThat(source).isNotNull(); - Map headers = Collections.singletonMap("user", "1075751718749659136"); - source.send(new GenericMessage("hello".getBytes(StandardCharsets.UTF_8), headers)); + Map headers = Collections.singletonMap("user", "1075751718749659136"); + source.send(new GenericMessage<>("hello".getBytes(StandardCharsets.UTF_8), headers)); mockClient.verify(request() .withMethod("POST") @@ -208,7 +202,6 @@ public class TwitterMessageSinkIntegrationTests { @SpringBootConfiguration @EnableAutoConfiguration - @Import(TwitterMessageConsumerConfiguration.class) public static class TestTwitterMessageSinkApplication { @Bean @@ -218,10 +211,11 @@ public class TwitterMessageSinkIntegrationTests { Function mockedConfiguration = toConfigurationBuilder.andThen( - new TwitterTestUtils().mockTwitterUrls( - String.format("http://%s:%s", MOCK_SERVER_IP, MOCK_SERVER_PORT))); + new TwitterTestUtils().mockTwitterUrls("http://localhost:" + mockServer.getPort())); return mockedConfiguration.apply(properties).build(); } + } + } diff --git a/applications/sink/twitter-update-sink/README.adoc b/applications/sink/twitter-update-sink/README.adoc index 076390d2..22a4cef0 100644 --- a/applications/sink/twitter-update-sink/README.adoc +++ b/applications/sink/twitter-update-sink/README.adoc @@ -21,9 +21,9 @@ Properties grouped by prefix: === twitter.update -$$attachment-url$$:: $$(SpEL expression) In order for a URL to not be counted in the text body of an extended Tweet, provide a URL as a Tweet attachment. This URL must be a Tweet permalink, or Direct Message deep link. Arbitrary, non-Twitter URLs must remain in the text text. URLs passed to the attachment_url parameter not matching either a Tweet permalink or Direct Message deep link will fail at Tweet creation and cause an exception.$$ *($$Expression$$, default: `$$$$`)* -$$display-coordinates$$:: $$(SpEL expression) Whether or not to put a pin on the exact coordinates a Tweet has been sent from.$$ *($$Expression$$, default: `$$$$`)* -$$in-reply-to-status-id$$:: $$(SpEL expression) The ID of an existing text that the update is in reply to. Note: This parameter will be ignored unless the author of the Tweet this parameter references is mentioned within the text text. Therefore, you must include @username, where username is the author of the referenced Tweet, within the update. When inReplyToStatusId is set the auto_populate_reply_metadata is automatically set as well. Later ensures that leading @mentions will be looked up from the original Tweet, and added to the new Tweet from there. This wil append @mentions into the metadata of an extended Tweet as a reply chain grows, until the limit on @mentions is reached. In cases where the original Tweet has been deleted, the reply will fail.$$ *($$Expression$$, default: `$$$$`)* +$$attachment-url$$:: $$(SpEL expression) In order for a URL to not be counted in the text body of an extended Tweet, provide a URL as a Tweet attachment. This URL must be a Tweet permalink, or Direct Message deep link. Arbitrary, non-Twitter URLs must remain in the text. URLs passed to the attachment_url parameter not matching either a Tweet permalink or Direct Message deep link will fail at Tweet creation and cause an exception.$$ *($$Expression$$, default: `$$$$`)* +$$display-coordinates$$:: $$(SpEL expression) Whether to put a pin on the exact coordinates a Tweet has been sent from.$$ *($$Expression$$, default: `$$$$`)* +$$in-reply-to-status-id$$:: $$(SpEL expression) The ID of an existing text that the update is in reply to. Note: This parameter will be ignored unless the author of the Tweet this parameter references is mentioned within the text. Therefore, you must include @username, where username is the author of the referenced Tweet, within the update. When inReplyToStatusId is set the auto_populate_reply_metadata is automatically set as well. Later ensures that leading @mentions will be looked up from the original Tweet, and added to the new Tweet from there. This wil append @mentions into the metadata of an extended Tweet as a reply chain grows, until the limit on @mentions is reached. In cases where the original Tweet has been deleted, the reply will fail.$$ *($$Expression$$, default: `$$$$`)* $$media-ids$$:: $$(SpEL expression) A comma-delimited list of media_ids to associate with the Tweet. You may include up to 4 photos or 1 animated GIF or 1 video in a Tweet. See Uploading Media for further details on uploading media.$$ *($$Expression$$, default: `$$$$`)* $$place-id$$:: $$(SpEL expression) A place in the world.$$ *($$Expression$$, default: `$$$$`)* $$text$$:: $$(SpEL expression) The text of the text update. URL encode as necessary. t.co link wrapping will affect character counts. Defaults to message's payload$$ *($$Expression$$, default: `$$payload$$`)* @@ -31,7 +31,7 @@ $$text$$:: $$(SpEL expression) The text of the text update. URL encode as necess === twitter.update.location $$lat$$:: $$The latitude of the location this Tweet refers to. This parameter will be ignored unless it is inside the range -90.0 to +90.0 (North is positive) inclusive. It will also be ignored if there is no corresponding long parameter.$$ *($$Expression$$, default: `$$$$`)* -$$lon$$:: $$The longitude of the location this Tweet refers to. The valid ranges for longitude are -180.0 to +180.0 (East is positive) inclusive. This parameter will be ignored if outside that range, if it is not a number, if geo_enabled is disabled, or if there no corresponding lat parameter.$$ *($$Expression$$, default: `$$$$`)* +$$lon$$:: $$The longitude of the location this Tweet refers to. The valid ranges for longitude are -180.0 to +180.0 (East is positive) inclusive. This parameter will be ignored if outside that range, if it is not a number, if geo_enabled is disabled, or if there is no corresponding lat parameter.$$ *($$Expression$$, default: `$$$$`)* //end::configuration-properties[] //end::ref-doc[] diff --git a/applications/sink/twitter-update-sink/pom.xml b/applications/sink/twitter-update-sink/pom.xml index b21721fb..e150c7b4 100644 --- a/applications/sink/twitter-update-sink/pom.xml +++ b/applications/sink/twitter-update-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - twitter-consumer + spring-twitter-consumer org.awaitility @@ -33,13 +33,6 @@ org.mock-server mockserver-netty - ${mockserver.version} - test - - - org.mock-server - mockserver-client-java - ${mockserver.version} test @@ -66,14 +59,14 @@ twitter-update sink ${project.version} - org.springframework.cloud.fn.consumer.twitter.status.update.TwitterUpdateConsumerConfiguration.class + AUTOCONFIGURATION byteArrayTextToString|twitterStatusUpdateConsumer org.springframework.cloud.fn - twitter-consumer + spring-twitter-consumer diff --git a/applications/sink/twitter-update-sink/src/test/java/org/springframework/cloud/stream/app/sink/twitter/update/TwitterUpdateSinkIntegrationTests.java b/applications/sink/twitter-update-sink/src/test/java/org/springframework/cloud/stream/app/sink/twitter/update/TwitterUpdateSinkIntegrationTests.java index 9ed84dd7..9b5e27a1 100644 --- a/applications/sink/twitter-update-sink/src/test/java/org/springframework/cloud/stream/app/sink/twitter/update/TwitterUpdateSinkIntegrationTests.java +++ b/applications/sink/twitter-update-sink/src/test/java/org/springframework/cloud/stream/app/sink/twitter/update/TwitterUpdateSinkIntegrationTests.java @@ -17,7 +17,6 @@ package org.springframework.cloud.stream.app.sink.twitter.update; import java.nio.charset.StandardCharsets; -import java.util.concurrent.TimeUnit; import java.util.function.Function; import org.junit.jupiter.api.AfterAll; @@ -34,16 +33,13 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; import org.springframework.cloud.fn.common.twitter.util.TwitterTestUtils; -import org.springframework.cloud.fn.consumer.twitter.status.update.TwitterUpdateConsumerConfiguration; import org.springframework.cloud.fn.consumer.twitter.status.update.TwitterUpdateConsumerProperties; import org.springframework.cloud.stream.binder.test.InputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.util.TestSocketUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.mockserver.matchers.Times.unlimited; @@ -53,21 +49,19 @@ import static org.mockserver.verify.VerificationTimes.once; /** * @author Christian Tzolov + * @author Artem Bilan */ public class TwitterUpdateSinkIntegrationTests { - private static final String MOCK_SERVER_IP = "127.0.0.1"; - - private static final Integer MOCK_SERVER_PORT = TestSocketUtils.findAvailableTcpPort(); - private static ClientAndServer mockServer; private static MockServerClient mockClient; @BeforeAll public static void startMockServer() { - mockServer = ClientAndServer.startClientAndServer(MOCK_SERVER_PORT); - mockClient = new MockServerClient(MOCK_SERVER_IP, MOCK_SERVER_PORT); + mockServer = ClientAndServer.startClientAndServer(); + mockClient = new MockServerClient("localhost", mockServer.getPort()); + mockClient .when( request().withMethod("POST").withPath("/statuses/update.json"), @@ -75,8 +69,7 @@ public class TwitterUpdateSinkIntegrationTests { .respond(response() .withStatusCode(200) .withHeader("Content-Type", "application/json; charset=utf-8") - .withBody(TwitterTestUtils.asString("classpath:/response/update_test_1.json")) - .withDelay(TimeUnit.SECONDS, 1)); + .withBody(TwitterTestUtils.asString("classpath:/response/update_test_1.json"))); } @AfterAll @@ -211,7 +204,6 @@ public class TwitterUpdateSinkIntegrationTests { @SpringBootConfiguration @EnableAutoConfiguration - @Import(TwitterUpdateConsumerConfiguration.class) public static class TestTwitterUpdateSinkApplication { @Bean @@ -221,10 +213,11 @@ public class TwitterUpdateSinkIntegrationTests { Function mockedConfiguration = toConfigurationBuilder.andThen( - new TwitterTestUtils().mockTwitterUrls( - String.format("http://%s:%s", MOCK_SERVER_IP, MOCK_SERVER_PORT))); + new TwitterTestUtils().mockTwitterUrls("http://localhost:" + mockServer.getPort())); return mockedConfiguration.apply(properties).build(); } + } + } diff --git a/applications/sink/wavefront-sink/pom.xml b/applications/sink/wavefront-sink/pom.xml index b862c686..77686418 100644 --- a/applications/sink/wavefront-sink/pom.xml +++ b/applications/sink/wavefront-sink/pom.xml @@ -17,11 +17,11 @@ org.springframework.cloud.fn - wavefront-consumer + spring-wavefront-consumer org.springframework.cloud.fn - function-test-support + spring-function-test-support test @@ -48,16 +48,14 @@ wavefront sink ${project.version} - - org.springframework.cloud.fn.consumer.wavefront.WavefrontConsumerConfiguration.class - + AUTOCONFIGURATION wavefrontConsumer org.springframework.cloud.fn - wavefront-consumer + spring-wavefront-consumer diff --git a/applications/sink/websocket-sink/README.adoc b/applications/sink/websocket-sink/README.adoc index 9a99b02e..7032ae0c 100644 --- a/applications/sink/websocket-sink/README.adoc +++ b/applications/sink/websocket-sink/README.adoc @@ -7,11 +7,11 @@ A simple Websocket Sink implementation. The following options are supported: //tag::configuration-properties[] -$$websocket.consumer.log-level$$:: $$the logLevel for netty channels. Default is WARN$$ *($$String$$, default: `$$$$`)* -$$websocket.consumer.path$$:: $$the path on which a WebsocketSink consumer needs to connect. Default is /websocket$$ *($$String$$, default: `$$/websocket$$`)* -$$websocket.consumer.port$$:: $$the port on which the Netty server listens. Default is 9292$$ *($$Integer$$, default: `$$9292$$`)* -$$websocket.consumer.ssl$$:: $$whether or not to create a {@link io.netty.handler.ssl.SslContext}.$$ *($$Boolean$$, default: `$$false$$`)* -$$websocket.consumer.threads$$:: $$the number of threads for the Netty {@link io.netty.channel.EventLoopGroup}. Default is 1$$ *($$Integer$$, default: `$$1$$`)* +$$websocket.consumer.log-level$$:: $$The logLevel for netty channels. Default is WARN$$ *($$String$$, default: `$$$$`)* +$$websocket.consumer.path$$:: $$The path on which a WebsocketSink consumer needs to connect. Default is /websocket$$ *($$String$$, default: `$$/websocket$$`)* +$$websocket.consumer.port$$:: $$The port on which the Netty server listens. Default is 9292$$ *($$Integer$$, default: `$$9292$$`)* +$$websocket.consumer.ssl$$:: $$Whether to create a {@link io.netty.handler.ssl.SslContext}.$$ *($$Boolean$$, default: `$$false$$`)* +$$websocket.consumer.threads$$:: $$The number of threads for the Netty {@link io.netty.channel.EventLoopGroup}. Default is 1$$ *($$Integer$$, default: `$$1$$`)* //end::configuration-properties[] == Examples diff --git a/applications/sink/websocket-sink/pom.xml b/applications/sink/websocket-sink/pom.xml index 68b4f59f..bfaf1298 100644 --- a/applications/sink/websocket-sink/pom.xml +++ b/applications/sink/websocket-sink/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - websocket-consumer + spring-websocket-consumer org.springframework.boot @@ -26,7 +26,7 @@ org.springframework.cloud.fn - function-test-support + spring-function-test-support test @@ -53,13 +53,13 @@ websocket sink ${project.version} - org.springframework.cloud.fn.consumer.websocket.WebsocketConsumerConfiguration.class - + AUTOCONFIGURATION + websocketConsumer org.springframework.cloud.fn - websocket-consumer + spring-websocket-consumer diff --git a/applications/sink/xmpp-sink/README.adoc b/applications/sink/xmpp-sink/README.adoc index 92d0bae3..82de01d0 100644 --- a/applications/sink/xmpp-sink/README.adoc +++ b/applications/sink/xmpp-sink/README.adoc @@ -29,8 +29,8 @@ $$chat-to$$:: $$XMPP handle to send message to.$$ *($$String$$, default: `$$$$`)* $$password$$:: $$The Password for the connected user.$$ *($$String$$, default: `$$$$`)* -$$port$$:: $$Port for connecting to the host. - Default Client Port: 5222$$ *($$Integer$$, default: `$$5222$$`)* -$$resource$$:: $$The Resource to bind to on the XMPP Host. - Can be empty, server will generate one if not set$$ *($$String$$, default: `$$$$`)* +$$port$$:: $$Port for connecting to the host. - Default Client Port: 5222$$ *($$Integer$$, default: `$$5222$$`)* +$$resource$$:: $$The Resource to bind to on the XMPP Host. - Can be empty, server will generate one if not set$$ *($$String$$, default: `$$$$`)* $$security-mode$$:: $$$$ *($$SecurityMode$$, default: `$$$$`, possible values: `required`,`ifpossible`,`disabled`)* $$service-name$$:: $$The Service Name to set for the XMPP Domain.$$ *($$String$$, default: `$$$$`)* $$subscription-mode$$:: $$$$ *($$SubscriptionMode$$, default: `$$$$`, possible values: `accept_all`,`reject_all`,`manual`)* diff --git a/applications/sink/xmpp-sink/pom.xml b/applications/sink/xmpp-sink/pom.xml index 647a1a5a..a1069495 100644 --- a/applications/sink/xmpp-sink/pom.xml +++ b/applications/sink/xmpp-sink/pom.xml @@ -20,7 +20,7 @@ org.springframework.cloud.fn - xmpp-consumer + spring-xmpp-consumer @@ -37,7 +37,7 @@ org.springframework.cloud.fn - function-test-support + spring-function-test-support ${project.version} test @@ -66,14 +66,13 @@ xmpp sink ${project.version} - org.springframework.cloud.fn.consumer.xmpp.XmppConsumerConfiguration.class - - + AUTOCONFIGURATION + xmppConsumer org.springframework.cloud.fn - xmpp-consumer + spring-xmpp-consumer org.springframework.cloud.stream.app diff --git a/applications/sink/zeromq-sink/pom.xml b/applications/sink/zeromq-sink/pom.xml index 5ba060ce..52a49665 100644 --- a/applications/sink/zeromq-sink/pom.xml +++ b/applications/sink/zeromq-sink/pom.xml @@ -20,7 +20,7 @@ org.springframework.cloud.fn - zeromq-consumer + spring-zeromq-consumer @@ -58,14 +58,13 @@ zeromq sink ${project.version} - org.springframework.cloud.fn.consumer.zeromq.ZeroMqConsumerConfiguration.class - - + AUTOCONFIGURATION + zeromqConsumer org.springframework.cloud.fn - zeromq-consumer + spring-zeromq-consumer org.springframework.cloud.stream.app diff --git a/applications/source/debezium-source/README.adoc b/applications/source/debezium-source/README.adoc index 26345051..4cb6fb3d 100644 --- a/applications/source/debezium-source/README.adoc +++ b/applications/source/debezium-source/README.adoc @@ -24,14 +24,14 @@ Properties grouped by prefix: === debezium $$debezium-native-configuration$$:: $$$$ *($$Properties$$, default: `$$$$`)* -$$header-format$$:: $${@link ChangeEvent} header format. Defaults to 'JSON'.$$ *($$DebeziumFormat$$, default: `$$$$`, possible values: `JSON`,`AVRO`,`PROTOBUF`)* $$offset-commit-policy$$:: $$The policy that defines when the offsets should be committed to offset storage.$$ *($$DebeziumOffsetCommitPolicy$$, default: `$$$$`, possible values: `ALWAYS`,`PERIODIC`,`DEFAULT`)* -$$payload-format$$:: $${@link ChangeEvent} Key and Payload formats. Defaults to 'JSON'.$$ *($$DebeziumFormat$$, default: `$$$$`, possible values: `JSON`,`AVRO`,`PROTOBUF`)* +$$payload-format$$:: $${@code io.debezium.engine.ChangeEvent} Key and Payload formats. Defaults to 'JSON'.$$ *($$DebeziumFormat$$, default: `$$$$`, possible values: `JSON`,`AVRO`,`PROTOBUF`)* $$properties$$:: $$Spring pass-trough wrapper for debezium configuration properties. All properties with a 'debezium.properties.*' prefix are native Debezium properties.$$ *($$Map$$, default: `$$$$`)* === debezium.supplier -$$copy-headers$$:: $$Copy Change Event headers into Message headers.$$ *($$Boolean$$, default: `$$true$$`)* +$$enable-empty-payload$$:: $$Enable support for tombstone (aka delete) messages.$$ *($$Boolean$$, default: `$$true$$`)* +$$header-names-to-map$$:: $$Patterns for {@code ChangeEvent.headers()} to map.$$ *($$String[]$$, default: `$$[*]$$`)* //end::configuration-properties[] ==== Event flattening configuration diff --git a/applications/source/debezium-source/pom.xml b/applications/source/debezium-source/pom.xml index f3eb9e9f..aeef35f6 100644 --- a/applications/source/debezium-source/pom.xml +++ b/applications/source/debezium-source/pom.xml @@ -22,15 +22,13 @@ org.springframework.cloud.fn - debezium-supplier - ${java-functions.version} + spring-debezium-supplier org.springframework.cloud.fn - function-test-support - ${java-functions.version} + spring-function-test-support test @@ -159,7 +157,7 @@ org.springframework.cloud.fn - debezium-supplier + spring-debezium-supplier org.springframework.cloud.stream.app diff --git a/applications/source/debezium-source/src/test/java/org/springframework/cloud/stream/app/source/debezium/integration/DebeziumDeleteHandlingIntegrationTest.java b/applications/source/debezium-source/src/test/java/org/springframework/cloud/stream/app/source/debezium/integration/DebeziumDeleteHandlingIntegrationTest.java index 6b331df8..83499adf 100644 --- a/applications/source/debezium-source/src/test/java/org/springframework/cloud/stream/app/source/debezium/integration/DebeziumDeleteHandlingIntegrationTest.java +++ b/applications/source/debezium-source/src/test/java/org/springframework/cloud/stream/app/source/debezium/integration/DebeziumDeleteHandlingIntegrationTest.java @@ -18,6 +18,7 @@ package org.springframework.cloud.stream.app.source.debezium.integration; import java.time.Duration; import java.util.List; +import java.util.Optional; import org.junit.jupiter.api.Tag; import org.junit.jupiter.params.ParameterizedTest; @@ -26,19 +27,15 @@ import org.testcontainers.containers.GenericContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.springframework.boot.test.context.FilteredClassLoader; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ContextConsumer; import org.springframework.cloud.fn.common.debezium.DebeziumProperties; -import org.springframework.cloud.fn.supplier.debezium.DebeziumReactiveConsumerConfiguration; import org.springframework.cloud.stream.binder.test.OutputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.kafka.support.KafkaNull; import org.springframework.messaging.Message; import org.springframework.test.jdbc.JdbcTestUtils; -import org.springframework.util.ClassUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -106,10 +103,6 @@ public class DebeziumDeleteHandlingIntegrationTest { "debezium.properties.transforms.unwrap.delete.handling.mode=rewrite,debezium.properties.transforms.unwrap.drop.tombstones=false" }) public void handleRecordDeletions(String properties) { - contextRunner.withPropertyValues(properties.split(",")) - .withClassLoader(new FilteredClassLoader(KafkaNull.class)) // Remove Kafka from the - .run(consumer); - contextRunner.withPropertyValues(properties.split(",")) .run(consumer); } @@ -123,10 +116,6 @@ public class DebeziumDeleteHandlingIntegrationTest { JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class); DebeziumProperties props = context.getBean(DebeziumProperties.class); - boolean isKafkaPresent = ClassUtils.isPresent( - DebeziumReactiveConsumerConfiguration.ORG_SPRINGFRAMEWORK_KAFKA_SUPPORT_KAFKA_NULL, - context.getClassLoader()); - String deleteHandlingMode = props.getProperties().get("transforms.unwrap.delete.handling.mode"); String isDropTombstones = props.getProperties().get("transforms.unwrap.drop.tombstones"); @@ -153,15 +142,14 @@ public class DebeziumDeleteHandlingIntegrationTest { else if (deleteHandlingMode.equals("rewrite")) { received = outputDestination.receive(Duration.ofSeconds(10).toMillis(), DebeziumTestUtils.BINDING_NAME); assertThat(received).isNotNull(); - assertThat(toString(received.getPayload()).contains("\"__deleted\":\"true\"")); + assertThat(toString(received.getPayload())).contains("\"__deleted\":\"true\""); } - if (!(isDropTombstones.equals("true")) && isKafkaPresent) { + if (!(isDropTombstones.equals("true"))) { received = outputDestination.receive(Duration.ofSeconds(10).toMillis(), DebeziumTestUtils.BINDING_NAME); assertThat(received).isNotNull(); // Tombstones event should have KafkaNull payload - assertThat(received.getPayload().getClass().getCanonicalName()) - .isEqualTo(DebeziumReactiveConsumerConfiguration.ORG_SPRINGFRAMEWORK_KAFKA_SUPPORT_KAFKA_NULL); + assertThat(received.getPayload()).isEqualTo(Optional.empty()); Object keyRaw = received.getHeaders().get("debezium_key"); String key = (keyRaw instanceof byte[]) ? new String((byte[]) keyRaw) : "" + keyRaw; diff --git a/applications/source/debezium-source/src/test/java/org/springframework/cloud/stream/app/source/debezium/integration/DebeziumFlatteningIntegrationTest.java b/applications/source/debezium-source/src/test/java/org/springframework/cloud/stream/app/source/debezium/integration/DebeziumFlatteningIntegrationTest.java index 9f95965a..9e392d66 100644 --- a/applications/source/debezium-source/src/test/java/org/springframework/cloud/stream/app/source/debezium/integration/DebeziumFlatteningIntegrationTest.java +++ b/applications/source/debezium-source/src/test/java/org/springframework/cloud/stream/app/source/debezium/integration/DebeziumFlatteningIntegrationTest.java @@ -18,6 +18,7 @@ package org.springframework.cloud.stream.app.source.debezium.integration; import java.time.Duration; import java.util.List; +import java.util.Optional; import net.javacrumbs.jsonunit.JsonAssert; import net.javacrumbs.jsonunit.core.Configuration; @@ -27,19 +28,15 @@ import org.testcontainers.containers.GenericContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.springframework.boot.test.context.FilteredClassLoader; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ContextConsumer; import org.springframework.cloud.fn.common.debezium.DebeziumProperties; -import org.springframework.cloud.fn.supplier.debezium.DebeziumReactiveConsumerConfiguration; import org.springframework.cloud.stream.binder.test.OutputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.kafka.support.KafkaNull; import org.springframework.messaging.Message; import org.springframework.test.jdbc.JdbcTestUtils; -import org.springframework.util.ClassUtils; import org.springframework.util.StringUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -96,14 +93,7 @@ public class DebeziumFlatteningIntegrationTest { "app.datasource.type=com.zaxxer.hikari.HikariDataSource"); @Test - public void noFlattenedResponseNoKafka() { - contextRunner - .withClassLoader(new FilteredClassLoader(KafkaNull.class)) // Remove Kafka from the classpath - .run(noFlatteningTest); - } - - @Test - public void noFlattenedResponseWithKafka() { + public void noFlattenedResponse() { contextRunner.run(noFlatteningTest); } @@ -111,15 +101,11 @@ public class DebeziumFlatteningIntegrationTest { OutputDestination outputDestination = context.getBean(OutputDestination.class); JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class); - boolean isKafkaPresent = ClassUtils.isPresent( - DebeziumReactiveConsumerConfiguration.ORG_SPRINGFRAMEWORK_KAFKA_SUPPORT_KAFKA_NULL, - context.getClassLoader()); - List> messages = DebeziumTestUtils.receiveAll(outputDestination); assertThat(messages).hasSizeGreaterThanOrEqualTo(52); JsonAssert.assertJsonEquals(DebeziumTestUtils.resourceToString( - "classpath:/json/mysql_ddl_drop_inventory_address_table.json"), + "classpath:/json/mysql_ddl_drop_inventory_address_table.json"), toString(messages.get(1).getPayload()), Configuration.empty().whenIgnoringPaths("schemaName", "tableChanges", "source.sequence", "source.ts_ms", "ts_ms")); @@ -143,7 +129,7 @@ public class DebeziumFlatteningIntegrationTest { messages = DebeziumTestUtils.receiveAll(outputDestination); - assertThat(messages).hasSize(isKafkaPresent ? 4 : 3); + assertThat(messages).hasSize(4); JsonAssert.assertJsonEquals( DebeziumTestUtils.resourceToString("classpath:/json/mysql_update_inventory_customers.json"), @@ -160,30 +146,13 @@ public class DebeziumFlatteningIntegrationTest { JsonAssert.assertJsonEquals("{\"id\":" + newRecordId + "}", toString(messages.get(1).getHeaders().get("debezium_key"))); - if (isKafkaPresent) { - assertThat(messages.get(3).getPayload().getClass().getCanonicalName()) - .isEqualTo(DebeziumReactiveConsumerConfiguration.ORG_SPRINGFRAMEWORK_KAFKA_SUPPORT_KAFKA_NULL, - "Tombstones event should have KafkaNull payload"); - assertThat(messages.get(3).getHeaders().get("debezium_destination")) - .isEqualTo("my-topic.inventory.customers"); - JsonAssert.assertJsonEquals("{\"id\":" + newRecordId + "}", - toString(messages.get(3).getHeaders().get("debezium_key"))); - } + assertThat(messages.get(3).getPayload()).isEqualTo(Optional.empty()); + assertThat(messages.get(3).getHeaders().get("debezium_destination")) + .isEqualTo("my-topic.inventory.customers"); + JsonAssert.assertJsonEquals("{\"id\":" + newRecordId + "}", + toString(messages.get(3).getHeaders().get("debezium_key"))); }; - @Test - public void flattenedResponseNoKafka() { - contextRunner - .withPropertyValues("debezium.properties.transforms=unwrap", - "debezium.properties.transforms.unwrap.type=io.debezium.transforms.ExtractNewRecordState", - "debezium.properties.transforms.unwrap.add.fields=name,db,op", - "debezium.properties.transforms.unwrap.add.headers=name,op", - "debezium.properties.transforms.unwrap.delete.handling.mode=none", - "debezium.properties.transforms.unwrap.drop.tombstones=false") - .withClassLoader(new FilteredClassLoader(KafkaNull.class)) // Remove Kafka from the classpath - .run(flatteningTest); - } - @Test public void flattenedResponseWithKafka() { contextRunner @@ -212,10 +181,6 @@ public class DebeziumFlatteningIntegrationTest { OutputDestination outputDestination = context.getBean(OutputDestination.class); JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class); - boolean isKafkaPresent = ClassUtils.isPresent( - DebeziumReactiveConsumerConfiguration.ORG_SPRINGFRAMEWORK_KAFKA_SUPPORT_KAFKA_NULL, - context.getClassLoader()); - List> messages = DebeziumTestUtils.receiveAll(outputDestination); assertThat(messages).hasSizeGreaterThanOrEqualTo(52); @@ -225,7 +190,7 @@ public class DebeziumFlatteningIntegrationTest { String isDropTombstones = props.getProperties().get("transforms.unwrap.drop.tombstones"); JsonAssert.assertJsonEquals(DebeziumTestUtils.resourceToString( - "classpath:/json/mysql_ddl_drop_inventory_address_table.json"), + "classpath:/json/mysql_ddl_drop_inventory_address_table.json"), toString(messages.get(1).getPayload()), Configuration.empty().whenIgnoringPaths("schemaName", "tableChanges", "source.sequence", "source.ts_ms", "ts_ms")); @@ -256,7 +221,7 @@ public class DebeziumFlatteningIntegrationTest { messages = DebeziumTestUtils.receiveAll(outputDestination); - assertThat(messages).hasSize((isDropTombstones.equals("false") && isKafkaPresent) ? 4 : 3); + assertThat(messages).hasSize((isDropTombstones.equals("false")) ? 4 : 3); JsonAssert.assertJsonEquals( DebeziumTestUtils.resourceToString("classpath:/json/mysql_flattened_update_inventory_customers.json"), @@ -273,10 +238,8 @@ public class DebeziumFlatteningIntegrationTest { toString(messages.get(1).getHeaders().get("debezium_key"))); } - if (isDropTombstones.equals("false") && isKafkaPresent) { - assertThat(messages.get(3).getPayload().getClass().getCanonicalName()) - .isEqualTo(DebeziumReactiveConsumerConfiguration.ORG_SPRINGFRAMEWORK_KAFKA_SUPPORT_KAFKA_NULL, - "Tombstones event should have KafkaNull payload"); + if (isDropTombstones.equals("false")) { + assertThat(messages.get(3).getPayload()).isEqualTo(Optional.empty()); assertThat(messages.get(3).getHeaders().get("debezium_destination")) .isEqualTo("my-topic.inventory.customers"); JsonAssert.assertJsonEquals("{\"id\":" + newRecordId + "}", diff --git a/applications/source/file-source/pom.xml b/applications/source/file-source/pom.xml index 4f510888..914b528a 100644 --- a/applications/source/file-source/pom.xml +++ b/applications/source/file-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - file-supplier + spring-file-supplier org.springframework.cloud.stream.app @@ -49,13 +49,13 @@ file source ${project.version} - org.springframework.cloud.fn.supplier.file.FileSupplierConfiguration.class - + AUTOCONFIGURATION + fileSupplier org.springframework.cloud.fn - file-supplier + spring-file-supplier org.springframework.cloud.stream.app diff --git a/applications/source/ftp-source/pom.xml b/applications/source/ftp-source/pom.xml index 053d13b6..7b73bc72 100644 --- a/applications/source/ftp-source/pom.xml +++ b/applications/source/ftp-source/pom.xml @@ -17,11 +17,17 @@ org.springframework.cloud.fn - ftp-supplier + spring-ftp-supplier org.springframework.cloud.fn - function-test-support + spring-function-test-support + test + + + org.apache.ftpserver + ftpserver-core + 1.2.0 test @@ -54,13 +60,13 @@ ftp source ${project.version} - org.springframework.cloud.fn.supplier.ftp.FtpSupplierConfiguration.class - + AUTOCONFIGURATION + ftpSupplier org.springframework.cloud.fn - ftp-supplier + spring-ftp-supplier org.springframework.cloud.stream.app diff --git a/applications/source/ftp-source/src/test/java/org/springframework/cloud/stream/app/source/ftp/FtpSourceTests.java b/applications/source/ftp-source/src/test/java/org/springframework/cloud/stream/app/source/ftp/FtpSourceTests.java index 46430cd4..9492d474 100644 --- a/applications/source/ftp-source/src/test/java/org/springframework/cloud/stream/app/source/ftp/FtpSourceTests.java +++ b/applications/source/ftp-source/src/test/java/org/springframework/cloud/stream/app/source/ftp/FtpSourceTests.java @@ -23,7 +23,6 @@ import org.junit.jupiter.api.Test; 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.supplier.ftp.FtpSupplierConfiguration; import org.springframework.cloud.fn.supplier.ftp.FtpSupplierProperties; import org.springframework.cloud.fn.test.support.ftp.FtpTestSupport; import org.springframework.cloud.stream.binder.test.OutputDestination; @@ -54,7 +53,7 @@ public class FtpSourceTests extends FtpTestSupport { FtpSupplierProperties config; @Test - public void testFtpource() { + public void testFtpSource() { Message message = output.receive(10000, "ftpSupplier-out-0"); assertThat(new File(new String(message.getPayload()).replaceAll("\"", ""))).isEqualTo( new File(this.config.getLocalDir(), "ftpSource1.txt")); @@ -64,7 +63,7 @@ public class FtpSourceTests extends FtpTestSupport { } @SpringBootApplication - @Import({TestChannelBinderConfiguration.class, FtpSupplierConfiguration.class}) + @Import(TestChannelBinderConfiguration.class) public static class SampleConfiguration { @Bean @@ -77,4 +76,5 @@ public class FtpSourceTests extends FtpTestSupport { } } + } diff --git a/applications/source/http-source/README.adoc b/applications/source/http-source/README.adoc index 06ee1262..786572e3 100644 --- a/applications/source/http-source/README.adoc +++ b/applications/source/http-source/README.adoc @@ -23,13 +23,13 @@ The **$$http$$** $$source$$ supports the following configuration properties: Properties grouped by prefix: -=== http.cors +=== http.supplier.cors $$allow-credentials$$:: $$Whether the browser should include any cookies associated with the domain of the request being annotated.$$ *($$Boolean$$, default: `$$$$`)* $$allowed-headers$$:: $$List of request headers that can be used during the actual request.$$ *($$String[]$$, default: `$$$$`)* $$allowed-origins$$:: $$List of allowed origins, e.g. https://domain1.com.$$ *($$String[]$$, default: `$$$$`)* -=== http +=== http.supplier $$mapped-request-headers$$:: $$Headers that will be mapped.$$ *($$String[]$$, default: `$$$$`)* $$path-pattern$$:: $$HTTP endpoint path mapping.$$ *($$String$$, default: `$$/$$`)* diff --git a/applications/source/http-source/pom.xml b/applications/source/http-source/pom.xml index 3fe7500e..33ec0242 100644 --- a/applications/source/http-source/pom.xml +++ b/applications/source/http-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - http-supplier + spring-http-supplier org.springframework.boot @@ -53,8 +53,8 @@ http source ${project.version} - org.springframework.cloud.fn.supplier.http.HttpSupplierConfiguration.class - + AUTOCONFIGURATION + httpSupplier reactive> false @@ -65,7 +65,7 @@ org.springframework.cloud.fn - http-supplier + spring-http-supplier org.springframework.cloud.stream.app diff --git a/applications/source/jdbc-source/pom.xml b/applications/source/jdbc-source/pom.xml index 733a66fd..a97cbaf2 100644 --- a/applications/source/jdbc-source/pom.xml +++ b/applications/source/jdbc-source/pom.xml @@ -17,14 +17,9 @@ org.springframework.cloud.fn - jdbc-supplier + spring-jdbc-supplier - org.springframework.cloud - spring-cloud-stream-test-binder - test - - com.h2database h2 test @@ -58,13 +53,13 @@ jdbc source ${project.version} - org.springframework.cloud.fn.supplier.jdbc.JdbcSupplierConfiguration.class - + AUTOCONFIGURATION + jdbcSupplier org.springframework.cloud.fn - jdbc-supplier + spring-jdbc-supplier org.springframework.cloud.stream.app diff --git a/applications/source/jms-source/README.adoc b/applications/source/jms-source/README.adoc index 6cc0644d..113c6199 100644 --- a/applications/source/jms-source/README.adoc +++ b/applications/source/jms-source/README.adoc @@ -28,10 +28,11 @@ $$pub-sub-domain$$:: $$Whether the default destination type is topic.$$ *($$Bool === spring.jms.listener -$$acknowledge-mode$$:: $$Acknowledge mode of the container. By default, the listener is transacted with automatic acknowledgment.$$ *($$AcknowledgeMode$$, default: `$$$$`, possible values: `AUTO`,`CLIENT`,`DUPS_OK`)* +$$acknowledge-mode$$:: $$$$ *($$AcknowledgeMode$$, default: `$$$$`)* $$auto-startup$$:: $$Start the container automatically on startup.$$ *($$Boolean$$, default: `$$true$$`)* -$$concurrency$$:: $$Minimum number of concurrent consumers. When max-concurrency is not specified the minimum will also be used as the maximum.$$ *($$Integer$$, default: `$$$$`)* +$$concurrency$$:: $$$$ *($$Integer$$, default: `$$$$`)* $$max-concurrency$$:: $$Maximum number of concurrent consumers.$$ *($$Integer$$, default: `$$$$`)* +$$min-concurrency$$:: $$Minimum number of concurrent consumers. When max-concurrency is not specified the minimum will also be used as the maximum.$$ *($$Integer$$, default: `$$$$`)* $$receive-timeout$$:: $$Timeout to use for receive calls. Use -1 for a no-wait receive or 0 for no timeout at all. The latter is only feasible if not running within a transaction manager and is generally discouraged since it prevents clean shutdown.$$ *($$Duration$$, default: `$$1s$$`)* //end::configuration-properties[] diff --git a/applications/source/jms-source/pom.xml b/applications/source/jms-source/pom.xml index 7f970c16..1f7b00b0 100644 --- a/applications/source/jms-source/pom.xml +++ b/applications/source/jms-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - jms-supplier + spring-jms-supplier jakarta.jms @@ -59,13 +59,13 @@ jms source ${project.version} - org.springframework.cloud.fn.supplier.jms.JmsSupplierConfiguration.class - + AUTOCONFIGURATION + jmsSupplier org.springframework.cloud.fn - jms-supplier + spring-jms-supplier org.springframework.cloud.stream.app diff --git a/applications/source/kafka-source/README.adoc b/applications/source/kafka-source/README.adoc index d495cd61..8a425c1a 100644 --- a/applications/source/kafka-source/README.adoc +++ b/applications/source/kafka-source/README.adoc @@ -50,6 +50,7 @@ $$ack-mode$$:: $$Listener AckMode. See the spring-kafka documentation.$$ *($$Ack $$ack-time$$:: $$Time between offset commits when ackMode is "TIME" or "COUNT_TIME".$$ *($$Duration$$, default: `$$$$`)* $$async-acks$$:: $$Support for asynchronous record acknowledgements. Only applies when spring.kafka.listener.ack-mode is manual or manual-immediate.$$ *($$Boolean$$, default: `$$$$`)* $$auto-startup$$:: $$Whether to auto start the container.$$ *($$Boolean$$, default: `$$true$$`)* +$$change-consumer-thread-name$$:: $$Whether to instruct the container to change the consumer thread name during initialization.$$ *($$Boolean$$, default: `$$$$`)* $$client-id$$:: $$Prefix for the listener's consumer client.id property.$$ *($$String$$, default: `$$$$`)* $$concurrency$$:: $$Number of threads to run in the listener containers.$$ *($$Integer$$, default: `$$$$`)* $$idle-between-polls$$:: $$Sleep interval between Consumer.poll(Duration) calls.$$ *($$Duration$$, default: `$$0$$`)* @@ -60,6 +61,7 @@ $$log-container-config$$:: $$Whether to log the container configuration during i $$missing-topics-fatal$$:: $$Whether the container should fail to start if at least one of the configured topics are not present on the broker.$$ *($$Boolean$$, default: `$$false$$`)* $$monitor-interval$$:: $$Time between checks for non-responsive consumers. If a duration suffix is not specified, seconds will be used.$$ *($$Duration$$, default: `$$$$`)* $$no-poll-threshold$$:: $$Multiplier applied to "pollTimeout" to determine if a consumer is non-responsive.$$ *($$Float$$, default: `$$$$`)* +$$observation-enabled$$:: $$Whether to enable observation.$$ *($$Boolean$$, default: `$$false$$`)* $$poll-timeout$$:: $$Timeout to use when polling the consumer.$$ *($$Duration$$, default: `$$$$`)* $$type$$:: $$Listener type.$$ *($$Type$$, default: `$$single$$`)* //end::configuration-properties[] diff --git a/applications/source/kafka-source/pom.xml b/applications/source/kafka-source/pom.xml index 50ca5b99..4372d8a2 100644 --- a/applications/source/kafka-source/pom.xml +++ b/applications/source/kafka-source/pom.xml @@ -19,7 +19,7 @@ org.springframework.cloud.fn - kafka-supplier + spring-kafka-supplier @@ -58,7 +58,7 @@ org.springframework.cloud.fn - kafka-supplier + spring-kafka-supplier diff --git a/applications/source/load-generator-source/README.adoc b/applications/source/load-generator-source/README.adoc index 1a3fd572..4ea48e26 100644 --- a/applications/source/load-generator-source/README.adoc +++ b/applications/source/load-generator-source/README.adoc @@ -8,10 +8,10 @@ A source that sends generated data and dispatches it to the stream. The **$$load-generator$$** $$source$$ has the following options: //tag::configuration-properties[] -$$load-generator.generate-timestamp$$:: $$Whether timestamp generated.$$ *($$Boolean$$, default: `$$$$`)* -$$load-generator.message-count$$:: $$Message count.$$ *($$Integer$$, default: `$$$$`)* -$$load-generator.message-size$$:: $$Message size.$$ *($$Integer$$, default: `$$$$`)* -$$load-generator.producers$$:: $$Number of producers.$$ *($$Integer$$, default: `$$$$`)* +$$load-generator.generate-timestamp$$:: $$Whether timestamp generated.$$ *($$Boolean$$, default: `$$false$$`)* +$$load-generator.message-count$$:: $$Message count.$$ *($$Integer$$, default: `$$1000$$`)* +$$load-generator.message-size$$:: $$Message size.$$ *($$Integer$$, default: `$$1000$$`)* +$$load-generator.producers$$:: $$Number of producers.$$ *($$Integer$$, default: `$$1$$`)* //end::configuration-properties[] //end::ref-doc[] diff --git a/applications/source/mail-source/README.adoc b/applications/source/mail-source/README.adoc index a0873759..d90829cc 100644 --- a/applications/source/mail-source/README.adoc +++ b/applications/source/mail-source/README.adoc @@ -12,7 +12,7 @@ $$mail.supplier.charset$$:: $$The charset for byte[] mail-to-string transformati $$mail.supplier.delete$$:: $$Set to true to delete email after download.$$ *($$Boolean$$, default: `$$false$$`)* $$mail.supplier.expression$$:: $$Configure a SpEL expression to select messages.$$ *($$String$$, default: `$$true$$`)* $$mail.supplier.idle-imap$$:: $$Set to true to use IdleImap Configuration.$$ *($$Boolean$$, default: `$$false$$`)* -$$mail.supplier.java-mail-properties$$:: $$JavaMail properties as a new line delimited string of name-value pairs, e.g. 'foo=bar\n baz=car'.$$ *($$Properties$$, default: `$$$$`)* +$$mail.supplier.java-mail-properties$$:: $$Java Mail properties as a new line delimited string of name-value pairs, e.g. 'foo=bar\n baz=car'.$$ *($$Properties$$, default: `$$$$`)* $$mail.supplier.mark-as-read$$:: $$Set to true to mark email as read.$$ *($$Boolean$$, default: `$$false$$`)* $$mail.supplier.url$$:: $$Mail connection URL for connection to Mail server e.g. 'imaps://username:password@imap.server.com:993/Inbox'.$$ *($$URLName$$, default: `$$$$`)* $$mail.supplier.user-flag$$:: $$The flag to mark messages when the server does not support \Recent.$$ *($$String$$, default: `$$$$`)* diff --git a/applications/source/mail-source/pom.xml b/applications/source/mail-source/pom.xml index 316d57f0..ee6edb9f 100644 --- a/applications/source/mail-source/pom.xml +++ b/applications/source/mail-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - mail-supplier + spring-mail-supplier org.springframework.integration @@ -26,19 +26,9 @@ com.icegreen - greenmail-junit5 - 2.0.0-alpha-3 + greenmail + 2.1.0-alpha-4 test - - - com.sun.mail - jakarta.mail - - - jakarta.activation - jakarta.activation-api - - @@ -64,13 +54,13 @@ mail source ${project.version} - org.springframework.cloud.fn.supplier.mail.MailSupplierConfiguration.class - + AUTOCONFIGURATION + mailSupplier org.springframework.cloud.fn - mail-supplier + spring-mail-supplier org.springframework.cloud.stream.app diff --git a/applications/source/mongodb-source/pom.xml b/applications/source/mongodb-source/pom.xml index 57387802..64810a91 100644 --- a/applications/source/mongodb-source/pom.xml +++ b/applications/source/mongodb-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - mongodb-supplier + spring-mongodb-supplier @@ -43,14 +43,13 @@ mongodb source ${project.version} - org.springframework.cloud.fn.supplier.mongo.MongodbSupplierConfiguration.class - - + AUTOCONFIGURATION + mongodbSupplier org.springframework.cloud.fn - mongodb-supplier + spring-mongodb-supplier org.springframework.cloud.stream.app diff --git a/applications/source/mqtt-source/README.adoc b/applications/source/mqtt-source/README.adoc index 14fe33c8..b0d6b32e 100644 --- a/applications/source/mqtt-source/README.adoc +++ b/applications/source/mqtt-source/README.adoc @@ -30,11 +30,11 @@ $$username$$:: $$the username to use when connecting to the broker.$$ *($$String === mqtt.supplier -$$binary$$:: $$true to leave the payload as bytes.$$ *($$Boolean$$, default: `$$false$$`)* -$$charset$$:: $$the charset used to convert bytes to String (when binary is false).$$ *($$String$$, default: `$$UTF-8$$`)* -$$client-id$$:: $$identifies the client.$$ *($$String$$, default: `$$stream.client.id.source$$`)* -$$qos$$:: $$the qos; a single value for all topics or a comma-delimited list to match the topics.$$ *($$Integer[]$$, default: `$$[0]$$`)* -$$topics$$:: $$the topic(s) (comma-delimited) to which the source will subscribe.$$ *($$String[]$$, default: `$$[stream.mqtt]$$`)* +$$binary$$:: $$True to leave the payload as bytes.$$ *($$Boolean$$, default: `$$false$$`)* +$$charset$$:: $$The charset used to convert bytes to String (when binary is false).$$ *($$String$$, default: `$$UTF-8$$`)* +$$client-id$$:: $$Identifies the client.$$ *($$String$$, default: `$$stream.client.id.source$$`)* +$$qos$$:: $$The qos; a single value for all topics or a comma-delimited list to match the topics.$$ *($$Integer[]$$, default: `$$[0]$$`)* +$$topics$$:: $$The topic(s) (comma-delimited) to which the source will subscribe.$$ *($$String[]$$, default: `$$[stream.mqtt]$$`)* //end::configuration-properties[] //end::ref-doc[] diff --git a/applications/source/mqtt-source/pom.xml b/applications/source/mqtt-source/pom.xml index 78bc4870..b9171dca 100644 --- a/applications/source/mqtt-source/pom.xml +++ b/applications/source/mqtt-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - mqtt-supplier + spring-mqtt-supplier org.testcontainers @@ -49,13 +49,13 @@ mqtt source ${project.version} - org.springframework.cloud.fn.supplier.mqtt.MqttSupplierConfiguration.class - + AUTOCONFIGURATION + mqttSupplier org.springframework.cloud.fn - mqtt-supplier + spring-mqtt-supplier org.springframework.cloud.stream.app diff --git a/applications/source/rabbit-source/README.adoc b/applications/source/rabbit-source/README.adoc index 16cf2e66..409138de 100644 --- a/applications/source/rabbit-source/README.adoc +++ b/applications/source/rabbit-source/README.adoc @@ -31,7 +31,6 @@ $$initial-retry-interval$$:: $$Initial retry interval when retry is enabled.$$ * $$mapped-request-headers$$:: $$Headers that will be mapped.$$ *($$String[]$$, default: `$$[STANDARD_REQUEST_HEADERS]$$`)* $$max-attempts$$:: $$The maximum delivery attempts when retry is enabled.$$ *($$Integer$$, default: `$$3$$`)* $$max-retry-interval$$:: $$Max retry interval when retry is enabled.$$ *($$Integer$$, default: `$$30000$$`)* -$$own-connection$$:: $$When true, use a separate connection based on the boot properties.$$ *($$Boolean$$, default: `$$false$$`)* $$queues$$:: $$The queues to which the source will listen for messages.$$ *($$String[]$$, default: `$$$$`)* $$requeue$$:: $$Whether rejected messages should be requeued.$$ *($$Boolean$$, default: `$$true$$`)* $$retry-multiplier$$:: $$Retry backoff multiplier when retry is enabled.$$ *($$Double$$, default: `$$2$$`)* @@ -44,6 +43,7 @@ $$addresses$$:: $$Comma-separated list of addresses to which the client should c $$channel-rpc-timeout$$:: $$Continuation timeout for RPC calls in channels. Set it to zero to wait forever.$$ *($$Duration$$, default: `$$10m$$`)* $$connection-timeout$$:: $$Connection timeout. Set it to zero to wait forever.$$ *($$Duration$$, default: `$$$$`)* $$host$$:: $$RabbitMQ host. Ignored if an address is set.$$ *($$String$$, default: `$$localhost$$`)* +$$max-inbound-message-body-size$$:: $$Maximum size of the body of inbound (received) messages.$$ *($$DataSize$$, default: `$$64MB$$`)* $$password$$:: $$Login to authenticate against the broker.$$ *($$String$$, default: `$$guest$$`)* $$port$$:: $$RabbitMQ port. Ignored if an address is set. Default to 5672, or 5671 if SSL is enabled.$$ *($$Integer$$, default: `$$$$`)* $$publisher-confirm-type$$:: $$Type of publisher confirms to use.$$ *($$ConfirmType$$, default: `$$$$`, possible values: `SIMPLE`,`CORRELATED`,`NONE`)* @@ -62,6 +62,7 @@ $$concurrency$$:: $$Minimum number of listener invoker threads.$$ *($$Integer$$, $$consumer-batch-enabled$$:: $$Whether the container creates a batch of messages based on the 'receive-timeout' and 'batch-size'. Coerces 'de-batching-enabled' to true to include the contents of a producer created batch in the batch as discrete records.$$ *($$Boolean$$, default: `$$false$$`)* $$de-batching-enabled$$:: $$Whether the container should present batched messages as discrete messages or call the listener with the batch.$$ *($$Boolean$$, default: `$$true$$`)* $$default-requeue-rejected$$:: $$Whether rejected deliveries are re-queued by default.$$ *($$Boolean$$, default: `$$$$`)* +$$force-stop$$:: $$Whether the container (when stopped) should stop immediately after processing the current message or stop after processing all pre-fetched messages.$$ *($$Boolean$$, default: `$$false$$`)* $$idle-event-interval$$:: $$How often idle container events should be published.$$ *($$Duration$$, default: `$$$$`)* $$max-concurrency$$:: $$Maximum number of listener invoker threads.$$ *($$Integer$$, default: `$$$$`)* $$missing-queues-fatal$$:: $$Whether to fail if the queues declared by the container are not available on the broker and/or whether to stop the container if one or more queues are deleted at runtime.$$ *($$Boolean$$, default: `$$true$$`)* diff --git a/applications/source/rabbit-source/pom.xml b/applications/source/rabbit-source/pom.xml index 7dccd036..439bf8c8 100644 --- a/applications/source/rabbit-source/pom.xml +++ b/applications/source/rabbit-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - rabbit-supplier + spring-rabbit-supplier org.springframework.boot @@ -65,14 +65,13 @@ rabbit source ${project.version} - org.springframework.cloud.fn.supplier.rabbit.RabbitSupplierConfiguration.class - - + AUTOCONFIGURATION + rabbitSupplier org.springframework.cloud.fn - rabbit-supplier + spring-rabbit-supplier org.springframework.cloud.stream.app diff --git a/applications/source/s3-source/README.adoc b/applications/source/s3-source/README.adoc index 588af9e7..77e63f60 100644 --- a/applications/source/s3-source/README.adoc +++ b/applications/source/s3-source/README.adoc @@ -126,6 +126,7 @@ $$static$$:: $$$$ *($$String$$, default: `$$$$`)* $$accelerate-mode-enabled$$:: $$Option to enable using the accelerate endpoint when accessing S3. Accelerate endpoints allow faster transfer of objects by using Amazon CloudFront's globally distributed edge locations.$$ *($$Boolean$$, default: `$$$$`)* $$checksum-validation-enabled$$:: $$Option to disable doing a validation of the checksum of an object stored in S3.$$ *($$Boolean$$, default: `$$$$`)* $$chunked-encoding-enabled$$:: $$Option to enable using chunked encoding when signing the request payload for {@link software.amazon.awssdk.services.s3.model.PutObjectRequest} and {@link software.amazon.awssdk.services.s3.model.UploadPartRequest}.$$ *($$Boolean$$, default: `$$$$`)* +$$cross-region-enabled$$:: $$Enables cross-region bucket access.$$ *($$Boolean$$, default: `$$$$`)* $$endpoint$$:: $$Overrides the default endpoint.$$ *($$URI$$, default: `$$$$`)* $$path-style-access-enabled$$:: $$Option to enable using path style access for accessing S3 objects instead of DNS style access. DNS style access is preferred as it will result in better load balancing when accessing S3.$$ *($$Boolean$$, default: `$$$$`)* $$region$$:: $$Overrides the default region.$$ *($$String$$, default: `$$$$`)* diff --git a/applications/source/s3-source/pom.xml b/applications/source/s3-source/pom.xml index b19faea4..fc919056 100644 --- a/applications/source/s3-source/pom.xml +++ b/applications/source/s3-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - s3-supplier + spring-s3-supplier org.springframework.integration @@ -48,13 +48,13 @@ s3 source ${project.version} - org.springframework.cloud.fn.supplier.s3.AwsS3SupplierConfiguration.class - + AUTOCONFIGURATION + s3Supplier org.springframework.cloud.fn - s3-supplier + spring-s3-supplier org.springframework.cloud.stream.app diff --git a/applications/source/sftp-source/pom.xml b/applications/source/sftp-source/pom.xml index 5b3dc1db..eee5c1f0 100644 --- a/applications/source/sftp-source/pom.xml +++ b/applications/source/sftp-source/pom.xml @@ -17,11 +17,11 @@ org.springframework.cloud.fn - sftp-supplier + spring-sftp-supplier org.springframework.cloud.fn - function-test-support + spring-function-test-support test @@ -54,13 +54,13 @@ sftp source ${project.version} - org.springframework.cloud.fn.supplier.sftp.SftpSupplierConfiguration.class - + AUTOCONFIGURATION + sftpSupplier org.springframework.cloud.fn - sftp-supplier + spring-sftp-supplier org.springframework.cloud.stream.app diff --git a/applications/source/syslog-source/README.adoc b/applications/source/syslog-source/README.adoc index 74f6ab2f..78a69033 100644 --- a/applications/source/syslog-source/README.adoc +++ b/applications/source/syslog-source/README.adoc @@ -7,12 +7,12 @@ The syslog source receives SYSLOG packets over UDP, TCP, or both. RFC3164 (BSD) //tag::configuration-properties[] $$syslog.supplier.buffer-size$$:: $$the buffer size used when decoding messages; larger messages will be rejected.$$ *($$Integer$$, default: `$$2048$$`)* -$$syslog.supplier.nio$$:: $$whether or not to use NIO (when supporting a large number of connections).$$ *($$Boolean$$, default: `$$false$$`)* +$$syslog.supplier.nio$$:: $$Whether to use NIO (when supporting a large number of connections).$$ *($$Boolean$$, default: `$$false$$`)* $$syslog.supplier.port$$:: $$The port to listen on.$$ *($$Integer$$, default: `$$1514$$`)* $$syslog.supplier.protocol$$:: $$Protocol used for SYSLOG (tcp or udp).$$ *($$Protocol$$, default: `$$$$`, possible values: `tcp`,`udp`,`both`)* -$$syslog.supplier.reverse-lookup$$:: $$whether or not to perform a reverse lookup on the incoming socket.$$ *($$Boolean$$, default: `$$false$$`)* -$$syslog.supplier.rfc$$:: $$'5424' or '3164' - the syslog format according to the RFC; 3164 is aka 'BSD' format.$$ *($$String$$, default: `$$3164$$`)* -$$syslog.supplier.socket-timeout$$:: $$the socket timeout.$$ *($$Integer$$, default: `$$0$$`)* +$$syslog.supplier.reverse-lookup$$:: $$Whether to perform a reverse lookup on the incoming socket.$$ *($$Boolean$$, default: `$$false$$`)* +$$syslog.supplier.rfc$$:: $$The '5424' or '3164' - the syslog format according to the RFC; 3164 is aka 'BSD' format.$$ *($$String$$, default: `$$3164$$`)* +$$syslog.supplier.socket-timeout$$:: $$The socket timeout.$$ *($$Integer$$, default: `$$0$$`)* //end::configuration-properties[] //end::ref-doc[] diff --git a/applications/source/syslog-source/pom.xml b/applications/source/syslog-source/pom.xml index 5bdac00e..b5294542 100644 --- a/applications/source/syslog-source/pom.xml +++ b/applications/source/syslog-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - syslog-supplier + spring-syslog-supplier @@ -43,13 +43,13 @@ syslog source ${project.version} - org.springframework.cloud.fn.supplier.syslog.SyslogSupplierConfiguration.class - + AUTOCONFIGURATION + syslogSupplier org.springframework.cloud.fn - syslog-supplier + spring-syslog-supplier org.springframework.cloud.stream.app diff --git a/applications/source/tcp-source/README.adoc b/applications/source/tcp-source/README.adoc index 6fb00232..b46b1c64 100644 --- a/applications/source/tcp-source/README.adoc +++ b/applications/source/tcp-source/README.adoc @@ -15,11 +15,11 @@ Properties grouped by prefix: === tcp -$$nio$$:: $$Whether or not to use NIO.$$ *($$Boolean$$, default: `$$false$$`)* +$$nio$$:: $$Whether to use NIO.$$ *($$Boolean$$, default: `$$false$$`)* $$port$$:: $$The port on which to listen; 0 for the OS to choose a port.$$ *($$Integer$$, default: `$$1234$$`)* $$reverse-lookup$$:: $$Perform a reverse DNS lookup on the remote IP Address; if false, just the IP address is included in the message headers.$$ *($$Boolean$$, default: `$$false$$`)* $$socket-timeout$$:: $$The timeout (ms) before closing the socket when no data is received.$$ *($$Integer$$, default: `$$120000$$`)* -$$use-direct-buffers$$:: $$Whether or not to use direct buffers.$$ *($$Boolean$$, default: `$$false$$`)* +$$use-direct-buffers$$:: $$Whether to use direct buffers.$$ *($$Boolean$$, default: `$$false$$`)* === tcp.supplier diff --git a/applications/source/tcp-source/pom.xml b/applications/source/tcp-source/pom.xml index ea2bc8b7..187af1c4 100644 --- a/applications/source/tcp-source/pom.xml +++ b/applications/source/tcp-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - tcp-supplier + spring-tcp-supplier @@ -43,13 +43,13 @@ tcp source ${project.version} - org.springframework.cloud.fn.supplier.tcp.TcpSupplierConfiguration.class - + AUTOCONFIGURATION + tcpSupplier org.springframework.cloud.fn - tcp-supplier + spring-tcp-supplier org.springframework.cloud.stream.app diff --git a/applications/source/time-source/pom.xml b/applications/source/time-source/pom.xml index 47123a87..6b1f91c7 100644 --- a/applications/source/time-source/pom.xml +++ b/applications/source/time-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - time-supplier + spring-time-supplier org.springframework.cloud.stream.app @@ -49,13 +49,14 @@ time source ${project.version} - org.springframework.cloud.fn.supplier.time.TimeSupplierConfiguration.class + AUTOCONFIGURATION + timeSupplier org.springframework.cloud.fn - time-supplier - ${java-functions.version} + spring-time-supplier + org.springframework.cloud.stream.app diff --git a/applications/source/twitter-message-source/README.adoc b/applications/source/twitter-message-source/README.adoc index c5e734be..7e8e16b2 100644 --- a/applications/source/twitter-message-source/README.adoc +++ b/applications/source/twitter-message-source/README.adoc @@ -37,6 +37,7 @@ $$raw-json$$:: $$Enable caching the original (raw) JSON objects as returned by t === twitter.message.source $$count$$:: $$Max number of events to be returned. 20 default. 50 max.$$ *($$Integer$$, default: `$$20$$`)* +$$enabled$$:: $$Whether to enable Twitter message receiving.$$ *($$Boolean$$, default: `$$false$$`)* //end::configuration-properties[] //end::ref-doc[] diff --git a/applications/source/twitter-message-source/pom.xml b/applications/source/twitter-message-source/pom.xml index e990e820..86055bf8 100644 --- a/applications/source/twitter-message-source/pom.xml +++ b/applications/source/twitter-message-source/pom.xml @@ -17,26 +17,18 @@ org.springframework.cloud.fn - twitter-supplier + spring-twitter-supplier org.springframework.cloud.fn - function-test-support + spring-function-test-support test org.mock-server mockserver-netty - ${mockserver.version} test - - org.mock-server - mockserver-client-java - ${mockserver.version} - test - - @@ -61,16 +53,14 @@ twitter-message source ${project.version} - - org.springframework.cloud.fn.supplier.twitter.message.TwitterMessageSupplierConfiguration.class - - twitterMessageSupplier + AUTOCONFIGURATION + twitterMessagesSupplier org.springframework.cloud.fn - twitter-supplier + spring-twitter-supplier diff --git a/applications/source/twitter-message-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/message/TwitterMessageSourceIntegrationTests.java b/applications/source/twitter-message-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/message/TwitterMessageSourceIntegrationTests.java index 66216d7d..709bc510 100644 --- a/applications/source/twitter-message-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/message/TwitterMessageSourceIntegrationTests.java +++ b/applications/source/twitter-message-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/message/TwitterMessageSourceIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2021 the original author or authors. + * Copyright 2020-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,6 @@ package org.springframework.cloud.stream.app.source.twitter.message; import java.time.Duration; import java.util.List; -import java.util.concurrent.TimeUnit; import java.util.function.Function; import com.fasterxml.jackson.core.JsonProcessingException; @@ -38,16 +37,13 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; import org.springframework.cloud.fn.common.twitter.util.TwitterTestUtils; -import org.springframework.cloud.fn.supplier.twitter.message.TwitterMessageSupplierConfiguration; import org.springframework.cloud.fn.supplier.twitter.message.TwitterMessageSupplierProperties; import org.springframework.cloud.stream.binder.test.OutputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; import org.springframework.messaging.Message; -import org.springframework.test.util.TestSocketUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.mockserver.matchers.Times.exactly; @@ -57,23 +53,21 @@ import static org.mockserver.verify.VerificationTimes.once; /** * @author Christian Tzolov + * @author Artem Bilan */ public class TwitterMessageSourceIntegrationTests { - private static final String MOCK_SERVER_IP = "127.0.0.1"; - - private static final Integer MOCK_SERVER_PORT = TestSocketUtils.findAvailableTcpPort(); - private static ClientAndServer mockServer; private static MockServerClient mockClient; + private static HttpRequest messageRequest; @BeforeAll public static void startServer() { - mockServer = ClientAndServer.startClientAndServer(MOCK_SERVER_PORT); - mockClient = new MockServerClient(MOCK_SERVER_IP, MOCK_SERVER_PORT); + mockServer = ClientAndServer.startClientAndServer(); + mockClient = new MockServerClient("localhost", mockServer.getPort()); messageRequest = setExpectation(request() .withMethod("GET") @@ -93,15 +87,15 @@ public class TwitterMessageSourceIntegrationTests { .getCompleteConfiguration(TestTwitterMessageSourceApplication.class)) .web(WebApplicationType.NONE) - .run("--spring.cloud.function.definition=twitterMessageSupplier", + .run("--spring.cloud.function.definition=twitterMessagesSupplier", "--twitter.connection.consumerKey=consumerKey666", "--twitter.connection.consumerSecret=consumerSecret666", "--twitter.connection.accessToken=accessToken666", "--twitter.connection.accessTokenSecret=accessTokenSecret666", - "--twitter.message.source.count=15", - "--spring.cloud.stream.poller.fixed-delay=3000")) { + "--twitter.message.source.enabled=true", + "--twitter.message.source.count=15")) { TwitterConnectionProperties twitterConnectionProperties = context.getBean(TwitterConnectionProperties.class); assertThat(twitterConnectionProperties.getConsumerKey()).isEqualTo("consumerKey666"); @@ -109,19 +103,16 @@ public class TwitterMessageSourceIntegrationTests { assertThat(twitterConnectionProperties.getAccessToken()).isEqualTo("accessToken666"); assertThat(twitterConnectionProperties.getAccessTokenSecret()).isEqualTo("accessTokenSecret666"); -// DefaultPollerProperties defaultPollerProperties = context.getBean(DefaultPollerProperties.class); -// assertThat(defaultPollerProperties.getFixedDelay()).isEqualTo(3000); - TwitterMessageSupplierProperties twitterMessageSupplierProperties = context.getBean(TwitterMessageSupplierProperties.class); assertThat(twitterMessageSupplierProperties.getCount()).isEqualTo(15); OutputDestination outputDestination = context.getBean(OutputDestination.class); // Using local region here - Message message = outputDestination.receive(Duration.ofSeconds(300).toMillis(), "twitterMessageSupplier-out-0"); + Message message = outputDestination.receive(Duration.ofSeconds(10).toMillis(), "twitterMessagesSupplier-out-0"); assertThat(message).isNotNull(); String payload = new String(message.getPayload()); - List tweets = new ObjectMapper().readValue(payload, List.class); + List tweets = new ObjectMapper().readValue(payload, List.class); assertThat(tweets).hasSize(4); mockClient.verify(messageRequest, once()); } @@ -135,14 +126,12 @@ public class TwitterMessageSourceIntegrationTests { .withHeaders( new Header("Content-Type", "application/json; charset=utf-8"), new Header("Cache-Control", "public, max-age=86400")) - .withBody(TwitterTestUtils.asString("classpath:/response/messages.json")) - .withDelay(TimeUnit.SECONDS, 10)); + .withBody(TwitterTestUtils.asString("classpath:/response/messages.json"))); return request; } @SpringBootConfiguration @EnableAutoConfiguration - @Import(TwitterMessageSupplierConfiguration.class) public static class TestTwitterMessageSourceApplication { @Bean @@ -152,11 +141,11 @@ public class TwitterMessageSourceIntegrationTests { Function mockedConfiguration = toConfigurationBuilder.andThen( - new TwitterTestUtils().mockTwitterUrls( - String.format("http://%s:%s", MOCK_SERVER_IP, MOCK_SERVER_PORT))); + new TwitterTestUtils().mockTwitterUrls("http://localhost:" + mockServer.getPort())); return mockedConfiguration.apply(properties).build(); } + } } diff --git a/applications/source/twitter-search-source/README.adoc b/applications/source/twitter-search-source/README.adoc index 306de4d2..42a8443b 100644 --- a/applications/source/twitter-search-source/README.adoc +++ b/applications/source/twitter-search-source/README.adoc @@ -40,11 +40,12 @@ $$raw-json$$:: $$Enable caching the original (raw) JSON objects as returned by t === twitter.search $$count$$:: $$Number of tweets to return per page (e.g. per single request), up to a max of 100.$$ *($$Integer$$, default: `$$100$$`)* -$$lang$$:: $$Restricts searched tweets to the given language, given by an http://en.wikipedia.org/wiki/ISO_639-1 .$$ *($$String$$, default: `$$$$`)* +$$enabled$$:: $$Whether to enable Twitter search supplier.$$ *($$Boolean$$, default: `$$false$$`)* +$$lang$$:: $$Restricts searched tweets to the given language, given by an http://en.wikipedia.org/wiki/ISO_639-1.$$ *($$String$$, default: `$$$$`)* $$page$$:: $$Number of pages (e.g. requests) to search backwards (from most recent to the oldest tweets) before start the search from the most recent tweets again. The total amount of tweets searched backwards is (page * count)$$ *($$Integer$$, default: `$$3$$`)* $$query$$:: $$Search tweets by search query string.$$ *($$String$$, default: `$$$$`)* $$restart-from-most-recent-on-empty-response$$:: $$Restart search from the most recent tweets on empty response. Applied only after the first restart (e.g. when since_id != UNBOUNDED)$$ *($$Boolean$$, default: `$$false$$`)* -$$result-type$$:: $$Specifies what type of search results you would prefer to receive. The current default is "mixed." Valid values include: mixed : Include both popular and real time results in the response. recent : return only the most recent results in the response popular : return only the most popular results in the response$$ *($$ResultType$$, default: `$$$$`, possible values: `popular`,`mixed`,`recent`)* +$$result-type$$:: $$Specifies what type of search results you would prefer to receive. The current default is "mixed." Valid values include: mixed : Include both popular and real time results in the response. recent : return only the most recent results in the response popular : return only the most popular results in the response$$ *($$ResultType$$, default: `$$$$`, possible values: `popular`,`mixed`,`recent`)* $$since$$:: $$If specified, returns tweets with since the given date. Date should be formatted as YYYY-MM-DD.$$ *($$String$$, default: `$$$$`)* === twitter.search.geocode diff --git a/applications/source/twitter-search-source/pom.xml b/applications/source/twitter-search-source/pom.xml index 72912f93..dfc5dd78 100644 --- a/applications/source/twitter-search-source/pom.xml +++ b/applications/source/twitter-search-source/pom.xml @@ -17,23 +17,16 @@ org.springframework.cloud.fn - twitter-supplier + spring-twitter-supplier org.springframework.cloud.fn - function-test-support + spring-function-test-support test org.mock-server mockserver-netty - ${mockserver.version} - test - - - org.mock-server - mockserver-client-java - ${mockserver.version} test @@ -60,14 +53,14 @@ twitter-search source ${project.version} - org.springframework.cloud.fn.supplier.twitter.status.search.TwitterSearchSupplierConfiguration.class + AUTOCONFIGURATION twitterSearchSupplier org.springframework.cloud.fn - twitter-supplier + spring-twitter-supplier diff --git a/applications/source/twitter-search-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/search/TwitterSearchSourceIntegrationTests.java b/applications/source/twitter-search-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/search/TwitterSearchSourceIntegrationTests.java index 2ade8a0b..ea5ed0a8 100644 --- a/applications/source/twitter-search-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/search/TwitterSearchSourceIntegrationTests.java +++ b/applications/source/twitter-search-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/search/TwitterSearchSourceIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 the original author or authors. + * Copyright 2020-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,6 @@ package org.springframework.cloud.stream.app.source.twitter.search; import java.time.Duration; import java.util.List; -import java.util.concurrent.TimeUnit; import java.util.function.Function; import com.fasterxml.jackson.core.JsonProcessingException; @@ -38,16 +37,13 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; import org.springframework.cloud.fn.common.twitter.util.TwitterTestUtils; -import org.springframework.cloud.fn.supplier.twitter.status.search.TwitterSearchSupplierConfiguration; import org.springframework.cloud.fn.supplier.twitter.status.search.TwitterSearchSupplierProperties; import org.springframework.cloud.stream.binder.test.OutputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; import org.springframework.messaging.Message; -import org.springframework.test.util.TestSocketUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.mockserver.matchers.Times.exactly; @@ -57,13 +53,10 @@ import static org.mockserver.verify.VerificationTimes.once; /** * @author Christian Tzolov + * @author Artem Bilan */ public class TwitterSearchSourceIntegrationTests { - private static final String MOCK_SERVER_IP = "127.0.0.1"; - - private static final Integer MOCK_SERVER_PORT = TestSocketUtils.findAvailableTcpPort(); - private static ClientAndServer mockServer; private static MockServerClient mockClient; @@ -74,9 +67,8 @@ public class TwitterSearchSourceIntegrationTests { @BeforeAll public static void startServer() { - - mockServer = ClientAndServer.startClientAndServer(MOCK_SERVER_PORT); - mockClient = new MockServerClient(MOCK_SERVER_IP, MOCK_SERVER_PORT); + mockServer = ClientAndServer.startClientAndServer(); + mockClient = new MockServerClient("localhost", mockServer.getPort()); searchVratsaRequest = setExpectation(request() .withMethod("GET") @@ -113,6 +105,7 @@ public class TwitterSearchSourceIntegrationTests { "--twitter.connection.accessToken=accessToken666", "--twitter.connection.accessTokenSecret=accessTokenSecret666", "--twitter.search.query=Vratsa", + "--twitter.search.enabled=true", "--twitter.search.count=3", "--twitter.search.page=3")) { @@ -122,7 +115,7 @@ public class TwitterSearchSourceIntegrationTests { assertThat(message).isNotNull(); String payload = new String(message.getPayload()); - List tweets = new ObjectMapper().readValue(payload, List.class); + List tweets = new ObjectMapper().readValue(payload, List.class); assertThat(tweets).hasSize(3); mockClient.verify(searchVratsaRequest, once()); @@ -144,12 +137,12 @@ public class TwitterSearchSourceIntegrationTests { "--twitter.search.count=3", "--twitter.search.page=3", "--twitter.search.lang=en", + "--twitter.search.enabled=true", "--twitter.search.geocode.latitude=52.1", "--twitter.search.geocode.longitude=4.8", "--twitter.search.geocode.radius=10", "--twitter.search.since=2018-01-01", - "--twitter.search.resultType=popular", - "--spring.cloud.stream.poller.fixed-delay=10000")) { + "--twitter.search.resultType=popular")) { TwitterConnectionProperties twitterConnectionProperties = context.getBean(TwitterConnectionProperties.class); assertThat(twitterConnectionProperties.getConsumerKey()).isEqualTo("consumerKey666"); @@ -157,9 +150,6 @@ public class TwitterSearchSourceIntegrationTests { assertThat(twitterConnectionProperties.getAccessToken()).isEqualTo("accessToken666"); assertThat(twitterConnectionProperties.getAccessTokenSecret()).isEqualTo("accessTokenSecret666"); -// DefaultPollerProperties defaultPollerProperties = context.getBean(DefaultPollerProperties.class); -// assertThat(defaultPollerProperties.getFixedDelay()).isEqualTo(10000); - TwitterSearchSupplierProperties searchSupplierProperties = context.getBean(TwitterSearchSupplierProperties.class); @@ -178,7 +168,7 @@ public class TwitterSearchSourceIntegrationTests { assertThat(message).isNotNull(); String payload = new String(message.getPayload()); - List tweets = new ObjectMapper().readValue(payload, List.class); + List tweets = new ObjectMapper().readValue(payload, List.class); assertThat(tweets).hasSize(3); mockClient.verify(searchAmsterdamRequest, once()); @@ -195,14 +185,12 @@ public class TwitterSearchSourceIntegrationTests { new Header("Content-Type", "application/json; charset=utf-8"), new Header("Cache-Control", "public, max-age=86400")) .withBody(TwitterTestUtils.asString("classpath:/response/search_3.json")) - .withDelay(TimeUnit.SECONDS, 1) ); return request; } @SpringBootConfiguration @EnableAutoConfiguration - @Import(TwitterSearchSupplierConfiguration.class) public static class TestTwitterSearchSourceApplication { @Bean @@ -212,10 +200,11 @@ public class TwitterSearchSourceIntegrationTests { Function mockedConfiguration = toConfigurationBuilder.andThen( - new TwitterTestUtils().mockTwitterUrls( - String.format("http://%s:%s", MOCK_SERVER_IP, MOCK_SERVER_PORT))); + new TwitterTestUtils().mockTwitterUrls("http://localhost:" + mockServer.getPort())); return mockedConfiguration.apply(properties).build(); } + } + } diff --git a/applications/source/twitter-stream-source/README.adoc b/applications/source/twitter-stream-source/README.adoc index 6fb96b03..d374f881 100644 --- a/applications/source/twitter-stream-source/README.adoc +++ b/applications/source/twitter-stream-source/README.adoc @@ -28,18 +28,19 @@ $$consumer-secret$$:: $$Your Twitter secret.$$ *($$String$$, default: `$$$ $$debug-enabled$$:: $$Enables Twitter4J debug mode.$$ *($$Boolean$$, default: `$$false$$`)* $$raw-json$$:: $$Enable caching the original (raw) JSON objects as returned by the Twitter APIs. When set to False the result will use the Twitter4J's json representations. When set to True the result will use the original Twitter APISs json representations.$$ *($$Boolean$$, default: `$$true$$`)* +=== twitter.stream + +$$enabled$$:: $$Whether to enable Twitter streaming supplier.$$ *($$Boolean$$, default: `$$false$$`)* +$$type$$:: $$$$ *($$StreamType$$, default: `$$$$`, possible values: `sample`,`filter`,`firehose`,`link`)* + === twitter.stream.filter $$count$$:: $$Indicates the number of previous statuses to stream before transitioning to the live stream.$$ *($$Integer$$, default: `$$0$$`)* $$filter-level$$:: $$The filter level limits what tweets appear in the stream to those with a minimum filterLevel attribute value. One of either none, low, or medium.$$ *($$FilterLevel$$, default: `$$$$`)* $$follow$$:: $$Specifies the users, by ID, to receive public tweets from.$$ *($$List$$, default: `$$$$`)* $$language$$:: $$Specifies the tweets language of the stream.$$ *($$List$$, default: `$$$$`)* -$$locations$$:: $$Locations to track. Internally represented as 2D array. Bounding box is invalid: 52.38, 4.90, 51.51, -0.12. The first pair must be the SW corner of the box$$ *($$List$$, default: `$$$$`)* +$$locations$$:: $$Locations to track. Internally represented as 2D array. Bounding box is invalid: 52.38, 4.90, 51.51, -0.12. The first pair must be the SW corner of the box$$ *($$List$$, default: `$$$$`)* $$track$$:: $$Specifies keywords to track.$$ *($$List$$, default: `$$$$`)* - -=== twitter.stream - -$$type$$:: $$$$ *($$StreamType$$, default: `$$$$`, possible values: `sample`,`filter`,`firehose`,`link`)* //end::configuration-properties[] //end::ref-doc[] diff --git a/applications/source/twitter-stream-source/pom.xml b/applications/source/twitter-stream-source/pom.xml index c9fffbf1..efd790bb 100644 --- a/applications/source/twitter-stream-source/pom.xml +++ b/applications/source/twitter-stream-source/pom.xml @@ -17,23 +17,16 @@ org.springframework.cloud.fn - twitter-supplier + spring-twitter-supplier org.springframework.cloud.fn - function-test-support + spring-function-test-support test org.mock-server mockserver-netty - ${mockserver.version} - test - - - org.mock-server - mockserver-client-java - ${mockserver.version} test @@ -60,14 +53,14 @@ twitter-stream source ${project.version} - org.springframework.cloud.fn.supplier.twitter.status.stream.TwitterStreamSupplierConfiguration.class + AUTOCONFIGURATION twitterStreamSupplier org.springframework.cloud.fn - twitter-supplier + spring-twitter-supplier diff --git a/applications/source/twitter-stream-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/stream/TwitterStreamSourceTests.java b/applications/source/twitter-stream-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/stream/TwitterStreamSourceTests.java index 3fea1877..4450ae03 100644 --- a/applications/source/twitter-stream-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/stream/TwitterStreamSourceTests.java +++ b/applications/source/twitter-stream-source/src/test/java/org/springframework/cloud/stream/app/source/twitter/stream/TwitterStreamSourceTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2020 the original author or authors. + * Copyright 2020-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,12 +16,11 @@ package org.springframework.cloud.stream.app.source.twitter.stream; -import java.util.concurrent.TimeUnit; +import java.time.Duration; import java.util.function.Function; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockserver.client.MockServerClient; import org.mockserver.integration.ClientAndServer; @@ -36,14 +35,13 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; import org.springframework.cloud.fn.common.twitter.util.TwitterTestUtils; -import org.springframework.cloud.fn.supplier.twitter.status.stream.TwitterStreamSupplierConfiguration; import org.springframework.cloud.fn.supplier.twitter.status.stream.TwitterStreamSupplierProperties; +import org.springframework.cloud.stream.binder.test.OutputDestination; import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; -import org.springframework.test.util.TestSocketUtils; +import org.springframework.messaging.Message; import static org.assertj.core.api.Assertions.assertThat; import static org.mockserver.matchers.Times.exactly; @@ -53,35 +51,33 @@ import static org.mockserver.verify.VerificationTimes.once; public class TwitterStreamSourceTests { - private static final String MOCK_SERVER_IP = "127.0.0.1"; - - private static final Integer MOCK_SERVER_PORT = TestSocketUtils.findAvailableTcpPort(); - private static ClientAndServer mockServer; private static MockServerClient mockClient; + private static HttpRequest streamFilterRequest; + private static HttpRequest streamSampleRequest; + private static HttpRequest streamFirehoseRequest; - private static HttpRequest streamLinknsRequest; + + private static HttpRequest streamLinksRequest; @BeforeAll public static void startServer() { - - mockServer = ClientAndServer.startClientAndServer(MOCK_SERVER_PORT); - - mockClient = new MockServerClient(MOCK_SERVER_IP, MOCK_SERVER_PORT); + mockServer = ClientAndServer.startClientAndServer(); + mockClient = new MockServerClient("localhost", mockServer.getPort()); streamFilterRequest = mockClientRecordRequest(request() .withMethod("POST") .withPath("/stream/statuses/filter.json") - .withBody(new StringBody("count=0&track=Java%2CPython&stall_warnings=true"))); + .withBody(new StringBody("count=3&track=Java%2CPython&stall_warnings=true"))); streamSampleRequest = mockClientRecordRequest(request() .withMethod("GET") .withPath("/stream/statuses/sample.json")); - streamLinknsRequest = mockClientRecordRequest(request() + streamLinksRequest = mockClientRecordRequest(request() .withMethod("GET") .withPath("/stream/statuses/links.json")); //.withBody(new StringBody("count=0&stall_warnings=true"))); @@ -98,7 +94,6 @@ public class TwitterStreamSourceTests { } @Test - @Disabled public void testSourceFromSupplier() { try (ConfigurableApplicationContext context = new SpringApplicationBuilder( TestChannelBinderConfiguration.getCompleteConfiguration(TestTwitterStreamSourceApplication.class)) @@ -110,6 +105,7 @@ public class TwitterStreamSourceTests { "--twitter.connection.accessToken=accessToken666", "--twitter.connection.accessTokenSecret=accessTokenSecret666", + "--twitter.stream.enabled=true", "--twitter.stream.type=filter", "--twitter.stream.filter.track=Java,Python", "--twitter.stream.filter.count=3")) { @@ -125,9 +121,9 @@ public class TwitterStreamSourceTests { assertThat(twitterStreamSupplierProperties.getType()).isEqualTo(TwitterStreamSupplierProperties.StreamType.filter); assertThat(twitterStreamSupplierProperties.getFilter().getTrack()).contains("Java", "Python"); - //OutputDestination target = context.getBean(OutputDestination.class); - //Message sourceMessage = target.receive(10000); - //final String actual = new String(sourceMessage.getPayload()); + OutputDestination outputDestination = context.getBean(OutputDestination.class); + Message message = outputDestination.receive(Duration.ofSeconds(300).toMillis(), "twitterStreamSupplier-out-0"); + assertThat(message).isNotNull(); mockClient.verify(streamFilterRequest, once()); } @@ -140,14 +136,12 @@ public class TwitterStreamSourceTests { .withHeaders( new Header("Content-Type", "application/json; charset=utf-8"), new Header("Cache-Control", "public, max-age=86400")) - .withBody(TwitterTestUtils.asString("classpath:/response/stream_test_1.json")) - .withDelay(TimeUnit.SECONDS, 10)); + .withBody(TwitterTestUtils.asString("classpath:/response/stream_test_1.json"))); return request; } @SpringBootConfiguration @EnableAutoConfiguration - @Import(TwitterStreamSupplierConfiguration.class) public static class TestTwitterStreamSourceApplication { @Bean @@ -157,10 +151,11 @@ public class TwitterStreamSourceTests { Function mockedConfiguration = toConfigurationBuilder.andThen( - new TwitterTestUtils().mockTwitterUrls( - String.format("http://%s:%s", MOCK_SERVER_IP, MOCK_SERVER_PORT))); + new TwitterTestUtils().mockTwitterUrls("http://localhost:" + mockServer.getPort())); return mockedConfiguration.apply(properties).build(); } + } + } diff --git a/applications/source/websocket-source/pom.xml b/applications/source/websocket-source/pom.xml index 715835a9..9c298592 100644 --- a/applications/source/websocket-source/pom.xml +++ b/applications/source/websocket-source/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud.fn - websocket-supplier + spring-websocket-supplier org.springframework.boot @@ -53,13 +53,13 @@ websocket source ${project.version} - org.springframework.cloud.fn.supplier.websocket.WebsocketSupplierConfiguration.class - + AUTOCONFIGURATION + websocketSupplier org.springframework.cloud.fn - websocket-supplier + spring-websocket-supplier org.springframework.cloud.stream.app diff --git a/applications/source/xmpp-source/README.adoc b/applications/source/xmpp-source/README.adoc index 6048f9bd..2c2f4742 100644 --- a/applications/source/xmpp-source/README.adoc +++ b/applications/source/xmpp-source/README.adoc @@ -25,8 +25,8 @@ Properties grouped by prefix: $$host$$:: $$XMPP Host server to connect to.$$ *($$String$$, default: `$$$$`)* $$password$$:: $$The Password for the connected user.$$ *($$String$$, default: `$$$$`)* -$$port$$:: $$Port for connecting to the host. - Default Client Port: 5222$$ *($$Integer$$, default: `$$5222$$`)* -$$resource$$:: $$The Resource to bind to on the XMPP Host. - Can be empty, server will generate one if not set$$ *($$String$$, default: `$$$$`)* +$$port$$:: $$Port for connecting to the host. - Default Client Port: 5222$$ *($$Integer$$, default: `$$5222$$`)* +$$resource$$:: $$The Resource to bind to on the XMPP Host. - Can be empty, server will generate one if not set$$ *($$String$$, default: `$$$$`)* $$security-mode$$:: $$$$ *($$SecurityMode$$, default: `$$$$`, possible values: `required`,`ifpossible`,`disabled`)* $$service-name$$:: $$The Service Name to set for the XMPP Domain.$$ *($$String$$, default: `$$$$`)* $$subscription-mode$$:: $$$$ *($$SubscriptionMode$$, default: `$$$$`, possible values: `accept_all`,`reject_all`,`manual`)* diff --git a/applications/source/xmpp-source/pom.xml b/applications/source/xmpp-source/pom.xml index 9d634eec..d407932c 100644 --- a/applications/source/xmpp-source/pom.xml +++ b/applications/source/xmpp-source/pom.xml @@ -20,7 +20,7 @@ org.springframework.cloud.fn - xmpp-supplier + spring-xmpp-supplier @@ -37,7 +37,7 @@ org.springframework.cloud.fn - function-test-support + spring-function-test-support ${project.version} test @@ -66,14 +66,13 @@ xmpp source ${project.version} - org.springframework.cloud.fn.supplier.xmpp.XmppSupplierConfiguration.class - - + AUTOCONFIGURATION + xmppSupplier org.springframework.cloud.fn - xmpp-supplier + spring-xmpp-supplier org.springframework.cloud.stream.app diff --git a/applications/source/zeromq-source/pom.xml b/applications/source/zeromq-source/pom.xml index 5086f239..f7cf7b53 100644 --- a/applications/source/zeromq-source/pom.xml +++ b/applications/source/zeromq-source/pom.xml @@ -20,7 +20,7 @@ org.springframework.cloud.fn - zeromq-supplier + spring-zeromq-supplier @@ -54,14 +54,13 @@ zeromq source ${project.version} - org.springframework.cloud.fn.supplier.zeromq.ZeroMqSupplierConfiguration.class - - + AUTOCONFIGURATION + zeromqSupplier org.springframework.cloud.fn - zeromq-supplier + spring-zeromq-supplier org.springframework.cloud.stream.app diff --git a/applications/stream-applications-core/pom.xml b/applications/stream-applications-core/pom.xml index 1e668e66..b3a20829 100644 --- a/applications/stream-applications-core/pom.xml +++ b/applications/stream-applications-core/pom.xml @@ -38,7 +38,7 @@ org.springframework.cloud.fn - function-dependencies + spring-functions-catalog-bom ${java-functions.version} pom import @@ -60,11 +60,6 @@ mockserver-netty ${mockserver.version} - - org.mock-server - mockserver-client-java - ${mockserver.version} - org.junit junit-bom @@ -193,7 +188,7 @@ org.springframework.cloud.fn - function-dependencies + spring-function-dependencies ${java-functions.version} diff --git a/applications/stream-applications-core/stream-applications-composite-function-support/pom.xml b/applications/stream-applications-core/stream-applications-composite-function-support/pom.xml index 85b414de..8246bf8f 100644 --- a/applications/stream-applications-core/stream-applications-composite-function-support/pom.xml +++ b/applications/stream-applications-core/stream-applications-composite-function-support/pom.xml @@ -34,28 +34,23 @@ org.springframework.cloud.fn - filter-function - ${java-functions.version} + spring-filter-function org.springframework.cloud.fn - spel-function - ${java-functions.version} + spring-spel-function org.springframework.cloud.fn - header-enricher-function - ${java-functions.version} + spring-header-enricher-function org.springframework.cloud.fn - payload-converter-function - ${java-functions.version} + spring-payload-converter-function org.springframework.cloud.fn - task-launch-request-function - ${java-functions.version} + spring-task-launch-request-function diff --git a/applications/stream-applications-core/stream-applications-security-common/pom.xml b/applications/stream-applications-core/stream-applications-security-common/pom.xml index ea5a09df..0c391ea1 100644 --- a/applications/stream-applications-core/stream-applications-security-common/pom.xml +++ b/applications/stream-applications-core/stream-applications-security-common/pom.xml @@ -49,11 +49,6 @@ org.springframework.boot spring-boot-starter-security - - org.springframework.cloud - spring-cloud-stream-test-binder - test - diff --git a/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebFluxSecurityAutoConfiguration.java b/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebFluxSecurityAutoConfiguration.java index adf3eda6..29cf1c93 100644 --- a/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebFluxSecurityAutoConfiguration.java +++ b/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebFluxSecurityAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 the original author or authors. + * Copyright 2019-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,16 +29,18 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.boot.autoconfigure.security.reactive.ReactiveSecurityAutoConfiguration; +import org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; import org.springframework.http.HttpMethod; +import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; import org.springframework.security.config.web.server.ServerHttpSecurity; import org.springframework.security.core.userdetails.MapReactiveUserDetailsService; +import org.springframework.security.core.userdetails.ReactiveUserDetailsService; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.factory.PasswordEncoderFactories; import org.springframework.security.web.server.SecurityWebFilterChain; import org.springframework.security.web.server.WebFilterChainProxy; @@ -54,11 +56,12 @@ import org.springframework.web.reactive.config.WebFluxConfigurer; */ @Conditional(OnHttpCsrfOrSecurityDisabled.class) @AutoConfiguration -@ConditionalOnClass({ Flux.class, EnableWebFluxSecurity.class, WebFilterChainProxy.class, WebFluxConfigurer.class }) +@ConditionalOnClass({Flux.class, EnableWebFluxSecurity.class, WebFilterChainProxy.class, WebFluxConfigurer.class}) @ConditionalOnMissingBean(WebFilterChainProxy.class) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) -@AutoConfigureBefore({ ReactiveManagementWebSecurityAutoConfiguration.class, - ReactiveSecurityAutoConfiguration.class }) +@AutoConfigureBefore({ReactiveManagementWebSecurityAutoConfiguration.class, + ReactiveSecurityAutoConfiguration.class, + ReactiveUserDetailsServiceAutoConfiguration.class}) @EnableConfigurationProperties(AppStarterWebSecurityAutoConfigurationProperties.class) public class AppStarterWebFluxSecurityAutoConfiguration { @@ -66,22 +69,22 @@ public class AppStarterWebFluxSecurityAutoConfiguration { private PathMappedEndpoints pathMappedEndpoints; @Bean - @ConditionalOnMissingBean(UserDetailsService.class) + @ConditionalOnMissingBean(ReactiveUserDetailsService.class) public MapReactiveUserDetailsService userDetailsService(SecurityProperties securityProperties, - AppStarterWebSecurityAutoConfigurationProperties streamAppsecurityProperties) { + AppStarterWebSecurityAutoConfigurationProperties streamAppSecurityProperties) { UserDetails primaryUser = User.builder() .username(securityProperties.getUser().getName()) .password(securityProperties.getUser().getPassword()) .passwordEncoder(PasswordEncoderFactories.createDelegatingPasswordEncoder()::encode) .roles(securityProperties.getUser().getRoles() - .toArray(new String[securityProperties.getUser().getRoles().size()])) + .toArray(new String[0])) .build(); - if (StringUtils.hasText(streamAppsecurityProperties.getAdminPassword()) && - StringUtils.hasText(streamAppsecurityProperties.getAdminUser())) { + if (StringUtils.hasText(streamAppSecurityProperties.getAdminPassword()) && + StringUtils.hasText(streamAppSecurityProperties.getAdminUser())) { UserDetails user = User.builder() - .username(streamAppsecurityProperties.getAdminUser()) - .password(streamAppsecurityProperties.getAdminPassword()) + .username(streamAppSecurityProperties.getAdminUser()) + .password(streamAppSecurityProperties.getAdminPassword()) .roles("ADMIN") .passwordEncoder(PasswordEncoderFactories.createDelegatingPasswordEncoder()::encode) .build(); @@ -96,37 +99,36 @@ public class AppStarterWebFluxSecurityAutoConfiguration { String managementPath = pathMappedEndpoints.getBasePath() + "/**"; if (!securityProperties.isCsrfEnabled()) { - http.csrf().disable(); + http.csrf(ServerHttpSecurity.CsrfSpec::disable); } else { /* * See https://stackoverflow.com/questions/51079564/spring-security-antmatchers-not-being- * applied-on-post-requests-and-only-works-wi/51088555 */ - http.csrf().requireCsrfProtectionMatcher(exchange -> new AntPathMatcher() - .match(managementPath, - exchange.getRequest().getPath().value()) + http.csrf((csrfSpec) -> + csrfSpec.requireCsrfProtectionMatcher(exchange -> + new AntPathMatcher().match(managementPath, exchange.getRequest().getPath().value()) ? ServerWebExchangeMatcher.MatchResult.notMatch() - : ServerWebExchangeMatcher.MatchResult.match()); + : ServerWebExchangeMatcher.MatchResult.match())); } if (!securityProperties.isEnabled()) { - http.authorizeExchange() - .anyExchange() - .permitAll(); + http.authorizeExchange((authorizeExchangeSpec) -> authorizeExchangeSpec.anyExchange().permitAll()); } else { - http.authorizeExchange() - .pathMatchers(HttpMethod.POST, managementPath).hasRole("ADMIN") - .pathMatchers( - pathMappedEndpoints.getBasePath(), - pathMappedEndpoints.getPath(EndpointId.of("health")), - pathMappedEndpoints.getPath(EndpointId.of("info")), - pathMappedEndpoints.getPath(EndpointId.of("bindings"))) - .permitAll().anyExchange().authenticated(); - http.httpBasic(); - http.formLogin(); + http.authorizeExchange((authorizeExchangeSpec) -> authorizeExchangeSpec + .pathMatchers(HttpMethod.POST, managementPath).hasRole("ADMIN") + .pathMatchers( + pathMappedEndpoints.getBasePath(), + pathMappedEndpoints.getPath(EndpointId.of("health")), + pathMappedEndpoints.getPath(EndpointId.of("info")), + pathMappedEndpoints.getPath(EndpointId.of("bindings"))) + .permitAll().anyExchange().authenticated()) + .formLogin(Customizer.withDefaults()) + .httpBasic(Customizer.withDefaults()); } return http.build(); } + } diff --git a/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebSecurityAutoConfiguration.java b/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebSecurityAutoConfiguration.java index ba8ea6e2..76dd3c4f 100644 --- a/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebSecurityAutoConfiguration.java +++ b/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebSecurityAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2018-2022 the original author or authors. + * Copyright 2018-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,11 +18,8 @@ package org.springframework.cloud.stream.app.security.common; import java.util.Collections; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties; import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest; import org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration; -import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -35,8 +32,10 @@ import org.springframework.context.annotation.Conditional; import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.authority.SimpleGrantedAuthority; @@ -56,14 +55,11 @@ import org.springframework.util.StringUtils; @ConditionalOnClass(SecurityFilterChain.class) @ConditionalOnMissingBean(SecurityFilterChain.class) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) -@AutoConfigureBefore({ ManagementWebSecurityAutoConfiguration.class, SecurityAutoConfiguration.class }) +@AutoConfigureBefore({ManagementWebSecurityAutoConfiguration.class, SecurityAutoConfiguration.class}) @EnableConfigurationProperties(AppStarterWebSecurityAutoConfigurationProperties.class) @EnableWebSecurity public class AppStarterWebSecurityAutoConfiguration { - @Autowired - private WebEndpointProperties webEndpointProperties; - /* * Spring security will discover this provider. It grants the ADMIN ROLE to the admin * user, if configured, otherwise it passes through the current authentication. @@ -83,7 +79,7 @@ public class AppStarterWebSecurityAutoConfiguration { return new UsernamePasswordAuthenticationToken(securityProperties.getAdminUser(), securityProperties.getAdminPassword(), Collections.singletonList( - new SimpleGrantedAuthority("ROLE_ADMIN"))); + new SimpleGrantedAuthority("ROLE_ADMIN"))); } return authentication; } @@ -100,25 +96,30 @@ public class AppStarterWebSecurityAutoConfiguration { AppStarterWebSecurityAutoConfigurationProperties securityProperties) throws Exception { if (!securityProperties.isCsrfEnabled()) { - http.csrf().disable(); + http.csrf(AbstractHttpConfigurer::disable); } else { /* * See https://stackoverflow.com/questions/51079564/spring-security-antmatchers-not-being- * applied-on-post-requests-and-only-works-wi/51088555 */ - http.csrf().ignoringRequestMatchers(MethodAwareEndpointRequest.toAnyEndpoint(HttpMethod.POST)); + http.csrf((csrfConfigurer) -> + csrfConfigurer.ignoringRequestMatchers(MethodAwareEndpointRequest.toAnyEndpoint(HttpMethod.POST))); } if (securityProperties.isEnabled()) { - http.authorizeHttpRequests() - .requestMatchers(MethodAwareEndpointRequest.toAnyEndpoint(HttpMethod.POST)).hasRole("ADMIN") - .requestMatchers(EndpointRequest.toLinks()).permitAll() - .requestMatchers(EndpointRequest.to("health", "info", "bindings")).permitAll() - .requestMatchers(EndpointRequest.toAnyEndpoint()).authenticated() - .and().formLogin().and().httpBasic(); + http.authorizeHttpRequests((authorizeHttpRequests) -> + authorizeHttpRequests + .requestMatchers(MethodAwareEndpointRequest.toAnyEndpoint(HttpMethod.POST)).hasRole("ADMIN") + .requestMatchers(EndpointRequest.toLinks()).permitAll() + .requestMatchers(EndpointRequest.to("health", "info", "bindings")).permitAll() + .requestMatchers(EndpointRequest.toAnyEndpoint()).authenticated() + ) + .formLogin(Customizer.withDefaults()) + .httpBasic(Customizer.withDefaults()); } else { - http.authorizeHttpRequests().anyRequest().permitAll(); + http.authorizeHttpRequests((authorizeHttpRequests) -> + authorizeHttpRequests.anyRequest().permitAll()); } return http.build(); } @@ -128,25 +129,6 @@ public class AppStarterWebSecurityAutoConfiguration { */ static class MethodAwareEndpointRequest { - /** - * Returns a matcher that includes the specified {@link Endpoint actuator endpoints} and http method. - * For example:

-		 * EndpointRequest.to(HttpMethod.POST, "loggers")
-		 * 
- * @param httpMethod the http method to include - * @param endpoints the endpoints to include - * @return the configured {@link RequestMatcher} - */ - static RequestMatcher to(HttpMethod httpMethod, String... endpoints) { - final EndpointRequest.EndpointRequestMatcher matcher = EndpointRequest.to(endpoints); - return (request) -> { - if (!httpMethod.toString().equals(request.getMethod())) { - return false; - } - return matcher.matches(request); - }; - } - static RequestMatcher toAnyEndpoint(HttpMethod httpMethod) { final EndpointRequest.EndpointRequestMatcher matcher = EndpointRequest.toAnyEndpoint(); return (request) -> { @@ -156,5 +138,7 @@ public class AppStarterWebSecurityAutoConfiguration { return matcher.matches(request); }; } + } + } diff --git a/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/ReactiveSecurityEnabledManagementSecurityEnabledTests.java b/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/ReactiveSecurityEnabledManagementSecurityEnabledTests.java index 7ac1e7a1..058b3bb6 100644 --- a/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/ReactiveSecurityEnabledManagementSecurityEnabledTests.java +++ b/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/ReactiveSecurityEnabledManagementSecurityEnabledTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 the original author or authors. + * Copyright 2019-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -96,7 +96,7 @@ public class ReactiveSecurityEnabledManagementSecurityEnabledTests extends Abstr Collections.singletonMap("state", "STOPPED"), Void.class); assertThat(response.getStatusCode()).isIn(HttpStatus.NO_CONTENT, HttpStatus.OK); String result = this.restTemplate.getForEntity("/actuator/bindings", String.class).getBody(); - assertThat(result.contains("\"state\":\"stopped\"")).isTrue(); + assertThat(result).contains("\"state\":\"stopped\""); } @Test diff --git a/applications/stream-applications-core/stream-applications-test-support/pom.xml b/applications/stream-applications-core/stream-applications-test-support/pom.xml index 0f764f5e..288f42a3 100644 --- a/applications/stream-applications-core/stream-applications-test-support/pom.xml +++ b/applications/stream-applications-core/stream-applications-test-support/pom.xml @@ -38,12 +38,10 @@ org.springframework.kafka spring-kafka - ${spring-kafka.version} org.springframework.amqp spring-rabbit - ${spring-rabbit.version} org.springframework @@ -57,19 +55,16 @@ org.testcontainers junit-jupiter - ${testcontainers.version} compile org.testcontainers kafka - ${testcontainers.version} compile org.testcontainers rabbitmq - ${testcontainers.version} compile diff --git a/applications/stream-applications-integration-tests/pom.xml b/applications/stream-applications-integration-tests/pom.xml index 845c3223..42739712 100644 --- a/applications/stream-applications-integration-tests/pom.xml +++ b/applications/stream-applications-integration-tests/pom.xml @@ -70,12 +70,12 @@ org.springframework.cloud.fn - function-test-support + spring-function-test-support test org.springframework.cloud.fn - s3-supplier + spring-s3-supplier com.squareup.okhttp3 diff --git a/build-core.sh b/build-core.sh index d60b7d37..a9bc42ed 100755 --- a/build-core.sh +++ b/build-core.sh @@ -20,4 +20,4 @@ else MAVEN_GOAL="$*" fi -$SCDIR/build-folder.sh stream-applications-build,functions,applications/stream-applications-core "$MAVEN_GOAL" +$SCDIR/build-folder.sh stream-applications-build,applications/stream-applications-core "$MAVEN_GOAL" diff --git a/functions/common/aws-s3-common/pom.xml b/functions/common/aws-s3-common/pom.xml deleted file mode 100644 index f8262c88..00000000 --- a/functions/common/aws-s3-common/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/common/aws-s3-common/src/main/java/org/springframework/cloud/fn/common/aws/s3/AmazonS3Configuration.java b/functions/common/aws-s3-common/src/main/java/org/springframework/cloud/fn/common/aws/s3/AmazonS3Configuration.java deleted file mode 100644 index 6f9f07e5..00000000 --- a/functions/common/aws-s3-common/src/main/java/org/springframework/cloud/fn/common/aws/s3/AmazonS3Configuration.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.common.aws.s3; - -import java.net.URI; - -import io.awspring.cloud.autoconfigure.s3.S3AutoConfiguration; -import io.awspring.cloud.autoconfigure.s3.S3CrtAsyncClientAutoConfiguration; -import io.awspring.cloud.autoconfigure.s3.properties.S3Properties; -import software.amazon.awssdk.services.s3.S3Client; - -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.annotation.Bean; -import org.springframework.integration.aws.support.S3SessionFactory; - -/** - * @author Artem Bilan - */ -@AutoConfiguration -@AutoConfigureAfter({S3AutoConfiguration.class, S3CrtAsyncClientAutoConfiguration.class}) -public class AmazonS3Configuration { - - @Bean - @ConditionalOnMissingBean - public S3SessionFactory s3SessionFactory(S3Client amazonS3, S3Properties s3Properties) { - S3SessionFactory s3SessionFactory = new S3SessionFactory(amazonS3); - URI endpoint = s3Properties.getEndpoint(); - if (endpoint != null) { - s3SessionFactory.setEndpoint(String.join(":", endpoint.getHost(), String.valueOf(endpoint.getPort()))); - } - return s3SessionFactory; - } - -} diff --git a/functions/common/aws-s3-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/common/aws-s3-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index cf831442..00000000 --- a/functions/common/aws-s3-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.common.aws.s3.AmazonS3Configuration diff --git a/functions/common/aws-s3-common/src/test/java/org/springframework/cloud/fn/common/aws/s3/AmazonS3ConfigurationTests.java b/functions/common/aws-s3-common/src/test/java/org/springframework/cloud/fn/common/aws/s3/AmazonS3ConfigurationTests.java deleted file mode 100644 index ab1cf09c..00000000 --- a/functions/common/aws-s3-common/src/test/java/org/springframework/cloud/fn/common/aws/s3/AmazonS3ConfigurationTests.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2020-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.common.aws.s3; - -import io.awspring.cloud.autoconfigure.core.AwsAutoConfiguration; -import io.awspring.cloud.autoconfigure.s3.S3AutoConfiguration; -import io.awspring.cloud.autoconfigure.s3.S3CrtAsyncClientAutoConfiguration; -import io.awspring.cloud.core.region.StaticRegionProvider; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; -import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; -import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; -import software.amazon.awssdk.regions.Region; -import software.amazon.awssdk.regions.providers.AwsRegionProvider; -import software.amazon.awssdk.services.s3.S3Client; -import software.amazon.awssdk.services.s3.S3Utilities; -import software.amazon.awssdk.services.s3.model.GetUrlRequest; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.context.annotation.Bean; -import org.springframework.integration.test.util.TestUtils; - -/** - * @author Timo Salm - * @author Artem Bilan - */ -public class AmazonS3ConfigurationTests { - - private final ApplicationContextRunner runner = new ApplicationContextRunner() - .withConfiguration( - AutoConfigurations.of( - AwsAutoConfiguration.class, - S3AutoConfiguration.class, - S3CrtAsyncClientAutoConfiguration.class, - AmazonS3Configuration.class)) - .withUserConfiguration(TestConfiguration.class); - - private static final String TEST_REGION_NAME = "eu-central-1"; - - @Test - public void testAmazonS3Configuration() { - runner.withPropertyValues().run(context -> { - S3Client amazonS3 = context.getBean(S3Client.class); - Assertions.assertNotNull(amazonS3); - S3Utilities utilities = amazonS3.utilities(); - Assertions.assertEquals(TEST_REGION_NAME, - TestUtils.getPropertyValue(utilities, "region", Region.class).id()); - Assertions.assertTrue( - utilities.getUrl(GetUrlRequest.builder().bucket("b").key("k").build()).toString() - .startsWith("https://s3.eu-central-1.amazonaws.com")); - }); - } - - @Test - public void testAmazonS3ConfigurationForS3CompatibleStorage() { - runner.withPropertyValues( - "spring.cloud.aws.s3.endpoint=http://localhost:8080" - ).run(context -> { - S3Client amazonS3 = context.getBean(S3Client.class); - Assertions.assertNotNull(amazonS3); - S3Utilities utilities = amazonS3.utilities(); - Assertions.assertTrue(utilities.getUrl(GetUrlRequest.builder().bucket("b").key("k").build()).toString() - .startsWith("http://localhost:8080")); - }); - } - - private static class TestConfiguration { - - @Bean - AwsRegionProvider regionProvider() { - return new StaticRegionProvider(TEST_REGION_NAME); - } - - @Bean - AwsCredentialsProvider awsCredentialsProvider() { - return StaticCredentialsProvider.create(AwsBasicCredentials.create("accessKey", "secretKey")); - } - - } - -} diff --git a/functions/common/config-common/pom.xml b/functions/common/config-common/pom.xml deleted file mode 100644 index c25f4640..00000000 --- a/functions/common/config-common/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.stream.app - stream-applications-build - 5.0.0-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/functions/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/ComponentCustomizer.java b/functions/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/ComponentCustomizer.java deleted file mode 100644 index 3af872ae..00000000 --- a/functions/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/ComponentCustomizer.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2022-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.common.config; - -/** - * The customizer contract to apply to beans in the application context which - * type is matching to generic type of the instance of this interface. - * - * @param the target component (bean) type in the application context to customize. - * - * @author Artem Bilan - * - * @since 1.2.1 - */ -@FunctionalInterface -public interface ComponentCustomizer { - - void customize(T component); - -} diff --git a/functions/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/SpelExpressionConverterConfiguration.java b/functions/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/SpelExpressionConverterConfiguration.java deleted file mode 100644 index a1f73150..00000000 --- a/functions/common/config-common/src/main/java/org/springframework/cloud/fn/common/config/SpelExpressionConverterConfiguration.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.config; - -import java.beans.Introspector; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; -import org.springframework.boot.context.properties.ConfigurationPropertiesBinding; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Lazy; -import org.springframework.core.convert.converter.Converter; -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.Expression; -import org.springframework.expression.ParseException; -import org.springframework.expression.spel.standard.SpelExpression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.integration.config.IntegrationConverter; -import org.springframework.integration.expression.SpelPropertyAccessorRegistrar; -import org.springframework.integration.json.JsonPropertyAccessor; - -@AutoConfiguration -@AutoConfigureAfter(name = "org.springframework.cloud.stream.config.SpelExpressionConverterConfiguration") -@ConditionalOnMissingClass("org.springframework.cloud.stream.config.SpelExpressionConverterConfiguration") -public class SpelExpressionConverterConfiguration { - - /** - * Specific Application Context name to be used as Bean qualifier when the {@link EvaluationContext} is injected. - */ - public static final String INTEGRATION_EVALUATION_CONTEXT = "integrationEvaluationContext"; - - @Bean - public static SpelPropertyAccessorRegistrar spelPropertyAccessorRegistrar() { - return (new SpelPropertyAccessorRegistrar()) - .add(Introspector.decapitalize(JsonPropertyAccessor.class.getSimpleName()), new JsonPropertyAccessor()); - } - - @Bean - @ConfigurationPropertiesBinding - @IntegrationConverter - public Converter spelConverter() { - return new SpelExpressionConverterConfiguration.SpelConverter(); - } - - public static class SpelConverter implements Converter { - private SpelExpressionParser parser = new SpelExpressionParser(); - - @Autowired - @Qualifier(INTEGRATION_EVALUATION_CONTEXT) - @Lazy - private EvaluationContext evaluationContext; - - public SpelConverter() { - } - - public Expression convert(String source) { - try { - Expression expression = this.parser.parseExpression(source); - if (expression instanceof SpelExpression) { - ((SpelExpression) expression).setEvaluationContext(this.evaluationContext); - } - - return expression; - } - catch (ParseException var3) { - throw new IllegalArgumentException( - String.format("Could not convert '%s' into a SpEL expression", source), var3); - } - } - } -} diff --git a/functions/common/config-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/common/config-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index b62b5d1b..00000000 --- a/functions/common/config-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.common.config.SpelExpressionConverterConfiguration diff --git a/functions/common/debezium-autoconfigure/README.adoc b/functions/common/debezium-autoconfigure/README.adoc deleted file mode 100644 index b618e8a6..00000000 --- a/functions/common/debezium-autoconfigure/README.adoc +++ /dev/null @@ -1,353 +0,0 @@ -= Debezium Auto-Configuration - -This module provides a generic https://debezium.io/documentation/reference/development/engine.html[DebeziumEngine.Builder] auto-configuration that can be reused and composed in other applications. - -IMPORTANT: The `DebeziumEngine` does not required Kafka or Kafka Connect as it runs embedded inside your application. -This approach though comes with some delivery guarantee limitations as explained https://debezium.io/documentation/reference/development/engine.html#%5Fhandling_failures[here]. - -The `Debezium Engine` is a https://en.wikipedia.org/wiki/Change_data_capture[Change Data Capture] (CDC) utility, that allows *capturing* database change events and process them with custom `java.util.Consumer` or `io.debezium.engine.ChangeConsumer` event handler implementations. - -The `DebeziumEngine.Builder` auto-configuration is activated only if a https://debezium.io/documentation/reference/stable/connectors/index.html[Debezium Connector] is found on the classpath and the `debezium.properties.connector.class` property is set to point to that connector class. - -== Quick Start - -To use the `DebeziumEngine`, set the required <> and <>, register a custom <> with the engine and submit later for execution. - Those simple steps are illustrated in the following sections. - -[[dependencies]] -=== Dependencies - -To process the incoming database change events you need to include the Debezium `auto-configuration` dependency to your project: - -==== -[source, xml, subs="normal", role="primary"] -.Maven ----- - - org.springframework.cloud.fn - debezium-autoconfigure - ${project-version} - ----- -[source, groovy, subs="normal", role="secondary"] -.Gradle ----- -compile "org.springframework.cloud.fn:debezium-autoconfigure:{project-version}" ----- -==== - -and include the https://debezium.io/documentation/reference/connectors/index.html[debezium connector] dependency for the selected Database. -For example the postgres debezium connector dependency looks like this: - -==== -[source, xml, subs="normal", role="primary"] -.Maven ----- - - io.debezium - debezium-connector-postgres - ${debezium-version} - - ----- -[source, groovy, subs="normal", role="secondary"] -.Gradle ----- -compile "io.debezium:debezium-connector-postgres:{debezium-version}" ----- -==== -[[changeEvent-handler]] -### ChangeEvent Handler - -To process the incoming change events, implement a `java.util.Consumer` (or `ChangeConsumer`) handler and wire it into the `DebeziumEngine.Builder`. -Then build an engine from the builder and run it from within an Executor service: - -[source, java] ----- -public void simple(DebeziumEngine.Builder> builder) { - Executors.newSingleThreadExecutor().execute(builder // <3> - .notifying(changeEvent -> System.out.println(changeEvent.value())) // <1> - .build()); // <2> -} ----- -<1> Implement and register a change events consumer. -<2> Build the Debezium engine. -<3> Submit the engine to a single thread executor. - -For a real life applications you should manage the lifecycles of the engine and its executor. -The Spring `Lifecycle` and `SmartLifecycle` interfaces can help you to manage this. -Here is a more realistic example snipped: - -[source, java] ----- -@Bean -public Consumer> customConsumer() { // <1> - return new Consumer>() { - @Override - public void accept(ChangeEvent changeEvent) { - if (changeEvent != null) { // ignore null records - System.out.println("Key:" + changeEvent.key() + ", Value: " changeEvent.value()); - } - } - } -} - -@Bean -public DebeziumEngine> debeziumEngine( // <2> - Consumer> consumer, - DebeziumEngine.Builder> builder) { - - return new builder.notifying(consumer).build(); -} - -@Bean -public EmbeddedEngineExecutorService embeddedEngine( // <3> - DebeziumEngine> debeziumEngine) { - return new EmbeddedEngineExecutorService(debeziumEngine); -} ----- -<1> Create a custom change event consumer. -<2> Use the consumer from step (1) and the debezium builder provided from the auto-configuration to create a new DebeziumEngine instance. -<3> The DebeziumEngine is designed to be submitted to an `Executor` or `ExecutorService` for execution. -The `EmbeddedEngineExecutorService` is a convenient `ExecutorService` implementation, aligned with the Spring lifecycle. - -NOTE: The `EmbeddedEngineExecutorService` is optional. -Some application such as `DebeziumReactiveConsumerConfiguration` implement the ExecutorService as part of their -`Supplier>>` configuration. - -NOTE: Neither the `Consumer`/`ChangeConsumer` nor the `DebeziumEngine` need to be `@Bean`! -It is enough to set some consumer into it the `DebeziumEngine.Builder`, build an engine and run it from within some `@Service` implementation. - -[[configuration-options]] -== Configuration Options - -$$debezium.header-format$$:: `ChangeEvent` header format. -*(default and only option at the moment: `JSON`)* -$$debezium.payload-format$$:: `ChangeEvent` Key and Payload formats. -*($$DebeziumFormat$$, default: `JSON`, possible values: `JSON`,`AVRO`,`PROTOBUF`)* -$$debezium.offset-commit-policy$$:: The policy that defines when the offsets should be committed to offset storage. -*($$DebeziumOffsetCommitPolicy$$, default: `PERIODIC`, possible values: `ALWAYS`,`PERIODIC`,`DEFAULT`)* -$$debezium.properties$$:: $$Spring pass-trough wrapper for debezium configuration properties. -All properties with a `debezium.properties.*` prefix are native Debezium properties.$$ *($$Map$$, default: `$$$$`)*. -For example the `debezium.properties.connector.class` property is converted into `connector.class` before provided to the DebeziumEngine. - -Here is an example configuration for the sample snipped above: - -[source, bash] ----- -debezium.properties.connector.class=io.debezium.connector.mysql.MySqlConnector # <1> - -debezium.properties.database.user=debezium # <2> -debezium.properties.database.password=dbz # <2> -debezium.properties.database.hostname=localhost # <2> -debezium.properties.database.port=3306 # <2> - -debezium.properties.name=my-sql-connector # <3> -debezium.properties.database.server.id=85744 # <3> -debezium.properties.topic.prefix=my-topic # <3> - -debezium.properties.key.converter.schemas.enable=true # <4> -debezium.properties.value.converter.schemas.enable=true # <4> - -debezium.properties.offset.flush.interval.ms=60000 - -debezium.properties.schema.history.internal=io.debezium.relational.history.MemorySchemaHistory # <5> -debezium.properties.offset.storage=org.apache.kafka.connect.storage.MemoryOffsetBackingStore # <5> - -debezium.header-format=JSON # <6> -debezium.payload-format=JSON # <6> - ----- -<1> Configures the Debezium Engine to use https://debezium.io/docs/connectors/mysql/[MySqlConnector]. -<2> Configure the connection to a MySQL server running on `localhost:3306` as `debezium` user. -<3> Metadata used to identify and dispatch the incoming events. -* `debezium.properties.topic.prefix` - provides a namespace for the particular database server/cluster in which Debezium is capturing changes. -The topic prefix **should be unique** across all other connectors. -Only alphanumeric characters, hyphens, dots and underscores must be used. -* `debezium.properties.database.server.id` - a numeric identifier of this database client, which **must be unique across all currently-running database processes**. -<4> Includes the https://debezium.io/docs/connectors/mysql/#change-events-value[Change Event Value] schema in the `ChangeEvent` message. -<5> Metadata stores to preserver the debezium state between multiple starts. -<6> Sets, explicitly, the ChangeEvent header and payload (e.g. key and value) serialization formats. -Defaults to JSON with binary encoding. - -=== Connectors properties - -The table below lists all available Debezium properties for each connecter. - -.Table of the native Debezium configuration properties for every connector. -|=== -| Connector | Connector properties - -|https://debezium.io/documentation/reference/reference/connectors/mysql.html[MySQL] -|https://debezium.io/documentation/reference/connectors/mysql.html#mysql-connector-properties - -|https://debezium.io/documentation/reference/connectors/mongodb.html[MongoDB] -|https://debezium.io/documentation/reference/connectors/mongodb.html#mongodb-connector-properties - -|https://debezium.io/documentation/reference/connectors/postgresql.html[PostgreSQL] -|https://debezium.io/documentation/reference/connectors/postgresql.html#postgresql-connector-properties - -|https://debezium.io/documentation/reference/connectors/oracle.html[Oracle] -|https://debezium.io/documentation/reference/connectors/oracle.html#oracle-connector-properties - -|https://debezium.io/documentation/reference/connectors/sqlserver.html[SQL Server] -|https://debezium.io/documentation/reference/connectors/sqlserver.html#sqlserver-connector-properties - -|https://debezium.io/documentation/reference/connectors/db2.html[DB2] -|https://debezium.io/documentation/reference/connectors/db2.html#db2-connector-properties - -|https://debezium.io/documentation/reference/connectors/vitess.html[Vitess] -|https://debezium.io/documentation/reference/connectors/vitess.html#vitess-connector-properties - -|https://debezium.io/documentation/reference/connectors/spanner.html[Spanner] -|https://debezium.io/documentation/reference/connectors/spanner.html#spanner-connector-properties - -|=== - -=== Streaming vs Batching - -If you register a `java.util.Consumer` with the `DebeziumEngine.Builder` then the incoming events are processed element-wise, one by one in the order of their occurrence in the source database. -Opting for the `io.debezium.engineChangeConsumer` provides an https://debezium.io/documentation/reference/stable/development/engine.html#advanced-consuming[advanced event consumption] that can process batch of events in one go, acknowledging their processing once that's done. -This snippet illustrates how to implement a batch handler: - -[source, java] ----- -@Bean -public EmbeddedEngineExecutorService batch(DebeziumEngine.Builder> builder) { - - return new EmbeddedEngineExecutorService( // <3> - - builder.notifying(new ChangeConsumer<>() { // <1> - - @Override - public void handleBatch( - List> changeEventBatch, - RecordCommitter> committer) - throws InterruptedException { - - for (ChangeEvent event : changeEventBatch) { - System.out.println(event.value()); - committer.markProcessed(event); - } - committer.markBatchFinished(); - } - - }).build()); // <2> -} ----- -<1> Implement and register a `ChangeConsumer` batch handler. -The `committer.markProcessed(event)` and `committer.markBatchFinished()` are used to mark the event and batch completion. -<2> Build the engine. -<3> Crate and return an `EmbeddedEngineExecutorService` - a Spring lifecycle manageable `ExecutorService`. - -=== Additional Configuration Components - -The Debezium builder auto-configuration provides an opinionated implementation for the following configurable components: - - - `OffsetCommitPolicy` - Commit policy type. - The default is a periodic commit policy based upon time intervals. - - `Clock` - Clock needing to determine the current time. - Defaults to the `Clock#systemDefaultZone()` system clock. -- `CompletionCallback` - callback called by the engine on `DebeziumEngine#run()` method completes with the results. -By default logs the completion status. -- `ConnectorCallback` - During the engine run, provides feedback about the the completion state of each component running within the engine (connectors, tasks etc). -By default logs the connector state. - -You can override any of the above components. -Just provide your `@Bean` implementation to the application context. - -=== Event Flattening - -Debezium provides a comprehensive message format, that accurately details information about changes that happen in the system. -Sometime this format, though, might not be suitable for the downstream consumers, that might require messages that are formatted so that field names and values are presented in a simplified, `flattened` structure. - -To simplify the format of the event records that the Debezium connectors produce, you can use the https://debezium.io/documentation/reference/stable/transformations/event-flattening.html[Debezium event flattening] message transformation: - -[source, bash] ----- -debezium.properties.transforms=flattening # <1> -debezium.properties.transforms.flattening.type=io.debezium.transforms.ExtractNewRecordState # <2> -debezium.properties.transforms.flattening.drop.tombstones=false # <3> -debezium.properties.transforms.flattening.delete.handling.mode=rewrite # <4> -debezium.properties.transforms.flattening.add.headers=op # <5> -debezium.properties.transforms.flattening.add.fields=name,db # <5> ----- -<1> flattening transformation name. -<2> Class that implements the flatting transformation. -<3> Debezium generates a tombstone record for each DELETE operation. -The default behavior is that event flattening removes tombstone records from the stream. -To keep tombstone records in the stream, specify drop.tombstones=false. -<4> Debezium generates a change event event for each DELETE operation. -The `rewrite` mode keeps those events, which a dropped otherwise. -<5> Comma-separated list of metadata fields to add to the header and the value of the simplified event value. - -Follow the https://debezium.io/documentation/reference/stable/transformations/event-flattening.html#_configuration[configuration documentation] for further details. - -=== Offset Storages - -When a Debezium source runs, it reads information from the source and periodically records `offsets` that define how much of that information it has processed. -Should the source be restarted, it will use the last recorded offset to know where in the source information it should resume reading. -Out of the box, the following https://debezium.io/documentation/reference/development/engine.html#engine-properties[offset storage configuration] options are provided: - -==== In-Memory - -Doesn't persist the offset data but keeps it in memory. -Therefore all offsets are lost on debezium source restart. - -===== -[source, bash] ----- -debezium.properties.offset.storage=org.apache.kafka.connect.storage.MemoryOffsetBackingStore ----- -===== - -==== Local Filesystem - -Store the offsets in a file on the local file system (the file can be named anything and stored anywhere). -Additionally, although the connector records the offsets with every source record it produces, the engine flushes the offsets to the backing store periodically (in the example below, once each minute). - -===== -[source, bash] ----- -debezium.properties.offset.storage=org.apache.kafka.connect.storage.FileOffsetBackingStore -debezium.properties.offset.storage.file.filename=/tmp/offsets.dat # <1> -debezium.properties.offset.flush.interval.ms=60000 # <2> ----- -<1> Path to file where offsets are to be stored. -Required when `offset.storage`` is set to the `FileOffsetBackingStore`. -<2> Interval at which to try committing offsets. -The default is 1 minute. -===== - -==== Kafka topic - -Uses a Kafka topic to store offset data. - -===== -[source, bash] ----- -debezium.properties.offset.storage=org.apache.kafka.connect.storage.KafkaOffsetBackingStore -debezium.properties.offset.storage.topic=my-kafka-offset-topic # <1> -debezium.properties.offset.storage.partitions=2 # <2> -debezium.properties.offset.storage.replication.factor=1 # <3> -debezium.properties.offset.flush.interval.ms=60000 # <4> ----- -<1> The name of the Kafka topic where offsets are to be stored. -Required when `offset.storage` is set to the `KafkaOffsetBackingStore`. -<2> The number of partitions used when creating the offset storage topic. -<3> Replication factor used when creating the offset storage topic. -<4> Interval at which to try committing offsets. -The default is 1 minute. -===== - -One can implement the `org.apache.kafka.connect.storage.OffsetBackingStore` interface in to provide a offset storage bound to a custom backend key-value store. - -== Tests - -See this link:org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfigurationIntegrationTest.java[test suite] for how to use the auto-configuration with custom Consumer. - -== Other usage - -- See the https://github.com/spring-cloud/stream-applications/blob/master/functions/supplier/debezium-source/debezium-supplier[debezium-supplier] implementation about how to implement reactive consumer on top of the debezium auto-configuration. -- See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/debezium-source/README.adoc[debezium-source] about how the debezium auto-configuration and supplier are used to create a Spring Cloud Stream applications. -- See the https://docs.spring.io/spring-integration/docs/6.2.0-SNAPSHOT/reference/html/debezium.html#debezium[Spring Integration Debezium support] about how to initialize Inbound Debezium Channel Adapter with `DebeziumEngine.Builder>` provided by the auto-configuration. diff --git a/functions/common/debezium-autoconfigure/pom.xml b/functions/common/debezium-autoconfigure/pom.xml deleted file mode 100644 index 5231847d..00000000 --- a/functions/common/debezium-autoconfigure/pom.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfiguration.java b/functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfiguration.java deleted file mode 100644 index 6e6c6656..00000000 --- a/functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfiguration.java +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.common.debezium; - -import java.time.Clock; -import java.time.Duration; -import java.util.Objects; - -import io.debezium.engine.ChangeEvent; -import io.debezium.engine.DebeziumEngine; -import io.debezium.engine.DebeziumEngine.CompletionCallback; -import io.debezium.engine.DebeziumEngine.ConnectorCallback; -import io.debezium.engine.format.KeyValueHeaderChangeEventFormat; -import io.debezium.engine.format.SerializationFormat; -import io.debezium.engine.spi.OffsetCommitPolicy; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.AnyNestedCondition; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.debezium.DebeziumProperties.DebeziumFormat; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Conditional; -import org.springframework.core.Ordered; -import org.springframework.core.annotation.Order; - -/** - * {@link EnableAutoConfiguration Auto-configuration} for {@link DebeziumEngine.Builder}. - *

- * The builder provides a standalone engine configuration that talks with the source data system. - *

- * The application that runs the debezium engine assumes all responsibility for fault tolerance, scalability, and - * durability. Additionally, applications must specify how the engine can store its relational database schema history - * and offsets. By default, this information will be stored in memory and will thus be lost upon application restart. - *

- * The {@link DebeziumEngine.Builder} auto-configuration is activated only if a Debezium Connector is available on the - * classpath and the debezium.properties.connector.class property is set. - *

- * Properties prefixed with debezium.properties are passed through as native Debezium properties. - * - * @author Christian Tzolov - * @author Corneil du Plessis - */ -@AutoConfiguration -@EnableConfigurationProperties(DebeziumProperties.class) -@Conditional(DebeziumEngineBuilderAutoConfiguration.OnDebeziumConnectorCondition.class) -@ConditionalOnProperty(prefix = "debezium", name = "properties.connector.class") -public class DebeziumEngineBuilderAutoConfiguration { - - private static final Log logger = LogFactory.getLog(DebeziumEngineBuilderAutoConfiguration.class); - - /** - * The fully-qualified class name of the commit policy type. The default is a periodic commit policy based upon time - * intervals. - * @param properties The 'debezium.properties.offset.flush.interval.ms' configuration is compulsory for the Periodic - * policy type. The ALWAYS and DEFAULT doesn't require additional configuration. - */ - @Bean - @ConditionalOnMissingBean - public OffsetCommitPolicy offsetCommitPolicy(DebeziumProperties properties) { - - switch (properties.getOffsetCommitPolicy()) { - case PERIODIC: - return OffsetCommitPolicy.periodic(properties.getDebeziumNativeConfiguration()); - case ALWAYS: - return OffsetCommitPolicy.always(); - case DEFAULT: - default: - return NULL_OFFSET_COMMIT_POLICY; - } - } - - /** - * Use the specified clock when needing to determine the current time. Defaults to {@link Clock#systemDefaultZone() - * system clock}, but you can override the Bean in your configuration with you {@link Clock implementation}. Returns - * @return Clock for the system default zone. - */ - @Bean - @ConditionalOnMissingBean - public Clock debeziumClock() { - return Clock.systemDefaultZone(); - } - - /** - * When the engine's {@link DebeziumEngine#run()} method completes, call the supplied function with the results. - * @return Default completion callback that logs the completion status. The bean can be overridden in custom - * implementation. - */ - @Bean - @ConditionalOnMissingBean - public CompletionCallback completionCallback() { - return DEFAULT_COMPLETION_CALLBACK; - } - - /** - * During the engine run, provides feedback about the different stages according to the completion state of each - * component running within the engine (connectors, tasks etc). The bean can be overridden in custom implementation. - */ - @Bean - @ConditionalOnMissingBean - public ConnectorCallback connectorCallback() { - return DEFAULT_CONNECTOR_CALLBACK; - } - - @Bean - @ConditionalOnMissingBean - public DebeziumEngine.Builder> debeziumEngineBuilder( - OffsetCommitPolicy offsetCommitPolicy, CompletionCallback completionCallback, - ConnectorCallback connectorCallback, DebeziumProperties properties, Clock debeziumClock) { - - Class> payloadFormat = Objects.requireNonNull( - serializationFormatClass(properties.getPayloadFormat()), - "Cannot find payload format for " + properties.getProperties()); - - Class> headerFormat = Objects.requireNonNull( - serializationFormatClass(properties.getHeaderFormat()), - "Cannot find header format for " + properties.getProperties()); - - return DebeziumEngine - .create(KeyValueHeaderChangeEventFormat.of(payloadFormat, payloadFormat, headerFormat)) - .using(properties.getDebeziumNativeConfiguration()) - .using(debeziumClock) - .using(completionCallback) - .using(connectorCallback) - .using((offsetCommitPolicy != NULL_OFFSET_COMMIT_POLICY) ? offsetCommitPolicy : null); - } - - /** - * Converts the {@link DebeziumFormat} enum into Debezium {@link SerializationFormat} class. - * @param debeziumFormat debezium format property. - */ - private Class> serializationFormatClass(DebeziumFormat debeziumFormat) { - switch (debeziumFormat) { - case JSON: - return io.debezium.engine.format.JsonByteArray.class; - case AVRO: - return io.debezium.engine.format.Avro.class; - case PROTOBUF: - return io.debezium.engine.format.Protobuf.class; - default: - throw new IllegalArgumentException("Unknown debezium format: " + debeziumFormat); - } - } - - /** - * A callback function to be notified when the connector completes. - */ - private static final CompletionCallback DEFAULT_COMPLETION_CALLBACK = new CompletionCallback() { - @Override - public void handle(boolean success, String message, Throwable error) { - logger.info(String.format("Debezium Engine completed with success:%s, message:%s ", success, message), - error); - } - }; - - /** - * Callback function which informs users about the various stages a connector goes through during startup. - */ - private static final ConnectorCallback DEFAULT_CONNECTOR_CALLBACK = new ConnectorCallback() { - - /** - * Called after a connector has been successfully started by the engine. - */ - public void connectorStarted() { - logger.info("Connector Started!"); - }; - - /** - * Called after a connector has been successfully stopped by the engine. - */ - public void connectorStopped() { - logger.info("Connector Stopped!"); - } - - /** - * Called after a connector task has been successfully started by the engine. - */ - public void taskStarted() { - logger.info("Connector Task Started!"); - } - - /** - * Called after a connector task has been successfully stopped by the engine. - */ - public void taskStopped() { - logger.info("Connector Task Stopped!"); - } - - }; - - /** - * The policy that defines when the offsets should be committed to offset storage. - */ - private static final OffsetCommitPolicy NULL_OFFSET_COMMIT_POLICY = new OffsetCommitPolicy() { - @Override - public boolean performCommit(long numberOfMessagesSinceLastCommit, Duration timeSinceLastCommit) { - throw new UnsupportedOperationException("Unimplemented method 'performCommit'"); - } - }; - - /** - * Determine if Debezium connector is available. This either kicks in if any debezium connector is available. - */ - @Order(Ordered.LOWEST_PRECEDENCE) - static class OnDebeziumConnectorCondition extends AnyNestedCondition { - - OnDebeziumConnectorCondition() { - super(ConfigurationPhase.REGISTER_BEAN); - } - - @ConditionalOnClass(name = { "io.debezium.connector.mysql.MySqlConnector" }) - static class HasMySqlConnector { - - } - - @ConditionalOnClass(name = "io.debezium.connector.postgresql.PostgresConnector") - static class HasPostgreSqlConnector { - - } - - @ConditionalOnClass(name = "io.debezium.connector.db2.Db2Connector") - static class HasDb2Connector { - - } - - @ConditionalOnClass(name = "io.debezium.connector.oracle.OracleConnector") - static class HasOracleConnector { - - } - - @ConditionalOnClass(name = "io.debezium.connector.sqlserver.SqlServerConnector") - static class HasSqlServerConnector { - - } - - @ConditionalOnClass(name = "io.debezium.connector.mongodb.MongoDbConnector") - static class HasMongoDbConnector { - - } - - @ConditionalOnClass(name = "io.debezium.connector.vitess.VitessConnector") - static class HasVitessConnector { - - } - - @ConditionalOnClass(name = "io.debezium.connector.spanner.SpannerConnector") - static class HasSpannerConnector { - - } - - } - -} diff --git a/functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/DebeziumProperties.java b/functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/DebeziumProperties.java deleted file mode 100644 index 23a2cf9b..00000000 --- a/functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/DebeziumProperties.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.common.debezium; - -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("debezium") -public class DebeziumProperties { - - public enum DebeziumFormat { - /** - * JSON change event format. - */ - JSON("application/json"), - /** - * AVRO change event format. - */ - AVRO("application/avro"), - /** - * ProtoBuf change event format. - */ - PROTOBUF("application/x-protobuf"),; - - private final String contentType; - - DebeziumFormat(String contentType) { - this.contentType = contentType; - } - - public final String contentType() { - return contentType; - } - }; - - /** - * Spring pass-trough wrapper for debezium configuration properties. All properties with a 'debezium.properties.*' - * prefix are native Debezium properties. - */ - private Map properties = new HashMap<>(); - - /** - * {@link ChangeEvent} Key and Payload formats. Defaults to 'JSON'. - */ - private DebeziumFormat payloadFormat = DebeziumFormat.JSON; - - /** - * {@link ChangeEvent} header format. Defaults to 'JSON'. - */ - private DebeziumFormat headerFormat = DebeziumFormat.JSON; - - /** - * The policy that defines when the offsets should be committed to offset storage. - */ - private DebeziumOffsetCommitPolicy offsetCommitPolicy = DebeziumOffsetCommitPolicy.DEFAULT; - - public Map getProperties() { - return properties; - } - - public DebeziumFormat getPayloadFormat() { - return payloadFormat; - } - - public void setPayloadFormat(DebeziumFormat format) { - this.payloadFormat = format; - } - - public DebeziumFormat getHeaderFormat() { - return headerFormat; - } - - public void setHeaderFormat(DebeziumFormat headerFormat) { - this.headerFormat = headerFormat; - } - - public enum DebeziumOffsetCommitPolicy { - /** - * Commits offsets as frequently as possible. This may result in reduced performance, but it has the least - * potential for seeing source records more than once upon restart. - */ - ALWAYS, - /** - * Commits offsets no more than the specified time period. If the specified time is less than {@code 0} then the - * policy will behave as ALWAYS policy. Requires the 'debezium.properties.offset.flush.interval.ms' native - * property to be set. - */ - PERIODIC, - /** - * Uses the default Debezium engine policy (PERIODIC). - */ - DEFAULT; - } - - public DebeziumOffsetCommitPolicy getOffsetCommitPolicy() { - return offsetCommitPolicy; - } - - public void setOffsetCommitPolicy(DebeziumOffsetCommitPolicy offsetCommitPolicy) { - this.offsetCommitPolicy = offsetCommitPolicy; - } - - /** - * Converts the Spring Framework "debezium.properties.*" properties into native Debezium configuration. - */ - public Properties getDebeziumNativeConfiguration() { - Properties outProps = new java.util.Properties(); - outProps.putAll(this.getProperties()); - return outProps; - } -} diff --git a/functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/EmbeddedEngineExecutorService.java b/functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/EmbeddedEngineExecutorService.java deleted file mode 100644 index 971e6cf0..00000000 --- a/functions/common/debezium-autoconfigure/src/main/java/org/springframework/cloud/fn/common/debezium/EmbeddedEngineExecutorService.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.common.debezium; - -import java.io.IOException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.atomic.AtomicBoolean; - -import io.debezium.engine.DebeziumEngine; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.context.SmartLifecycle; - -/** - * The Debezium Engine is designed to be submitted to an {@link Executor} or {@link ExecutorService} for execution by a - * single thread, and a running connector can be stopped either by calling {@link #stop()} from another thread or by - * interrupting the running thread (e.g., as is the case with {@link ExecutorService#shutdownNow()}). - * - * The EmbeddedEngineExecutorService provides a sample ExecutorService implementation aligned with the Spring lifecycle. - * - * Note that the DebeziumReactiveConsumerConfiguration embeds an ExecutorService as part of the - * Supplier<Flux<Message<?>>> configuration. - * - * @author Christian Tzolov - */ -public class EmbeddedEngineExecutorService implements SmartLifecycle, AutoCloseable { - - private static final Log logger = LogFactory.getLog(EmbeddedEngineExecutorService.class); - - private final DebeziumEngine engine; - private final ExecutorService executor; - private final AtomicBoolean running = new AtomicBoolean(false); - - public EmbeddedEngineExecutorService(DebeziumEngine engine) { - this.engine = engine; - this.executor = Executors.newSingleThreadExecutor(); - } - - @Override - public void start() { - logger.info("Start Embedded Engine"); - this.executor.execute(this.engine); - this.running.set(true); - } - - @Override - public void stop() { - this.close(); - } - - @Override - public void close() { - logger.info("Stop Embedded Engine"); - try { - this.engine.close(); - this.running.set(false); - } - catch (IOException e) { - logger.warn("Failed to close the Debezium Engine:", e); - } - this.executor.shutdown(); - } - - @Override - public boolean isRunning() { - return this.running.get(); - } -} diff --git a/functions/common/debezium-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/common/debezium-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index a5f9a35b..00000000 --- a/functions/common/debezium-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.common.debezium.DebeziumEngineBuilderAutoConfiguration diff --git a/functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfigurationIntegrationTest.java b/functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfigurationIntegrationTest.java deleted file mode 100644 index fd39520f..00000000 --- a/functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfigurationIntegrationTest.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.common.debezium; - -import java.io.File; -import java.time.Duration; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.function.Consumer; - -import javax.sql.DataSource; - -import com.zaxxer.hikari.HikariDataSource; -import io.debezium.engine.ChangeEvent; -import io.debezium.engine.DebeziumEngine; -import io.debezium.engine.DebeziumEngine.Builder; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; - -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; -import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Primary; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.test.jdbc.JdbcTestUtils; - -import static org.awaitility.Awaitility.await; - -/** - * This test illustrate how to leverage the DebeziumEngineAutoConfiguration to build a consumer function with a custom - * change event Consumer. - * - * @author Christian Tzolov - */ -@Tag("integration") -@Testcontainers -public class DebeziumEngineBuilderAutoConfigurationIntegrationTest { - private static final Log logger = LogFactory.getLog(DebeziumEngineBuilderAutoConfigurationIntegrationTest.class); - - private static final String DATABASE_NAME = "inventory"; - public static final String IMAGE_TAG = "2.3.0.Final"; - public static final String DEBEZIUM_EXAMPLE_MYSQL_IMAGE = "debezium/example-mysql:" + IMAGE_TAG; - - @TempDir - static File anotherTempDir; - - @Container - static GenericContainer debeziumMySQL = new GenericContainer<>(DEBEZIUM_EXAMPLE_MYSQL_IMAGE) - .withEnv("MYSQL_ROOT_PASSWORD", "debezium") - .withEnv("MYSQL_USER", "mysqluser") - .withEnv("MYSQL_PASSWORD", "mysqlpw") - .withExposedPorts(3306); - - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withUserConfiguration(DebeziumCustomConsumerApplication.class) - .withPropertyValues( - "spring.datasource.type=com.zaxxer.hikari.HikariDataSource", - - "debezium.properties.offset.storage=org.apache.kafka.connect.storage.FileOffsetBackingStore", - "debezium.properties.offset.storage.file.filename=" + anotherTempDir.getAbsolutePath() - + "offsets.dat", - "debezium.properties.offset.flush.interval.ms=60000", - - "debezium.properties.schema.history.internal=io.debezium.storage.file.history.FileSchemaHistory", // new - "debezium.properties.schema.history.internal.file.filename=" + anotherTempDir.getAbsolutePath() - + "schemahistory.dat", - - "debezium.properties.topic.prefix=my-topic", - - "debezium.properties.name=my-sql-connector", - "debezium.properties.connector.class=io.debezium.connector.mysql.MySqlConnector", - - "debezium.properties.database.user=debezium", - "debezium.properties.database.password=dbz", - "debezium.properties.database.hostname=localhost", - "debezium.properties.database.port=" + debeziumMySQL.getMappedPort(3306), - "debezium.properties.database.server.id=85744", - - // JdbcTemplate configuration - String.format("app.datasource.url=jdbc:mysql://localhost:%d/%s?enabledTLSProtocols=TLSv1.2", - debeziumMySQL.getMappedPort(3306), DATABASE_NAME), - "app.datasource.username=root", - "app.datasource.password=debezium", - "app.datasource.driver-class-name=com.mysql.cj.jdbc.Driver", - "app.datasource.type=com.zaxxer.hikari.HikariDataSource"); - - @Test - public void consumerTest() { - - logger.info("Temp dir: " + anotherTempDir.getAbsolutePath()); - - contextRunner - .withPropertyValues( - // Flattering: - // https://debezium.io/documentation/reference/stable/transformations/event-flattening.html - "debezium.properties.transforms=unwrap", - "debezium.properties.transforms.unwrap.type=io.debezium.transforms.ExtractNewRecordState", - "debezium.properties.transforms.unwrap.drop.tombstones=false", - "debezium.properties.transforms.unwrap.delete.handling.mode=rewrite", - "debezium.properties.transforms.unwrap.add.fields=name,db") - .run(context -> { - JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class); - - DebeziumCustomConsumerApplication.TestDebeziumConsumer testConsumer = context - .getBean(DebeziumCustomConsumerApplication.TestDebeziumConsumer.class); - jdbcTemplate.update( - "insert into `customers`(`first_name`,`last_name`,`email`) " + - "VALUES('Test666', 'Test666', 'Test666@spring.org')"); - JdbcTestUtils.deleteFromTableWhere(jdbcTemplate, "customers", "first_name = ?", "Test666"); - - await().atMost(Duration.ofSeconds(30)).until(() -> (testConsumer.recordList.size() >= 52)); - }); - } - - @SpringBootConfiguration - @EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, MongoAutoConfiguration.class }) - public static class DebeziumCustomConsumerApplication { - - @Bean - public JdbcTemplate myJdbcTemplate(DataSource dataSource) { - return new JdbcTemplate(dataSource); - } - - @Bean - @Primary - @ConfigurationProperties("app.datasource") - public DataSourceProperties dataSourceProperties() { - return new DataSourceProperties(); - } - - @Bean - public HikariDataSource dataSource(DataSourceProperties dataSourceProperties) { - return dataSourceProperties.initializeDataSourceBuilder() - .type(HikariDataSource.class) - .build(); - } - - @Bean - public EmbeddedEngineExecutorService embeddedEngine(Consumer> changeEventConsumer, - Builder> debeziumEngineBuilder) { - DebeziumEngine> b = debeziumEngineBuilder.notifying(changeEventConsumer) - .build(); - return new EmbeddedEngineExecutorService(debeziumEngineBuilder.notifying(changeEventConsumer).build()); - } - - @Bean - public Consumer> customConsumer() { - return new TestDebeziumConsumer(); - } - - /** - * Custom, test, change event Consumer. - */ - public static class TestDebeziumConsumer implements Consumer> { - - public Map keyValue = new HashMap<>(); - - public List> recordList = new CopyOnWriteArrayList<>(); - - public TestDebeziumConsumer() { - } - - @Override - public void accept(ChangeEvent changeEvent) { - if (changeEvent != null) { // ignore null records - recordList.add(changeEvent); - keyValue.put(changeEvent.key(), changeEvent.value()); - System.out.println("Key: " + recordList.size()); - System.out.println("[Debezium Event]: " + changeEvent.toString()); - } - } - } - } - -} diff --git a/functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfigurationTests.java b/functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfigurationTests.java deleted file mode 100644 index 50840e8c..00000000 --- a/functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumEngineBuilderAutoConfigurationTests.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.common.debezium; - -import io.debezium.engine.DebeziumEngine; -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.test.context.FilteredClassLoader; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link DebeziumEngineBuilderAutoConfiguration}. - * - * @author Christian Tzolov - */ -public class DebeziumEngineBuilderAutoConfigurationTests { - - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(DebeziumEngineBuilderAutoConfiguration.class)); - - // We have the debezium connectors on the classpath by default. - - @Test - void noConnectorNoProperty() { - this.contextRunner.run((context) -> { - assertThat(context).doesNotHaveBean(DebeziumEngine.Builder.class); - }); - } - - @Test - void noConnectorWithProperty() { - this.contextRunner.withPropertyValues("debezium.properties.connector.class=Dummy") - .withClassLoader(new FilteredClassLoader("io.debezium.connector")) - .run((context) -> { - assertThat(context).doesNotHaveBean(DebeziumEngine.Builder.class); - }); - } - - @Test - void withConnectorWithProperty() { - this.contextRunner.withPropertyValues("debezium.properties.connector.class=Dummy").run((context) -> { - assertThat(context).hasSingleBean(DebeziumEngine.Builder.class); - }); - } - -} diff --git a/functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumPropertiesTests.java b/functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumPropertiesTests.java deleted file mode 100644 index 6c963895..00000000 --- a/functions/common/debezium-autoconfigure/src/test/java/org/springframework/cloud/fn/common/debezium/DebeziumPropertiesTests.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.common.debezium; - -import org.junit.jupiter.api.Test; - -import org.springframework.cloud.fn.common.debezium.DebeziumProperties.DebeziumFormat; -import org.springframework.cloud.fn.common.debezium.DebeziumProperties.DebeziumOffsetCommitPolicy; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link DebeziumProperties}. - * - * @author Christian Tzolov - */ -public class DebeziumPropertiesTests { - - DebeziumProperties properties = new DebeziumProperties(); - - @Test - public void defaultPropertiesTest() { - assertThat(this.properties.getPayloadFormat()).isEqualTo(DebeziumFormat.JSON); - assertThat(this.properties.getHeaderFormat()).isEqualTo(DebeziumFormat.JSON); - assertThat(this.properties.getOffsetCommitPolicy()).isEqualTo(DebeziumOffsetCommitPolicy.DEFAULT); - assertThat(this.properties.getProperties()).isNotNull(); - assertThat(this.properties.getProperties()).isEmpty(); - } - - @Test - public void debeziumFormatTest() { - this.properties.setPayloadFormat(DebeziumFormat.AVRO); - assertThat(this.properties.getPayloadFormat()).isEqualTo(DebeziumFormat.AVRO); - assertThat(this.properties.getPayloadFormat().contentType()).isEqualTo("application/avro"); - - this.properties.setPayloadFormat(DebeziumFormat.JSON); - assertThat(this.properties.getPayloadFormat()).isEqualTo(DebeziumFormat.JSON); - assertThat(this.properties.getPayloadFormat().contentType()).isEqualTo("application/json"); - - this.properties.setPayloadFormat(DebeziumFormat.PROTOBUF); - assertThat(this.properties.getPayloadFormat()).isEqualTo(DebeziumFormat.PROTOBUF); - assertThat(this.properties.getPayloadFormat().contentType()).isEqualTo("application/x-protobuf"); - } - -} diff --git a/functions/common/file-common/pom.xml b/functions/common/file-common/pom.xml deleted file mode 100644 index 1609e550..00000000 --- a/functions/common/file-common/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - file-common - file-common - file common - - - - org.springframework.integration - spring-integration-file - - - - diff --git a/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileConsumerProperties.java b/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileConsumerProperties.java deleted file mode 100644 index 7d3cc19d..00000000 --- a/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileConsumerProperties.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.file; - -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * - * @author David Turanski - * @author Artem Bilan - */ -@ConfigurationProperties("file.consumer") -@Validated -public class FileConsumerProperties { - - /** - * The FileReadingMode to use for file reading sources. - * Values are 'ref' - The File object, - * 'lines' - a message per line, or - * 'contents' - the contents as bytes. - */ - private FileReadingMode mode = FileReadingMode.contents; - - /** - * Set to true to emit start of file/end of file marker messages before/after the data. - * Only valid with FileReadingMode 'lines'. - */ - private Boolean withMarkers = null; - - /** - * When 'fileMarkers == true', specify if they should be produced - * as FileSplitter.FileMarker objects or JSON. - */ - private boolean markersJson = true; - - @NotNull - public FileReadingMode getMode() { - return this.mode; - } - - public void setMode(FileReadingMode mode) { - this.mode = mode; - } - - public Boolean getWithMarkers() { - return this.withMarkers; - } - - public void setWithMarkers(Boolean withMarkers) { - this.withMarkers = withMarkers; - } - - public boolean getMarkersJson() { - return this.markersJson; - } - - public void setMarkersJson(boolean markersJson) { - this.markersJson = markersJson; - } - - @AssertTrue(message = "withMarkers can only be supplied when FileReadingMode is 'lines'") - public boolean isWithMarkersValid() { - return this.withMarkers == null || FileReadingMode.lines == this.mode; - } -} diff --git a/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileReadingMode.java b/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileReadingMode.java deleted file mode 100644 index c6db428e..00000000 --- a/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileReadingMode.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.file; - -/** - * Defines the supported modes of reading and processing files. - * - * @author Gunnar Hillert - * @author David Turanski - */ -public enum FileReadingMode { - /** - * ref mode. - */ - ref, - /** - * lines mode. - */ - lines, - /** - * contents mode. - */ - contents; -} diff --git a/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileUtils.java b/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileUtils.java deleted file mode 100644 index 9a56618b..00000000 --- a/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileUtils.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.file; - -import java.util.Collections; - -import org.springframework.integration.dsl.IntegrationFlowBuilder; -import org.springframework.integration.file.splitter.FileSplitter; -import org.springframework.integration.file.transformer.FileToByteArrayTransformer; -import org.springframework.integration.transformer.StreamTransformer; -import org.springframework.messaging.MessageHeaders; -import org.springframework.util.MimeTypeUtils; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Christian Tzolov - */ -public final class FileUtils { - - private FileUtils() { - - } - - /** - * Enhance an {@link IntegrationFlowBuilder} to add flow snippets, depending on - * {@link FileConsumerProperties}. - * - * @param flowBuilder the flow builder. - * @param fileConsumerProperties the properties. - * @return the updated flow builder. - */ - public static IntegrationFlowBuilder enhanceFlowForReadingMode(IntegrationFlowBuilder flowBuilder, - FileConsumerProperties fileConsumerProperties) { - switch (fileConsumerProperties.getMode()) { - case contents: - flowBuilder.enrichHeaders(Collections.singletonMap(MessageHeaders.CONTENT_TYPE, - MimeTypeUtils.APPLICATION_OCTET_STREAM_VALUE)) - .transform(new FileToByteArrayTransformer()); - break; - case lines: - Boolean withMarkers = fileConsumerProperties.getWithMarkers(); - if (withMarkers == null) { - withMarkers = false; - } - flowBuilder.enrichHeaders(Collections.singletonMap(MessageHeaders.CONTENT_TYPE, - MimeTypeUtils.TEXT_PLAIN_VALUE)) - .split(new FileSplitter(true, withMarkers, fileConsumerProperties.getMarkersJson())); - break; - case ref: - flowBuilder.enrichHeaders(Collections.singletonMap(MessageHeaders.CONTENT_TYPE, - MimeTypeUtils.APPLICATION_JSON_VALUE)); - break; - default: - throw new IllegalArgumentException(fileConsumerProperties.getMode().name() + - " is not a supported file reading mode."); - } - return flowBuilder; - } - - /** - * Enhance an {@link IntegrationFlowBuilder} to add flow snippets, depending on - * {@link FileConsumerProperties}; used for streaming sources. - * - * @param flowBuilder the flow builder. - * @param fileConsumerProperties the properties. - * @return the updated flow builder. - */ - public static IntegrationFlowBuilder enhanceStreamFlowForReadingMode(IntegrationFlowBuilder flowBuilder, - FileConsumerProperties fileConsumerProperties) { - switch (fileConsumerProperties.getMode()) { - case contents: - flowBuilder.enrichHeaders(Collections.singletonMap(MessageHeaders.CONTENT_TYPE, - MimeTypeUtils.APPLICATION_OCTET_STREAM_VALUE)) - .transform(new StreamTransformer()); - break; - case lines: - Boolean withMarkers = fileConsumerProperties.getWithMarkers(); - if (withMarkers == null) { - withMarkers = false; - } - flowBuilder.enrichHeaders(Collections.singletonMap(MessageHeaders.CONTENT_TYPE, - MimeTypeUtils.TEXT_PLAIN_VALUE)) - .split(new FileSplitter(true, withMarkers, fileConsumerProperties.getMarkersJson())); - break; - case ref: - default: - throw new IllegalArgumentException(fileConsumerProperties.getMode().name() + - " is not a supported file reading mode when streaming."); - } - return flowBuilder; - } - -} diff --git a/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/remote/RemoteFileDeletingAdvice.java b/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/remote/RemoteFileDeletingAdvice.java deleted file mode 100644 index 67fd7f81..00000000 --- a/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/remote/RemoteFileDeletingAdvice.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2020-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.common.file.remote; - -import org.springframework.integration.aop.MessageSourceMutator; -import org.springframework.integration.core.MessageSource; -import org.springframework.integration.file.FileHeaders; -import org.springframework.integration.file.remote.RemoteFileTemplate; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - -/** - * A {@link MessageSourceMutator} that deletes a remote file on success. - * - * @author David Turanski - * @author Artem Bilan - * - */ -public class RemoteFileDeletingAdvice implements MessageSourceMutator { - - private final RemoteFileTemplate template; - - private final String remoteFileSeparator; - - /** - * Construct an instance with the provided template and separator. - * @param template the template. - * @param remoteFileSeparator the separator. - */ - public RemoteFileDeletingAdvice(RemoteFileTemplate template, - String remoteFileSeparator) { - this.template = template; - this.remoteFileSeparator = remoteFileSeparator; - } - - @Nullable - @Override - public Message afterReceive(@Nullable Message result, MessageSource source) { - if (result != null) { - String remoteDir = (String) result.getHeaders().get(FileHeaders.REMOTE_DIRECTORY); - String remoteFile = (String) result.getHeaders().get(FileHeaders.REMOTE_FILE); - this.template.remove(remoteDir + this.remoteFileSeparator + remoteFile); - } - return result; - } -} diff --git a/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/remote/RemoteFileRenamingAdvice.java b/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/remote/RemoteFileRenamingAdvice.java deleted file mode 100644 index 06181683..00000000 --- a/functions/common/file-common/src/main/java/org/springframework/cloud/fn/common/file/remote/RemoteFileRenamingAdvice.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2020-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.common.file.remote; - -import org.springframework.expression.Expression; -import org.springframework.integration.aop.MessageSourceMutator; -import org.springframework.integration.core.MessageSource; -import org.springframework.integration.file.FileHeaders; -import org.springframework.integration.file.remote.RemoteFileTemplate; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - - -/** - * A {@link MessageSourceMutator} that renames a remote file on success. - * - * @author Andrea Montemaggio - * - */ -public class RemoteFileRenamingAdvice implements MessageSourceMutator { - - private final RemoteFileTemplate template; - - private final String remoteFileSeparator; - - private final Expression newName; - - /** - * Construct an instance with the provided template and separator. - * @param template the template. - * @param remoteFileSeparator the separator. - * @param newNameExp the SpEl expression for the new name. - */ - public RemoteFileRenamingAdvice(RemoteFileTemplate template, - String remoteFileSeparator, - Expression newNameExp) { - this.template = template; - this.remoteFileSeparator = remoteFileSeparator; - this.newName = newNameExp; - } - - @Nullable - @Override - public Message afterReceive(@Nullable Message result, MessageSource source) { - if (result != null) { - String remoteDir = (String) result.getHeaders().get(FileHeaders.REMOTE_DIRECTORY); - String remoteFile = (String) result.getHeaders().get(FileHeaders.REMOTE_FILE); - String newNameValue = this.newName.getValue(result, String.class); - if (newNameValue != null && !newNameValue.isEmpty()) { - this.template.rename(remoteDir + this.remoteFileSeparator + remoteFile, newNameValue); - } - } - return result; - } -} diff --git a/functions/common/ftp-common/pom.xml b/functions/common/ftp-common/pom.xml deleted file mode 100644 index 01ae1a39..00000000 --- a/functions/common/ftp-common/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - ftp-common - ftp-common - ftp common - - - - - org.springframework.integration - spring-integration-ftp - - - - - diff --git a/functions/common/ftp-common/src/main/java/org/springframework/cloud/fn/common/ftp/FtpSessionFactoryConfiguration.java b/functions/common/ftp-common/src/main/java/org/springframework/cloud/fn/common/ftp/FtpSessionFactoryConfiguration.java deleted file mode 100644 index cc2c0e17..00000000 --- a/functions/common/ftp-common/src/main/java/org/springframework/cloud/fn/common/ftp/FtpSessionFactoryConfiguration.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.ftp; - -import org.apache.commons.net.ftp.FTPFile; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.file.remote.session.CachingSessionFactory; -import org.springframework.integration.file.remote.session.SessionFactory; -import org.springframework.integration.ftp.session.DefaultFtpSessionFactory; - -@Configuration -@EnableConfigurationProperties(FtpSessionFactoryProperties.class) -public class FtpSessionFactoryConfiguration { - - @Bean - @ConditionalOnMissingBean - public SessionFactory ftpSessionFactory(FtpSessionFactoryProperties properties) { - DefaultFtpSessionFactory ftpSessionFactory = new DefaultFtpSessionFactory(); - ftpSessionFactory.setHost(properties.getHost()); - ftpSessionFactory.setPort(properties.getPort()); - ftpSessionFactory.setUsername(properties.getUsername()); - ftpSessionFactory.setPassword(properties.getPassword()); - ftpSessionFactory.setClientMode(properties.getClientMode().getMode()); - if (properties.getCacheSessions() != null) { - CachingSessionFactory csf = new CachingSessionFactory<>(ftpSessionFactory); - return csf; - } - else { - return ftpSessionFactory; - } - } - -} diff --git a/functions/common/ftp-common/src/main/java/org/springframework/cloud/fn/common/ftp/FtpSessionFactoryProperties.java b/functions/common/ftp-common/src/main/java/org/springframework/cloud/fn/common/ftp/FtpSessionFactoryProperties.java deleted file mode 100644 index 5dc14558..00000000 --- a/functions/common/ftp-common/src/main/java/org/springframework/cloud/fn/common/ftp/FtpSessionFactoryProperties.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.ftp; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import org.apache.commons.net.ftp.FTPClient; -import org.hibernate.validator.constraints.Range; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -@ConfigurationProperties("ftp.factory") -@Validated -public class FtpSessionFactoryProperties { - - /** - * The port of the server. - */ - private int port = 21; - - /** - * The client mode to use for the FTP session. - */ - private ClientMode clientMode = ClientMode.PASSIVE; - - /** - * The host name of the server. - */ - private String host = "localhost"; - - /** - * The username to use to connect to the server. - */ - - private String username; - /** - * The password to use to connect to the server. - */ - private String password; - - /** - * Cache sessions. - */ - private Boolean cacheSessions; - - @Range(min = 0, max = 65535) - public int getPort() { - return this.port; - } - - public void setPort(int port) { - this.port = port; - } - - @NotNull - public ClientMode getClientMode() { - return this.clientMode; - } - - public void setClientMode(ClientMode clientMode) { - this.clientMode = clientMode; - } - - public enum ClientMode { - - /** - * Active client mode. - */ - ACTIVE(FTPClient.ACTIVE_LOCAL_DATA_CONNECTION_MODE), - /** - * Passive client mode. - */ - PASSIVE(FTPClient.PASSIVE_LOCAL_DATA_CONNECTION_MODE); - - private final int mode; - - ClientMode(int mode) { - this.mode = mode; - } - - public int getMode() { - return mode; - } - - } - - @NotBlank - public String getHost() { - return this.host; - } - - public void setHost(String host) { - this.host = host; - } - - @NotBlank - public String getUsername() { - return this.username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return this.password; - } - - public void setPassword(String password) { - this.password = password; - } - - public Boolean getCacheSessions() { - return this.cacheSessions; - } - - public void setCacheSessions(Boolean cacheSessions) { - this.cacheSessions = cacheSessions; - } - -} diff --git a/functions/common/function-test-support/pom.xml b/functions/common/function-test-support/pom.xml deleted file mode 100644 index 4d5efcbc..00000000 --- a/functions/common/function-test-support/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/file/remote/RemoteFileTestSupport.java b/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/file/remote/RemoteFileTestSupport.java deleted file mode 100644 index adf735c6..00000000 --- a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/file/remote/RemoteFileTestSupport.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright 2015-2016 the original author or 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. - */ - -package org.springframework.cloud.fn.test.support.file.remote; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.nio.file.Path; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.io.TempDir; - -/** - * Abstract base class for tests requiring remote file servers, e.g. (S)FTP. - * - * @author Gary Russell - * - */ -public abstract class RemoteFileTestSupport { - - protected static final int port = 0; - - @TempDir - protected static Path remoteTemporaryFolder; - - @TempDir - protected static Path localTemporaryFolder; - - protected volatile File sourceRemoteDirectory; - - protected volatile File targetRemoteDirectory; - - protected volatile File sourceLocalDirectory; - - protected volatile File targetLocalDirectory; - - public File getSourceRemoteDirectory() { - return sourceRemoteDirectory; - } - - public File getTargetRemoteDirectory() { - return targetRemoteDirectory; - } - - public File getSourceLocalDirectory() { - return sourceLocalDirectory; - } - - public File getTargetLocalDirectory() { - return targetLocalDirectory; - } - - /** - * Default implementation creates the following folder structures: - * - *

-	 *  $ tree remoteSource/
-	 *  remoteSource/
-	 *  ├── remoteSource1.txt - contains 'source1'
-	 *  ├── remoteSource2.txt - contains 'source2'
-	 *  remoteTarget/
-	 *  $ tree localSource/
-	 *  localSource/
-	 *  ├── localSource1.txt - contains 'local1'
-	 *  ├── localSource2.txt - contains 'local2'
-	 *  localTarget/
-	 * 
- * - * The intent is tests retrieve from remoteSource and verify arrival in localTarget or send from localSource and verify - * arrival in remoteTarget. - *

- * Subclasses can change 'remote' in these names by overriding {@link #prefix()} or override this method completely to - * create a different structure. - *

- * While a single server exists for all tests, the directory structure is rebuilt for each test. - * @throws IOException IO Exception. - */ - @BeforeEach - public void setupFolders() throws IOException { - String prefix = prefix(); - recursiveDelete(new File(remoteTemporaryFolder.toFile(), prefix + "Source")); - - sourceRemoteDirectory = new File(remoteTemporaryFolder.toFile(), prefix + "Source"); - sourceRemoteDirectory.mkdirs(); - recursiveDelete(new File(remoteTemporaryFolder.toFile(), prefix + "Target")); - targetRemoteDirectory = new File(remoteTemporaryFolder.toFile(), prefix + "Target"); - targetRemoteDirectory.mkdirs(); - recursiveDelete(new File(localTemporaryFolder.toFile(), "localSource")); - sourceLocalDirectory = new File(localTemporaryFolder.toFile(), "localSource"); - sourceLocalDirectory.mkdirs(); - recursiveDelete(new File(localTemporaryFolder.toFile(), "localTarget")); - targetLocalDirectory = new File(localTemporaryFolder.toFile(), "localTarget"); - targetLocalDirectory.mkdirs(); - File file = new File(sourceRemoteDirectory, prefix + "Source1.txt"); - file.createNewFile(); - FileOutputStream fos = new FileOutputStream(file); - fos.write("source1".getBytes()); - fos.close(); - file = new File(sourceRemoteDirectory, prefix + "Source2.txt"); - file.createNewFile(); - fos = new FileOutputStream(file); - fos.write("source2".getBytes()); - fos.close(); - file = new File(sourceLocalDirectory, "localSource1.txt"); - file.createNewFile(); - fos = new FileOutputStream(file); - fos.write("local1".getBytes()); - fos.close(); - file = new File(sourceLocalDirectory, "localSource2.txt"); - file.createNewFile(); - fos = new FileOutputStream(file); - fos.write("local2".getBytes()); - fos.close(); - } - - public static void recursiveDelete(File file) { - if (file != null && file.exists()) { - File[] files = file.listFiles(); - if (files != null) { - for (File fyle : files) { - if (fyle.isDirectory()) { - recursiveDelete(fyle); - } - else { - fyle.delete(); - } - } - } - file.delete(); - } - } - - /** - * Prefix for directory/file structure; default 'remote'. - * @return the prefix. - */ - protected String prefix() { - return "remote"; - } -} diff --git a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/ftp/FtpTestSupport.java b/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/ftp/FtpTestSupport.java deleted file mode 100644 index 0788f664..00000000 --- a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/ftp/FtpTestSupport.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.test.support.ftp; - -import java.io.File; -import java.util.Arrays; - -import org.apache.ftpserver.FtpServer; -import org.apache.ftpserver.FtpServerFactory; -import org.apache.ftpserver.ftplet.Authentication; -import org.apache.ftpserver.ftplet.AuthenticationFailedException; -import org.apache.ftpserver.ftplet.FtpException; -import org.apache.ftpserver.ftplet.User; -import org.apache.ftpserver.ftplet.UserManager; -import org.apache.ftpserver.listener.ListenerFactory; -import org.apache.ftpserver.usermanager.impl.BaseUser; -import org.apache.ftpserver.usermanager.impl.ConcurrentLoginPermission; -import org.apache.ftpserver.usermanager.impl.TransferRatePermission; -import org.apache.ftpserver.usermanager.impl.WritePermission; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; - -import org.springframework.cloud.fn.test.support.file.remote.RemoteFileTestSupport; - -public class FtpTestSupport extends RemoteFileTestSupport { - - private static final FtpServerFactory serverFactory = new FtpServerFactory(); - - private static volatile FtpServer server; - - public String getTargetLocalDirectoryName() { - return targetLocalDirectory.getAbsolutePath() + File.separator; - } - - @BeforeAll - public static void createServer() throws Exception { - serverFactory.setUserManager(new TestUserManager(remoteTemporaryFolder.toFile().getAbsolutePath())); - - ListenerFactory factory = new ListenerFactory(); - factory.setPort(0); - serverFactory.addListener("default", factory.createListener()); - - server = serverFactory.createServer(); - server.start(); - System.setProperty("ftp.factory.port", String.valueOf(serverFactory.getListener("default").getPort())); - System.setProperty("ftp.localDir", - localTemporaryFolder.toFile().getAbsolutePath() + File.separator + "localTarget"); - } - - @AfterAll - public static void stopServer() throws Exception { - server.stop(); - System.clearProperty("ftp.factory.port"); - System.clearProperty("ftp.localDir"); - } - - @Override - protected String prefix() { - return "ftp"; - } - - private static final class TestUserManager implements UserManager { - - private final BaseUser testUser; - - private TestUserManager(String homeDirectory) { - this.testUser = new BaseUser(); - this.testUser.setAuthorities(Arrays.asList(new ConcurrentLoginPermission(1024, 1024), - new WritePermission(), - new TransferRatePermission(1024, 1024))); - this.testUser.setHomeDirectory(homeDirectory); - this.testUser.setName("TEST_USER"); - } - - - @Override - public User getUserByName(String s) throws FtpException { - return this.testUser; - } - - @Override - public String[] getAllUserNames() throws FtpException { - return new String[] { "TEST_USER" }; - } - - @Override - public void delete(String s) throws FtpException { - } - - @Override - public void save(User user) throws FtpException { - } - - @Override - public boolean doesExist(String s) throws FtpException { - return true; - } - - @Override - public User authenticate(Authentication authentication) throws AuthenticationFailedException { - return this.testUser; - } - - @Override - public String getAdminName() throws FtpException { - return "admin"; - } - - @Override - public boolean isAdmin(String s) throws FtpException { - return s.equals("admin"); - } - - } -} diff --git a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/sftp/SftpTestSupport.java b/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/sftp/SftpTestSupport.java deleted file mode 100644 index ead7a892..00000000 --- a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/sftp/SftpTestSupport.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.test.support.sftp; - -import java.io.File; -import java.io.InputStream; -import java.math.BigInteger; -import java.nio.ByteBuffer; -import java.security.KeyFactory; -import java.security.PublicKey; -import java.security.spec.RSAPublicKeySpec; -import java.util.Arrays; -import java.util.Collections; - -import org.apache.sshd.common.file.virtualfs.VirtualFileSystemFactory; -import org.apache.sshd.server.SshServer; -import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider; -import org.apache.sshd.sftp.server.SftpSubsystemFactory; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; - -import org.springframework.cloud.fn.test.support.file.remote.RemoteFileTestSupport; -import org.springframework.core.io.ClassPathResource; -import org.springframework.util.Base64Utils; -import org.springframework.util.FileCopyUtils; -import org.springframework.util.StringUtils; - -/** - * Provides an embedded SFTP Server for test cases. - * - * @author David Turanski - * @author Gary Russell - * @author Artem Bilan - */ -public class SftpTestSupport extends RemoteFileTestSupport { - - private static SshServer server; - - @Override - public String prefix() { - return "sftp"; - } - - @BeforeAll - public static void createServer() throws Exception { - server = SshServer.setUpDefaultServer(); - server.setPasswordAuthenticator((username, password, session) -> - StringUtils.hasText(password) && !"badPassword".equals(password)); // fail if pub key validation failed - server.setPublickeyAuthenticator((username, key, session) -> key.equals(decodePublicKey("id_rsa_pp.pub"))); - server.setPort(0); - server.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(new File("hostkey.ser").toPath())); - server.setSubsystemFactories(Collections.singletonList(new SftpSubsystemFactory())); - server.setFileSystemFactory(new VirtualFileSystemFactory(remoteTemporaryFolder)); - server.start(); - System.setProperty("sftp.factory.port", String.valueOf(server.getPort())); - System.setProperty("sftp.consumer.localDir", - localTemporaryFolder + File.separator + "localTarget"); - } - - @AfterAll - public static void stopServer() throws Exception { - server.stop(); - File hostkey = new File("hostkey.ser"); - if (hostkey.exists()) { - hostkey.delete(); - } - System.clearProperty("sftp.factory.port"); - System.clearProperty("sftp.consumer.localDir"); - } - - private static PublicKey decodePublicKey(String key) { - try { - InputStream stream = new ClassPathResource(key).getInputStream(); - byte[] keyBytes = FileCopyUtils.copyToByteArray(stream); - // strip any newline chars - while (keyBytes[keyBytes.length - 1] == 0x0a || keyBytes[keyBytes.length - 1] == 0x0d) { - keyBytes = Arrays.copyOf(keyBytes, keyBytes.length - 1); - } - byte[] decodeBuffer = Base64Utils.decode(keyBytes); - ByteBuffer bb = ByteBuffer.wrap(decodeBuffer); - int len = bb.getInt(); - byte[] type = new byte[len]; - bb.get(type); - if ("ssh-rsa".equals(new String(type))) { - BigInteger e = decodeBigInt(bb); - BigInteger m = decodeBigInt(bb); - RSAPublicKeySpec spec = new RSAPublicKeySpec(m, e); - return KeyFactory.getInstance("RSA").generatePublic(spec); - - } - else { - throw new IllegalArgumentException("Only supports RSA"); - } - } - catch (Exception e) { - throw new IllegalStateException("Failed to determine the test public key", e); - } - } - - private static BigInteger decodeBigInt(ByteBuffer bb) { - int len = bb.getInt(); - byte[] bytes = new byte[len]; - bb.get(bytes); - return new BigInteger(bytes); - } -} diff --git a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/websocket/WebsocketConsumerClientHandler.java b/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/websocket/WebsocketConsumerClientHandler.java deleted file mode 100644 index 8a857d0f..00000000 --- a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/websocket/WebsocketConsumerClientHandler.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2014-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.test.support.websocket; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; - -import org.springframework.web.socket.TextMessage; -import org.springframework.web.socket.WebSocketSession; -import org.springframework.web.socket.handler.AbstractWebSocketHandler; - -public class WebsocketConsumerClientHandler extends AbstractWebSocketHandler { - - final List receivedMessages = new ArrayList<>(); - - final int waitMessageCount; - - final CountDownLatch latch; - - final long timeout; - - final String id; - - public WebsocketConsumerClientHandler(String id, int waitMessageCount, long timeout) { - this.id = id; - this.waitMessageCount = waitMessageCount; - this.latch = new CountDownLatch(waitMessageCount); - this.timeout = timeout; - } - - @Override - public void handleTextMessage(WebSocketSession session, TextMessage message) { - receivedMessages.add(message.getPayload()); - latch.countDown(); - } - - public void await() throws InterruptedException { - latch.await(timeout, TimeUnit.MILLISECONDS); - } - - public List getReceivedMessages() { - return receivedMessages; - } -} diff --git a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppTestContainerSupport.java b/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppTestContainerSupport.java deleted file mode 100644 index e426765f..00000000 --- a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppTestContainerSupport.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.test.support.xmpp; - -import java.time.Duration; - -import org.junit.jupiter.api.BeforeAll; -import org.testcontainers.containers.BindMode; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.junit.jupiter.Testcontainers; - -/** - * @author Chris Bono - */ -@Testcontainers(disabledWithoutDocker = true) -public interface XmppTestContainerSupport { - - /** - * Default XMPP Host. - */ - String XMPP_HOST = "localhost"; - - /** - * Sample John User setup by config. - */ - String JOHN_USER = "john"; - - /** - * Sample Jane User setup by config. - */ - String JANE_USER = "jane"; - - /** - * Password for sample users. - */ - String USER_PW = "secret"; - - /** - * Default Service Name. - */ - String SERVICE_NAME = "localhost"; - - /** - * The container. - */ - GenericContainer XMPP_CONTAINER = new GenericContainer<>("fishbowler/openfire:v4.7.0") - .withExposedPorts(5222) - .withClasspathResourceMapping("xmpp/conf", "/var/lib/openfire/conf", BindMode.READ_ONLY) - .withCommand("-demoboot") - .withStartupTimeout(Duration.ofSeconds(120)) - .withStartupAttempts(3); - - @BeforeAll - static void startContainer() { - XMPP_CONTAINER.start(); - } - - static String getXmppHost() { - return XMPP_HOST; - } - - static Integer getXmppMappedPort() { - return XMPP_CONTAINER.getFirstMappedPort(); - } - -} diff --git a/functions/common/function-test-support/src/main/resources/id_rsa_pp b/functions/common/function-test-support/src/main/resources/id_rsa_pp deleted file mode 100644 index 7c7cba16..00000000 --- a/functions/common/function-test-support/src/main/resources/id_rsa_pp +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: AES-128-CBC,26D1755B05980BA01B1E8D3B65EF98D3 - -J5fMQDf0HrwcnfYujq+q05GEOSEMVWMU0vr0hBtz2WvUeaFBBVAvUWbJo7PHTdDV -vEdSv+k8FazOkIZpeOW26pKNaLSuFfN+lgtAW4p4yqGQhbL8byh+Ka5uGaPH1xQj -o4exMFqbwFaHG10LJoPp5NnK+T64w8McJEihBPxv/qwtsz0YhhDVl/1eSwKsGa5y -Usfdv0QbjNDtpV7+sy7OunpaaKjb8iQ/PbFDsX0TSiy6jJflPwCYVUoh3jCEJze3 -OUKwoQu7AiHmUrsnLtDuL49Q5hV+f9+IPJlzSqU5Fu8PlfCowH+e8WWLVQkh7Hht -iwOQs5UIWH+Nzbguu3Gbph5lqMtgkQwK6/PSFLQXuJmf9l6eo7E+Wh5mFWwoIENT -mKUlgVU0ymajPHcA7uOVXl5XX+Mt0DiMdGiB4N6RJ1OjWgqlRSJbVmGPrnZWmjdW -VltNux6JrO1bOgwtApCouDZhnP7/JDhM2PCa/F2+XCc6s8Hnmmt+gBw6IM4fb+YH -2gf1jx5Onp1yuBGe6tvbrfPAdXYU1R3kd2+Yf5mdsu2+xiC4wBKSfjleoHN4xJ/b -wopjQvGV5dj/VjdUt99lMHGWPr+p4NmdEBoriCgjYuRjRDvCiTV2qKZe2MU+0CVE -/jCA8iMRQnx3LMjnmJXP/96j2fyXHMowClTF43Cvdc5jh622WITOOFAIq9RfIXdS -47G6FAN54V+Qt0pXEgIOmvG+B2C24A041fo3jUPZxFRSYYuv9vG6QJby3kCsaqqt -ngYs2JSKx9CfOfGfyPbNt2/CO/bBsXgYzLR7REx5My1Mp9YsDmeIgbcd2V5hw/Me -rlSXrG4Eqs9gRDrBUvsydUOJFC1PlnIXH3VSBc6X9o4n2H6XECOsJQSeXLCaeMav -deKb0r1HvdbAYrdqw6mRM8Ok3fpSoD3mUsZQ8fp3luO3tHL1lddxHb7EsKzt/ubh -B9lEzDTcILlINlCl41X0OZKr/c+Ec8EdaSvITYJj0fvaZmDF7Wcs/dDWNft2XUaD -VcptOKbQVE1ufbrc2s1BdKOriAC6dSVKVDrAUQD/MlhT3p/YwbjSY2MqwRKztWRv -sA1Kqjg1IdUQzQizRKuHa322qnduLjHy0rb0ElrMpFe3B+OcIPs1E7Gvo4BVQ5jU -5GqHm83iaFIQaXmEsrVtCOBygVf00+WNRV3WFTOP9UEWFgtxsaHAU8UZhsDbKcZ5 -l/w6kQdNElQuJA+1n1OxRZ5wIpfrRIMaxBQg2plUTVb9Tgz1qTZxHIEYPAAePfvX -tDn9SBiktj/8dhy1T0ko89yXCekpGxkU9rbmAd4Lrp6Wbc6+bKt4KzAqw319qq9U -Pslq7EKNM0Zq5pfwn1MRjzvmyHxz2sYHeij0CmuZY7xuOa4NzXt1vr6nSlIpX77W -ng/Rnd7qpyG2IWYihi6ztFHyj9h3FEcBHMk4JINLcdYOxXICz3KsRMfntrwQ4E6O -NFJ3fPpVNkk4GZcxy6idNkUBz1s8ixVWC8yi36byxE+TTRtcvqXQnJVgs63vMUlC -HVwaGau4YeUp4Nj2ZO44Srd/kQRy8yuCOPDdlJEiO6eDD4+XKedJQg1LuGeoXMVn ------END RSA PRIVATE KEY----- diff --git a/functions/common/function-test-support/src/main/resources/id_rsa_pp.pub b/functions/common/function-test-support/src/main/resources/id_rsa_pp.pub deleted file mode 100644 index 50cf189a..00000000 --- a/functions/common/function-test-support/src/main/resources/id_rsa_pp.pub +++ /dev/null @@ -1 +0,0 @@ -AAAAB3NzaC1yc2EAAAADAQABAAABAQC6MIzgyVi8G1+HRhFHPWRH+3w/8/uxtiuIfb4puVPjHI53Lvf5odzfhv0T6Z2/jSXmI3I6dpjbsgiptdCTX4kqUFLXxkuJR4LHatNtgO1w32aVIdAvfj7KtrL3SmP2XWqQGVcUWHEn2H1RHFHKdC6ArYFb1X8p5N/BHSQjuttaeVi9FsDxvC5euIbtDEEJmmvjjfWlI1m/6qCqMYxDWA9i9APU/rB0QwFNUQ6HuZ2QzEaU/hQMGmqgW5o1I/W8JR0bqis8wZQDLv1fwCkXpWG5BAuiJH+FJMxRAkfEMBpVwO7Sl0ufePVuSM2BMAAe+4a75sVp8ahbOId6y0GUTeJl diff --git a/functions/common/function-test-support/src/main/resources/logback-test.xml b/functions/common/function-test-support/src/main/resources/logback-test.xml deleted file mode 100644 index 554cd1bd..00000000 --- a/functions/common/function-test-support/src/main/resources/logback-test.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n - - - - - - - - diff --git a/functions/common/function-test-support/src/main/resources/xmpp/conf/available-plugins.xml b/functions/common/function-test-support/src/main/resources/xmpp/conf/available-plugins.xml deleted file mode 100755 index b070cec2..00000000 --- a/functions/common/function-test-support/src/main/resources/xmpp/conf/available-plugins.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/functions/common/function-test-support/src/main/resources/xmpp/conf/crowd.properties b/functions/common/function-test-support/src/main/resources/xmpp/conf/crowd.properties deleted file mode 100755 index d43a8ba4..00000000 --- a/functions/common/function-test-support/src/main/resources/xmpp/conf/crowd.properties +++ /dev/null @@ -1,42 +0,0 @@ -# -# This file defines the configuration properties required -# when using the Atlassian Crowd integration for Openfire. -# -# https://confluence.atlassian.com/display/CROWD/The+crowd.properties+file -# -# To activate the Crowd integration for Openfire, you must define -# the following Openfire system properties: -# -# provider.admin.className org.jivesoftware.openfire.crowd.CrowdAdminProvider -# provider.auth.className org.jivesoftware.openfire.crowd.CrowdAuthProvider -# provider.group.className org.jivesoftware.openfire.crowd.CrowdGroupProvider -# provider.user.className org.jivesoftware.openfire.crowd.CrowdUserProvider -# provider.vcard.className org.jivesoftware.openfire.crowd.CrowdVCardProvider -# -# In addition, you may customize the Crowd provider using the following Openfire -# system properties: -# -# admin.authorizedGroups -# crowd.groups.cache.ttl.seconds 3600 -# crowd.users.cache.ttl.seconds 3600 -# - -# The REST URL for your Crowd server. -crowd.server.url=https://YOUR-CROWD-SERVER:8095/crowd/ - -# These properties are required to authenticate with the Crowd server. -# They must match the values specified in the Crowd configuration. -application.name=openfire -application.password= - -# Other optional configuration properties. - -#http.proxy.host= -#http.proxy.port= -#http.proxy.username= -#http.proxy.password= - -# These properties can be used to tune the Crowd integration. -#http.max.connections=20 -#http.timeout=5000 -#http.socket.timeout=20000 diff --git a/functions/common/function-test-support/src/main/resources/xmpp/conf/openfire-demoboot.xml b/functions/common/function-test-support/src/main/resources/xmpp/conf/openfire-demoboot.xml deleted file mode 100755 index 8855c30b..00000000 --- a/functions/common/function-test-support/src/main/resources/xmpp/conf/openfire-demoboot.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - 9090 - 9091 - - - org.jivesoftware.database.EmbeddedConnectionProvider - - - true - en - - - true - - localhost - localhost - - - embedded - - - admin@example.com - admin - - - - john - secret - John Doe - john.doe@example.com - - - jane@localhost - Jane - - - - - jane - secret - Jane Doe - jane.doe@example.com - - - john@localhost - John - - - - - - diff --git a/functions/common/function-test-support/src/main/resources/xmpp/conf/openfire.xml b/functions/common/function-test-support/src/main/resources/xmpp/conf/openfire.xml deleted file mode 100644 index 2c9f7e3d..00000000 --- a/functions/common/function-test-support/src/main/resources/xmpp/conf/openfire.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - 9090 - 9091 - - - org.jivesoftware.database.DefaultConnectionProvider - - true - en - localhost - diff --git a/functions/common/function-test-support/src/main/resources/xmpp/conf/security.xml b/functions/common/function-test-support/src/main/resources/xmpp/conf/security.xml deleted file mode 100644 index 41850216..00000000 --- a/functions/common/function-test-support/src/main/resources/xmpp/conf/security.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - Blowfish - - - - - - - database.defaultProvider.username - database.defaultProvider.password - - - - diff --git a/functions/common/function-test-support/src/main/resources/xmpp/conf/security/archive/readme.txt b/functions/common/function-test-support/src/main/resources/xmpp/conf/security/archive/readme.txt deleted file mode 100755 index 62573a55..00000000 --- a/functions/common/function-test-support/src/main/resources/xmpp/conf/security/archive/readme.txt +++ /dev/null @@ -1 +0,0 @@ -This directory is used as a default location in which Openfire stores backups of keystore files. diff --git a/functions/common/function-test-support/src/main/resources/xmpp/conf/security/client.truststore b/functions/common/function-test-support/src/main/resources/xmpp/conf/security/client.truststore deleted file mode 100755 index c408465500cb0af9cfd1f7371422ef8899ae6725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32 ncmezO_TO6u1_mY|W_Xm5=la|E{*s%M?mC{^wn--0;QAy0^AQhj diff --git a/functions/common/function-test-support/src/main/resources/xmpp/conf/security/keystore b/functions/common/function-test-support/src/main/resources/xmpp/conf/security/keystore deleted file mode 100755 index 1405b0f0a20edcc5d0d1aa70f343e4f84377633f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4273 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 diff --git a/functions/common/function-test-support/src/main/resources/xmpp/conf/security/truststore b/functions/common/function-test-support/src/main/resources/xmpp/conf/security/truststore deleted file mode 100755 index cc04a6534d93cf3834fb361e7db4cee684047642..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174089 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%0D-Lq#M?@Mo2K3X2ySn)rL;jsV+w@PGTi9vtUo?% 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 z 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 - - \ No newline at end of file diff --git a/functions/common/metadata-store-common/README.adoc b/functions/common/metadata-store-common/README.adoc deleted file mode 100644 index 249ae33e..00000000 --- a/functions/common/metadata-store-common/README.adoc +++ /dev/null @@ -1,139 +0,0 @@ -=== `MetadataStore` Common Module - -This artifact contains a Spring Boot auto-configuration for the `MetadataStore`which can be used in various Spring Integration scenarios, like file polling, idempotent receiver, offset management etc. -See Spring Integration "`https://docs.spring.io/spring-integration/docs/5.0.6.RELEASE/reference/html/system-management-chapter.html#metadata-store[Reference Manual]`" for more information. - -In addition to the standard Spring Boot configuration properties this module exposes a `MetadataStoreProperties` with the `metadata.store` prefix. - -To auto-configure particular `MetadataStore` you need to set `metadata.store.type` and include the respective dependencies into the target app starter: - -==== Redis - -The `RedisMetadataStore` requires regular Spring Boot auto-configuration for https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-redis[Spring Data Redis] and minimal set of dependencies is like this: - -[source,xml] ----- - - org.springframework.integration - spring-integration-redis - - - org.springframework.boot - spring-boot-starter-data-redis - ----- - -Additional configuration property for `RedisMetadataStore` is: - -$$metadata.store.redis.key$$:: $$Redis key for metadata.$$ *($$String$$, default: `$$MetaData$$`)* - -==== MongoDb - -The `MongoDbMetadataStore` requires regular Spring Boot auto-configuration for https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-mongodb[Spring Data MongoDB] and minimal set of dependencies is like this: - -[source,xml] ----- - - org.springframework.integration - spring-integration-mongodb - - - org.springframework.boot - spring-boot-starter-data-mongodb - ----- - -Additional configuration property for `MongoDbMetadataStore` is: - -$$metadata.store.mongo-db.collection$$:: $$MongoDB collection name for metadata.$$ *($$String$$, default: `$$metadataStore$$`)* - -==== Hazelcast - -The `HazelcastMetadataStore` requires regular Spring Boot auto-configuration for https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-caching-provider-hazelcast[Hazelcast] and minimal set of dependencies is like this: - -[source,xml] ----- - - org.springframework.integration - spring-integration-hazelcast - ----- - -There are no additional configuration properties for the `HazelcastMetadataStore`, however a `MetadataStoreListener` bean can be configured in the application context to react to the `MetadataStore` events. - -==== Zookeeper - -The `ZookeeperMetadataStore` requires this dependency for auto-configuration: - -[source,xml] ----- - - org.springframework.integration - spring-integration-zookeeper - ----- - -The configuration properties for `ZookeeperMetadataStore` are: - -$$metadata.store.zookeeper.connect-string$$:: $$Zookeeper connect string in form HOST:PORT.$$ *($$String$$, default: `$$127.0.0.1:2181$$`)* -$$metadata.store.zookeeper.retry-interval$$:: $$Retry interval for Zookeeper operations in milliseconds.$$ *($$int$$, default: `$$1000$$`)* -$$metadata.store.zookeeper.encoding$$:: $$Encoding to use when storing data in Zookeeper.$$ *($$Charset$$, default: `$$UTF-8$$`)* -$$metadata.store.zookeeper.root$$:: $$Root node - store entries are children of this node.$$ *($$String$$, default: `$$/SpringIntegration-MetadataStore$$`)* - -In addition, for the `ZookeeperMetadataStore`, a `MetadataStoreListener` bean can be configured in the application context to react to the `MetadataStore` events. -Also a `CuratorFramework` bean can be provided to override a default auto-configured one. - -==== AWS DymanoDb - -The `DynamoDbMetadataStore` requires regular Spring Cloud AWS auto-configuration for https://cloud.spring.io/spring-cloud-static/spring-cloud-aws/2.0.0.RELEASE/single/spring-cloud-aws.html#_spring_boot_auto_configuration[Spring Boot] and minimal set of dependencies is like this: - -[source,xml] ----- - - org.springframework.integration - spring-integration-aws - - - com.amazonaws - aws-java-sdk-dynamodb - ----- - -Additional configuration properties for `DynamoDbMetadataStore` are: - -$$metadata.store.dynamo-db.table:: $$Table name for metadata.$$ *($$String$$, default: `$$SpringIntegrationMetadataStore$$`)* -$$metadata.store.dynamo-db.read-capacity:: $$Read capacity on the table.$$ *($$long$$, default: `$$1$$`)* -$$metadata.store.dynamo-db.write-capacity:: $$Write capacity on the table.$$ *($$long$$, default: `$$1$$`)* -$$metadata.store.dynamo-db.create-delay:: $$Delay between create table retries.$$ *($$int$$, default: `$$1$$`)* -$$metadata.store.dynamo-db.create-retries:: $$Retry number for create table request.$$ *($$int$$, default: `$$25$$`)* -$$metadata.store.dynamo-db.time-to-live:: $$TTL for table entries.$$ *($$Integer$$, default: `$$$$`)* - -A default, auto-configured `AmazonDynamoDBAsync` bean can be overridden in the target application. - -==== JDBC - -The `JdbcMetadataStore` requires regular Spring Boot auto-configuration for https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-sql[JDBC DataSource] and minimal set of dependencies is like this: - -[source,xml] ----- - - org.springframework.integration - spring-integration-jdbc - - - org.springframework.boot - spring-boot-starter-jdbc - ----- - -Plus vendor-specific JDBC driver artifact(s). - -Additional configuration properties for `JdbcMetadataStore` are: - -$$metadata.store.jdbc.table-prefix:: $$Prefix for the custom table name.$$ *($$String$$, default: `$$INT_$$`)* -$$metadata.store.jdbc.region:: $$Unique grouping identifier for messages persisted with this store.$$ *($$String$$, default: `$$DEFAULT$$`)* - - - -When no any of those technologies dependencies are preset, an in-memory `SimpleMetadataStore` is auto-configured. -The target application can also provide its own `MetadataStore` bean to override any auto-configuration hooks. diff --git a/functions/common/metadata-store-common/pom.xml b/functions/common/metadata-store-common/pom.xml deleted file mode 100644 index 34aae63d..00000000 --- a/functions/common/metadata-store-common/pom.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/common/metadata-store-common/src/main/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreAutoConfiguration.java b/functions/common/metadata-store-common/src/main/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreAutoConfiguration.java deleted file mode 100644 index fa2b9fa6..00000000 --- a/functions/common/metadata-store-common/src/main/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreAutoConfiguration.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright 2018-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.common.metadata.store; - -import com.hazelcast.core.HazelcastInstance; -import io.awspring.cloud.autoconfigure.core.AwsClientBuilderConfigurer; -import org.apache.curator.framework.CuratorFramework; -import org.apache.curator.framework.CuratorFrameworkFactory; -import org.apache.curator.retry.RetryForever; -import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient; - -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.integration.aws.metadata.DynamoDbMetadataStore; -import org.springframework.integration.hazelcast.metadata.HazelcastMetadataStore; -import org.springframework.integration.jdbc.metadata.JdbcMetadataStore; -import org.springframework.integration.metadata.ConcurrentMetadataStore; -import org.springframework.integration.metadata.MetadataStoreListener; -import org.springframework.integration.metadata.SimpleMetadataStore; -import org.springframework.integration.mongodb.metadata.MongoDbMetadataStore; -import org.springframework.integration.redis.metadata.RedisMetadataStore; -import org.springframework.integration.zookeeper.metadata.ZookeeperMetadataStore; -import org.springframework.jdbc.core.JdbcTemplate; - -/** - * @author Artem Bilan - * @author David Turanski - * @author Corneil du Plessis - * - * @since 2.0.2 - */ -@AutoConfiguration -@ConditionalOnClass(ConcurrentMetadataStore.class) -@EnableConfigurationProperties(MetadataStoreProperties.class) -public class MetadataStoreAutoConfiguration { - - @Bean - @ConditionalOnProperty(prefix = "metadata.store", name = "type", havingValue = "memory", matchIfMissing = true) - @ConditionalOnMissingBean - public ConcurrentMetadataStore simpleMetadataStore() { - return new SimpleMetadataStore(); - } - - @ConditionalOnProperty(prefix = "metadata.store", name = "type", havingValue = "redis") - static class Redis { - - @Bean - @ConditionalOnMissingBean - public ConcurrentMetadataStore redisMetadataStore(RedisTemplate redisTemplate, - MetadataStoreProperties metadataStoreProperties) { - - return new RedisMetadataStore(redisTemplate, metadataStoreProperties.getRedis().getKey()); - } - - } - - @ConditionalOnProperty(prefix = "metadata.store", name = "type", havingValue = "mongodb") - static class Mongo { - - @Bean - @ConditionalOnMissingBean - public ConcurrentMetadataStore mongoDbMetadataStore(MongoTemplate mongoTemplate, - MetadataStoreProperties metadataStoreProperties) { - - return new MongoDbMetadataStore(mongoTemplate, metadataStoreProperties.getMongoDb().getCollection()); - } - - } - - @ConditionalOnProperty(prefix = "metadata.store", name = "type", havingValue = "hazelcast") - static class Hazelcast { - - @Bean - @ConditionalOnMissingBean - public HazelcastInstance hazelcastInstance() { - return com.hazelcast.core.Hazelcast.newHazelcastInstance(); - } - - @Bean - @ConditionalOnMissingBean - public ConcurrentMetadataStore hazelcastMetadataStore(HazelcastInstance hazelcastInstance, - ObjectProvider metadataStoreListenerObjectProvider) { - - HazelcastMetadataStore hazelcastMetadataStore = new HazelcastMetadataStore(hazelcastInstance); - metadataStoreListenerObjectProvider.ifAvailable(hazelcastMetadataStore::addListener); - return hazelcastMetadataStore; - } - - } - - @ConditionalOnProperty(prefix = "metadata.store", name = "type", havingValue = "zookeeper") - static class Zookeeper { - - @Bean(initMethod = "start") - @ConditionalOnMissingBean - public CuratorFramework curatorFramework(MetadataStoreProperties metadataStoreProperties) { - MetadataStoreProperties.Zookeeper zookeeperProperties = metadataStoreProperties.getZookeeper(); - return CuratorFrameworkFactory.newClient(zookeeperProperties.getConnectString(), - new RetryForever(zookeeperProperties.getRetryInterval())); - } - - @Bean - @ConditionalOnMissingBean - public ConcurrentMetadataStore zookeeperMetadataStore(CuratorFramework curatorFramework, - MetadataStoreProperties metadataStoreProperties, - ObjectProvider metadataStoreListenerObjectProvider) { - - MetadataStoreProperties.Zookeeper zookeeperProperties = metadataStoreProperties.getZookeeper(); - ZookeeperMetadataStore zookeeperMetadataStore = new ZookeeperMetadataStore(curatorFramework); - zookeeperMetadataStore.setEncoding(zookeeperProperties.getEncoding().name()); - zookeeperMetadataStore.setRoot(zookeeperProperties.getRoot()); - metadataStoreListenerObjectProvider.ifAvailable(zookeeperMetadataStore::addListener); - return zookeeperMetadataStore; - } - - } - - @ConditionalOnProperty(prefix = "metadata.store", name = "type", havingValue = "dynamodb") - static class DynamoDb { - - @Bean - @ConditionalOnMissingBean - public DynamoDbAsyncClient dynamoDB(AwsClientBuilderConfigurer awsClientBuilderConfigurer) { - return awsClientBuilderConfigurer.configure(DynamoDbAsyncClient.builder()).build(); - } - - @Bean - @ConditionalOnMissingBean - public ConcurrentMetadataStore dynamoDbMetadataStore(DynamoDbAsyncClient dynamoDB, - MetadataStoreProperties metadataStoreProperties) { - - MetadataStoreProperties.DynamoDb dynamoDbProperties = metadataStoreProperties.getDynamoDb(); - - DynamoDbMetadataStore dynamoDbMetadataStore = new DynamoDbMetadataStore(dynamoDB, - dynamoDbProperties.getTable()); - - dynamoDbMetadataStore.setReadCapacity(dynamoDbProperties.getReadCapacity()); - dynamoDbMetadataStore.setWriteCapacity(dynamoDbProperties.getWriteCapacity()); - dynamoDbMetadataStore.setCreateTableDelay(dynamoDbProperties.getCreateDelay()); - dynamoDbMetadataStore.setCreateTableRetries(dynamoDbProperties.getCreateRetries()); - if (dynamoDbProperties.getTimeToLive() != null) { - dynamoDbMetadataStore.setTimeToLive(dynamoDbProperties.getTimeToLive()); - } - - return dynamoDbMetadataStore; - } - - } - - @ConditionalOnProperty(prefix = "metadata.store", name = "type", havingValue = "jdbc") - static class Jdbc { - @Bean - @ConditionalOnMissingBean - public ConcurrentMetadataStore jdbcMetadataStore(JdbcTemplate jdbcTemplate, - MetadataStoreProperties metadataStoreProperties) { - - MetadataStoreProperties.Jdbc jdbcProperties = metadataStoreProperties.getJdbc(); - - JdbcMetadataStore jdbcMetadataStore = new JdbcMetadataStore(jdbcTemplate); - jdbcMetadataStore.setTablePrefix(jdbcProperties.getTablePrefix()); - jdbcMetadataStore.setRegion(jdbcProperties.getRegion()); - - return jdbcMetadataStore; - } - - } - -} diff --git a/functions/common/metadata-store-common/src/main/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreProperties.java b/functions/common/metadata-store-common/src/main/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreProperties.java deleted file mode 100644 index 85b0c4d9..00000000 --- a/functions/common/metadata-store-common/src/main/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreProperties.java +++ /dev/null @@ -1,291 +0,0 @@ -/* - * Copyright 2018-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.metadata.store; - -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.integration.aws.metadata.DynamoDbMetadataStore; -import org.springframework.integration.jdbc.metadata.JdbcMetadataStore; -import org.springframework.integration.redis.metadata.RedisMetadataStore; - -/** - * @author Artem Bilan - * @author David Turanski - * @author Corneil du Plessis - * @since 2.0.2 - */ -@ConfigurationProperties("metadata.store") -public class MetadataStoreProperties { - enum StoreType { - mongodb, - redis, - dynamodb, - jdbc, - zookeeper, - hazelcast, - memory - } - - /** - * Indicates the type of metadata store to configure (default is 'memory'). - * You must include the corresponding Spring Integration dependency to use a persistent store. - */ - private StoreType type = StoreType.memory; - - private final Mongo mongoDb = new Mongo(); - - private final Redis redis = new Redis(); - - private final DynamoDb dynamoDb = new DynamoDb(); - - private final Jdbc jdbc = new Jdbc(); - - private final Zookeeper zookeeper = new Zookeeper(); - - public StoreType getType() { - return this.type; - } - - public void setType(StoreType type) { - this.type = type; - } - - public Mongo getMongoDb() { - return this.mongoDb; - } - - public Redis getRedis() { - return this.redis; - } - - public DynamoDb getDynamoDb() { - return this.dynamoDb; - } - - public Jdbc getJdbc() { - return this.jdbc; - } - - public Zookeeper getZookeeper() { - return this.zookeeper; - } - - public static class Mongo { - - /** - * MongoDB collection name for metadata. - */ - private String collection = "metadataStore"; - - public String getCollection() { - return this.collection; - } - - public void setCollection(String collection) { - this.collection = collection; - } - - } - - public static class Redis { - - /** - * Redis key for metadata. - */ - private String key = RedisMetadataStore.KEY; - - public String getKey() { - return this.key; - } - - public void setKey(String key) { - this.key = key; - } - - } - - public static class DynamoDb { - - /** - * Table name for metadata. - */ - private String table = DynamoDbMetadataStore.DEFAULT_TABLE_NAME; - - /** - * Read capacity on the table. - */ - private long readCapacity = 1L; - - /** - * Write capacity on the table. - */ - private long writeCapacity = 1L; - - /** - * Delay between create table retries. - */ - private int createDelay = 1; - - /** - * Retry number for create table request. - */ - private int createRetries = 25; - - /** - * TTL for table entries. - */ - private Integer timeToLive; - - public String getTable() { - return this.table; - } - - public void setTable(String table) { - this.table = table; - } - - public long getReadCapacity() { - return this.readCapacity; - } - - public void setReadCapacity(long readCapacity) { - this.readCapacity = readCapacity; - } - - public long getWriteCapacity() { - return this.writeCapacity; - } - - public void setWriteCapacity(long writeCapacity) { - this.writeCapacity = writeCapacity; - } - - public int getCreateDelay() { - return this.createDelay; - } - - public void setCreateDelay(int createDelay) { - this.createDelay = createDelay; - } - - public int getCreateRetries() { - return this.createRetries; - } - - public void setCreateRetries(int createRetries) { - this.createRetries = createRetries; - } - - public Integer getTimeToLive() { - return this.timeToLive; - } - - public void setTimeToLive(Integer timeToLive) { - this.timeToLive = timeToLive; - } - - } - - public static class Jdbc { - - /** - * Prefix for the custom table name. - */ - private String tablePrefix = JdbcMetadataStore.DEFAULT_TABLE_PREFIX; - - /** - * Unique grouping identifier for messages persisted with this store. - */ - private String region = "DEFAULT"; - - public String getTablePrefix() { - return this.tablePrefix; - } - - public void setTablePrefix(String tablePrefix) { - this.tablePrefix = tablePrefix; - } - - public String getRegion() { - return this.region; - } - - public void setRegion(String region) { - this.region = region; - } - - } - - public static class Zookeeper { - - /** - * Zookeeper connect string in form HOST:PORT. - */ - private String connectString = "127.0.0.1:2181"; - - /** - * Retry interval for Zookeeper operations in milliseconds. - */ - private int retryInterval = 1000; - - /** - * Encoding to use when storing data in Zookeeper. - */ - private Charset encoding = StandardCharsets.UTF_8; - - /** - * Root node - store entries are children of this node. - */ - private String root = "/SpringIntegration-MetadataStore"; - - public String getConnectString() { - return connectString; - } - - public void setConnectString(String connectString) { - this.connectString = connectString; - } - - public int getRetryInterval() { - return this.retryInterval; - } - - public void setRetryInterval(int retryInterval) { - this.retryInterval = retryInterval; - } - - public Charset getEncoding() { - return this.encoding; - } - - public void setEncoding(Charset encoding) { - this.encoding = encoding; - } - - public String getRoot() { - return this.root; - } - - public void setRoot(String root) { - this.root = root; - } - - } - -} diff --git a/functions/common/metadata-store-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/common/metadata-store-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 77a75edd..00000000 --- a/functions/common/metadata-store-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.common.metadata.store.MetadataStoreAutoConfiguration diff --git a/functions/common/metadata-store-common/src/test/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreAutoConfigurationTests.java b/functions/common/metadata-store-common/src/test/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreAutoConfigurationTests.java deleted file mode 100644 index 107bdde3..00000000 --- a/functions/common/metadata-store-common/src/test/java/org/springframework/cloud/fn/common/metadata/store/MetadataStoreAutoConfigurationTests.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright 2018-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.common.metadata.store; - -import java.beans.Introspector; -import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.function.Consumer; -import java.util.function.Predicate; - -import org.apache.curator.test.TestingServer; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.MethodSource; -import org.mockito.ArgumentMatchers; -import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; -import software.amazon.awssdk.regions.providers.AwsRegionProvider; -import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient; -import software.amazon.awssdk.services.dynamodb.model.DescribeTableRequest; -import software.amazon.awssdk.services.dynamodb.model.DescribeTableResponse; - -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.test.context.FilteredClassLoader; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.aws.metadata.DynamoDbMetadataStore; -import org.springframework.integration.hazelcast.metadata.HazelcastMetadataStore; -import org.springframework.integration.jdbc.metadata.JdbcMetadataStore; -import org.springframework.integration.metadata.ConcurrentMetadataStore; -import org.springframework.integration.metadata.MetadataStore; -import org.springframework.integration.metadata.SimpleMetadataStore; -import org.springframework.integration.mongodb.metadata.MongoDbMetadataStore; -import org.springframework.integration.redis.metadata.RedisMetadataStore; -import org.springframework.integration.zookeeper.metadata.ZookeeperMetadataStore; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.BDDMockito.willReturn; -import static org.mockito.Mockito.mock; - -/** - * @author Artem Bilan - * @author Corneil du Plessis - * - * @since 2.0.2 - */ -public class MetadataStoreAutoConfigurationTests { - - private final static List> METADATA_STORE_CLASSES = - List.of( - RedisMetadataStore.class, - MongoDbMetadataStore.class, - JdbcMetadataStore.class, - ZookeeperMetadataStore.class, - HazelcastMetadataStore.class, - DynamoDbMetadataStore.class, - SimpleMetadataStore.class - ); - - @ParameterizedTest - @MethodSource - public void testMetadataStore(Class classToInclude) { - ApplicationContextRunner contextRunner = - new ApplicationContextRunner() - .withUserConfiguration(TestConfiguration.class) - .withPropertyValues("metadata.store.type=" + - classToInclude.getSimpleName() - .replaceFirst("MetadataStore", "") - .toLowerCase() - .replaceFirst("simple", "memory")) - .withClassLoader(filteredClassLoaderBut(classToInclude)); - contextRunner - .run(context -> { - assertThat(context.getBeansOfType(MetadataStore.class)).hasSize(1); - - assertThat(context.getBeanNamesForType(classToInclude)) - .containsOnlyOnce(Introspector.decapitalize(classToInclude.getSimpleName())); - }); - } - - static List> testMetadataStore() { - return METADATA_STORE_CLASSES; - } - - private static FilteredClassLoader filteredClassLoaderBut(Class classToInclude) { - return new FilteredClassLoader( - METADATA_STORE_CLASSES.stream() - .filter(Predicate.isEqual(classToInclude).negate()) - .toArray(Class[]::new)); - } - - @Configuration - @EnableAutoConfiguration - public static class TestConfiguration { - - @Bean(destroyMethod = "stop") - @ConditionalOnClass(ZookeeperMetadataStore.class) - public static TestingServer zookeeperTestingServer() throws Exception { - TestingServer testingServer = new TestingServer(true); - - System.setProperty("metadata.store.zookeeper.connect-string", testingServer.getConnectString()); - System.setProperty("metadata.store.zookeeper.encoding", StandardCharsets.US_ASCII.name()); - - return testingServer; - } - - @Configuration - @ConditionalOnClass(DynamoDbMetadataStore.class) - protected static class DynamoDbMockConfig { - - @Bean - public static DynamoDbAsyncClient dynamoDB() { - DynamoDbAsyncClient dynamoDb = mock(DynamoDbAsyncClient.class); - willReturn(CompletableFuture.completedFuture(DescribeTableResponse.builder().build())) - .given(dynamoDb) - .describeTable(ArgumentMatchers.>any()); - - return dynamoDb; - } - - @Bean - public static AwsCredentialsProvider awsCredentialsProvider() { - return mock(AwsCredentialsProvider.class); - } - - @Bean - public static AwsRegionProvider regionProvider() { - return mock(AwsRegionProvider.class); - } - - } - - } - -} diff --git a/functions/common/mongodb-common/pom.xml b/functions/common/mongodb-common/pom.xml deleted file mode 100644 index baa33f34..00000000 --- a/functions/common/mongodb-common/pom.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/common/mongodb-common/src/main/resources/application.properties b/functions/common/mongodb-common/src/main/resources/application.properties deleted file mode 100644 index 1bb8bf6d..00000000 --- a/functions/common/mongodb-common/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -# empty diff --git a/functions/common/mongodb-common/src/test/java/org/springframework/cloud/fn/common/mongo/MongoDbTestContainerSupport.java b/functions/common/mongodb-common/src/test/java/org/springframework/cloud/fn/common/mongo/MongoDbTestContainerSupport.java deleted file mode 100644 index 8848a342..00000000 --- a/functions/common/mongodb-common/src/test/java/org/springframework/cloud/fn/common/mongo/MongoDbTestContainerSupport.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2022-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.common.mongo; - -import java.time.Duration; - -import org.junit.jupiter.api.BeforeAll; -import org.testcontainers.containers.MongoDBContainer; -import org.testcontainers.junit.jupiter.Testcontainers; - -/** - * Provides a static {@link MongoDBContainer} that can be shared across test classes. - * - * @author Chris Bono - */ -@Testcontainers(disabledWithoutDocker = true) -public interface MongoDbTestContainerSupport { - - MongoDBContainer MONGO_CONTAINER = new MongoDBContainer("mongo:6.0.6") - .withStartupTimeout(Duration.ofSeconds(120)) - .withStartupAttempts(3); - @BeforeAll - static void startContainer() { - MONGO_CONTAINER.start(); - } - - static String mongoDbUri() { - return "mongodb://localhost:" + MONGO_CONTAINER.getFirstMappedPort(); - } - -} diff --git a/functions/common/mqtt-common/pom.xml b/functions/common/mqtt-common/pom.xml deleted file mode 100644 index f2cc6ab1..00000000 --- a/functions/common/mqtt-common/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - mqtt-common - mqtt-common - MQTT Common - - - - org.springframework.integration - spring-integration-mqtt - - - - diff --git a/functions/common/mqtt-common/src/main/java/org/springframework/cloud/fn/common/mqtt/MqttConfiguration.java b/functions/common/mqtt-common/src/main/java/org/springframework/cloud/fn/common/mqtt/MqttConfiguration.java deleted file mode 100644 index 7cdad151..00000000 --- a/functions/common/mqtt-common/src/main/java/org/springframework/cloud/fn/common/mqtt/MqttConfiguration.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2017-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.mqtt; - -import java.util.Map; -import java.util.Properties; - -import org.eclipse.paho.client.mqttv3.MqttConnectOptions; -import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; -import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.mqtt.core.DefaultMqttPahoClientFactory; -import org.springframework.integration.mqtt.core.MqttPahoClientFactory; -import org.springframework.util.ObjectUtils; - -/** - * Generic mqtt configuration. - * - * @author Janne Valkealahti - * @author Artem Bilan - */ -@Configuration -public class MqttConfiguration { - - @Autowired - private MqttProperties mqttProperties; - - @Bean - public MqttPahoClientFactory mqttClientFactory() { - - MqttConnectOptions mqttConnectOptions = new MqttConnectOptions(); - mqttConnectOptions.setServerURIs(mqttProperties.getUrl()); - mqttConnectOptions.setUserName(mqttProperties.getUsername()); - mqttConnectOptions.setPassword(mqttProperties.getPassword().toCharArray()); - mqttConnectOptions.setCleanSession(mqttProperties.isCleanSession()); - mqttConnectOptions.setConnectionTimeout(mqttProperties.getConnectionTimeout()); - mqttConnectOptions.setKeepAliveInterval(mqttProperties.getKeepAliveInterval()); - - Map sslProperties = mqttProperties.getSslProperties(); - - if (!sslProperties.isEmpty()) { - Properties sslProps = new Properties(); - sslProps.putAll(sslProperties); - mqttConnectOptions.setSSLProperties(sslProps); - } - - DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory(); - factory.setConnectionOptions(mqttConnectOptions); - - if (ObjectUtils.nullSafeEquals(mqttProperties.getPersistence(), "file")) { - factory.setPersistence(new MqttDefaultFilePersistence(mqttProperties.getPersistenceDirectory())); - } - else if (ObjectUtils.nullSafeEquals(mqttProperties.getPersistence(), "memory")) { - factory.setPersistence(new MemoryPersistence()); - } - return factory; - } - -} diff --git a/functions/common/mqtt-common/src/main/java/org/springframework/cloud/fn/common/mqtt/MqttProperties.java b/functions/common/mqtt-common/src/main/java/org/springframework/cloud/fn/common/mqtt/MqttProperties.java deleted file mode 100644 index ea70f75d..00000000 --- a/functions/common/mqtt-common/src/main/java/org/springframework/cloud/fn/common/mqtt/MqttProperties.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Copyright 2017-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.mqtt; - -import java.util.HashMap; -import java.util.Map; - -import jakarta.validation.constraints.Size; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * Generic mqtt connection properties. - * - * @author Janne Valkealahti - * @author Artem Bilan - */ -@Validated -@ConfigurationProperties("mqtt") -public class MqttProperties { - - /** - * location of the mqtt broker(s) (comma-delimited list). - */ - private String[] url = new String[] { "tcp://localhost:1883" }; - - /** - * the username to use when connecting to the broker. - */ - private String username = "guest"; - - /** - * the password to use when connecting to the broker. - */ - private String password = "guest"; - - /** - * whether the client and server should remember state across restarts and reconnects. - */ - private boolean cleanSession = true; - - /** - * the connection timeout in seconds. - */ - private int connectionTimeout = 30; - - /** - * the ping interval in seconds. - */ - private int keepAliveInterval = 60; - - /** - * 'memory' or 'file'. - */ - private String persistence = "memory"; - - /** - * Persistence directory. - */ - private String persistenceDirectory = "/tmp/paho"; - - /** - * MQTT Client SSL properties. - */ - private final Map sslProperties = new HashMap<>(); - - @Size(min = 1) - public String[] getUrl() { - return url; - } - - public void setUrl(String[] url) { - this.url = url; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public boolean isCleanSession() { - return cleanSession; - } - - public void setCleanSession(boolean cleanSession) { - this.cleanSession = cleanSession; - } - - public int getKeepAliveInterval() { - return keepAliveInterval; - } - - public void setKeepAliveInterval(int keepAliveInterval) { - this.keepAliveInterval = keepAliveInterval; - } - - public int getConnectionTimeout() { - return connectionTimeout; - } - - public void setConnectionTimeout(int connectionTimeout) { - this.connectionTimeout = connectionTimeout; - } - - public String getPersistence() { - return persistence; - } - - public void setPersistence(String persistence) { - this.persistence = persistence; - } - - public String getPersistenceDirectory() { - return persistenceDirectory; - } - - public void setPersistenceDirectory(String persistenceDirectory) { - this.persistenceDirectory = persistenceDirectory; - } - - public Map getSslProperties() { - return this.sslProperties; - } - -} diff --git a/functions/common/pom.xml b/functions/common/pom.xml deleted file mode 100644 index d07b314d..00000000 --- a/functions/common/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud.fn - functions-common - 5.0.0-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/functions/common/redis-common/pom.xml b/functions/common/redis-common/pom.xml deleted file mode 100644 index f469d5d3..00000000 --- a/functions/common/redis-common/pom.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/common/redis-common/src/main/resources/application.properties b/functions/common/redis-common/src/main/resources/application.properties deleted file mode 100644 index 1bb8bf6d..00000000 --- a/functions/common/redis-common/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -# empty diff --git a/functions/common/redis-common/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisTestContainerSupport.java b/functions/common/redis-common/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisTestContainerSupport.java deleted file mode 100644 index 8f12bba9..00000000 --- a/functions/common/redis-common/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisTestContainerSupport.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2022-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.redis; - -import java.time.Duration; - -import org.junit.jupiter.api.BeforeAll; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.junit.jupiter.Testcontainers; - -/** - * Provides a static Redis Container that can be shared across test classes. - * - * @author Corneil du Plessis - */ -@Testcontainers(disabledWithoutDocker = true) -public interface RedisTestContainerSupport { - GenericContainer REDIS_CONTAINER = new GenericContainer<>("redis:7") - .withExposedPorts(6379) - .withStartupTimeout(Duration.ofSeconds(120)) - .withStartupAttempts(3); - - @BeforeAll - static void startContainer() { - REDIS_CONTAINER.start(); - } - - static String getUri() { - return "redis://localhost:" + REDIS_CONTAINER.getFirstMappedPort(); - } -} diff --git a/functions/common/tcp-common/pom.xml b/functions/common/tcp-common/pom.xml deleted file mode 100644 index 9c882739..00000000 --- a/functions/common/tcp-common/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - tcp-common - tcp-common - tcp common - - - - - org.springframework.integration - spring-integration-ip - - - - - diff --git a/functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/EncoderDecoderFactoryBean.java b/functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/EncoderDecoderFactoryBean.java deleted file mode 100644 index 7cfe763c..00000000 --- a/functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/EncoderDecoderFactoryBean.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tcp; - -import org.springframework.beans.factory.config.AbstractFactoryBean; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.context.ApplicationEventPublisherAware; -import org.springframework.integration.ip.tcp.serializer.AbstractByteArraySerializer; -import org.springframework.integration.ip.tcp.serializer.ByteArrayCrLfSerializer; -import org.springframework.integration.ip.tcp.serializer.ByteArrayLengthHeaderSerializer; -import org.springframework.integration.ip.tcp.serializer.ByteArrayLfSerializer; -import org.springframework.integration.ip.tcp.serializer.ByteArrayRawSerializer; -import org.springframework.integration.ip.tcp.serializer.ByteArraySingleTerminatorSerializer; -import org.springframework.integration.ip.tcp.serializer.ByteArrayStxEtxSerializer; -import org.springframework.util.Assert; - -/** - * Factory bean for an encoder/decoder based on - * {@link Encoding}. - * - * @author Gary Russell - * @author Christian Tzolov - */ -public class EncoderDecoderFactoryBean extends AbstractFactoryBean - implements ApplicationEventPublisherAware { - - private final Encoding encoding; - - private ApplicationEventPublisher applicationEventPublisher; - - private Integer maxMessageSize; - - public EncoderDecoderFactoryBean(Encoding encoding) { - Assert.notNull(encoding, "'encoding' cannot be null"); - this.encoding = encoding; - } - - @Override - public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { - this.applicationEventPublisher = applicationEventPublisher; - } - - /** - * The maximum message size allowed when decoding. - * @param maxMessageSize the maximum message size. - */ - public void setMaxMessageSize(int maxMessageSize) { - this.maxMessageSize = maxMessageSize; - } - - @Override - protected AbstractByteArraySerializer createInstance() throws Exception { - AbstractByteArraySerializer codec; - switch (this.encoding) { - case CRLF: - codec = new ByteArrayCrLfSerializer(); - break; - case LF: - codec = new ByteArrayLfSerializer(); - break; - case NULL: - codec = new ByteArraySingleTerminatorSerializer((byte) 0); - break; - case STXETX: - codec = new ByteArrayStxEtxSerializer(); - break; - case L1: - codec = new ByteArrayLengthHeaderSerializer(1); - break; - case L2: - codec = new ByteArrayLengthHeaderSerializer(2); - break; - case L4: - codec = new ByteArrayLengthHeaderSerializer(4); - break; - case RAW: - codec = new ByteArrayRawSerializer(); - break; - default: - throw new IllegalArgumentException("Invalid encoding: " + this.encoding); - } - codec.setApplicationEventPublisher(this.applicationEventPublisher); - if (this.maxMessageSize != null) { - codec.setMaxMessageSize(this.maxMessageSize); - } - return codec; - } - - @Override - public Class getObjectType() { - return AbstractByteArraySerializer.class; - } - -} diff --git a/functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/Encoding.java b/functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/Encoding.java deleted file mode 100644 index d434ce54..00000000 --- a/functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/Encoding.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tcp; - -/** - * @author Gary Russell - * @author Christian Tzolov - */ -public enum Encoding { - /** - * CRLF encoding. - */ - CRLF, - /** - * LF encoding. - */ - LF, - /** - * Null encoding. - */ - NULL, - /** - * STXETX encoding. - */ - STXETX, - /** - * Raw encoding. - */ - RAW, - /** - * L1 encoding. - */ - L1, - /** - * L2 encoding. - */ - L2, - /** - * L4 encoding. - */ - L4; -} diff --git a/functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/TcpConnectionFactoryProperties.java b/functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/TcpConnectionFactoryProperties.java deleted file mode 100644 index 6d011dc5..00000000 --- a/functions/common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/TcpConnectionFactoryProperties.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tcp; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * Base class for TCP connection factory properties. - * - * @author Eric Bottard - * @author Gary Russell - * @author Christian Tzolov - */ -@ConfigurationProperties("tcp") -public class TcpConnectionFactoryProperties { - - /** - * The port on which to listen; 0 for the OS to choose a port. - */ - private int port = 1234; - - /** - * Perform a reverse DNS lookup on the remote IP Address; if false, - * just the IP address is included in the message headers. - */ - private boolean reverseLookup = false; - - /** - * The timeout (ms) before closing the socket when no data is received. - */ - private int socketTimeout = 120000; - - /** - * Whether or not to use NIO. - */ - private boolean nio = false; - - /** - * Whether or not to use direct buffers. - */ - private boolean useDirectBuffers = false; - - public int getPort() { - return this.port; - } - - public void setPort(int port) { - this.port = port; - } - - public boolean isUseDirectBuffers() { - return this.useDirectBuffers; - } - - public void setUseDirectBuffers(boolean useDirectBuffers) { - this.useDirectBuffers = useDirectBuffers; - } - - public boolean isNio() { - return this.nio; - } - - public void setNio(boolean nio) { - this.nio = nio; - } - - public int getSocketTimeout() { - return this.socketTimeout; - } - - public void setSocketTimeout(int socketTimeout) { - this.socketTimeout = socketTimeout; - } - - public boolean isReverseLookup() { - return this.reverseLookup; - } - - public void setReverseLookup(boolean reverseLookup) { - this.reverseLookup = reverseLookup; - } -} diff --git a/functions/common/tensorflow-common/README.adoc b/functions/common/tensorflow-common/README.adoc deleted file mode 100644 index 15864667..00000000 --- a/functions/common/tensorflow-common/README.adoc +++ /dev/null @@ -1,344 +0,0 @@ -:images-asciidoc: https://raw.githubusercontent.com/spring-cloud/stream-applications/master/functions/common/tensorflow-common/src/main/resources/images/ - -= Programming Model for TensorFlow Inference - -Programming model builds on the https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html[Java Function API], the `TF Java Ops API` and few basic data structure that together help to unify and streamline the building of TensorFlow inference pipelines. - -Quick Start: just add the following dependency: - -[source,XML] ----- - - org.springframework.cloud.fn - tensorflow-common - ${revision} - ----- - -== Programming Model - -Implementing a real-time TensorFlow Inference in Java, typically leverages the TF Java API for loading and scoring the pre-trained models. But the logic used to convert the upstream data into model input Tensors (e.g. pre-processor) and in turn to convert the inferred Tensors back into application data (e.g. post-processor) is commonly implemented in plain Java: - -image::{images-asciidoc}/programming_model.png[TF Architecture, scaledwidth="70%"] - -The Pre and Post processing steps could become very complex (check https://github.com/ildoonet/tf-pose-estimation[Pose Estimation] or https://github.com/davidsandberg/facenet[Face Recognition]) and computationally intensive. E.g. tons of math and image operations that are better fit for optimized TF utilities rather the plain Java math or AWT/2D/Canvas such. - -Additionally, the unnecessary shuffling of data between the JVM and the native TF impacts the overall performance of the flow. The issue is apparent when multiple pre-trained TF models are combined (composed) or the same TF models are evaluated iteratively. In those cases the processed data is repeatedly being moved between the JVM Heap and the TF native memory. - -The `Java Ops API` exposes the native https://www.tensorflow.org/versions/r1.9/api_docs/cc?hl=en[TF C++ Core API] offering comprehensive, native math, image, io and alike utilities. Later is useful for implementing the computational intensive logic by using the same TF tools and infrastructure used for running the pre-trained models. - -Proposed programming model builds on the https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html[Java Function API], the Java Ops API and a basic data structure that together help to unify and streamline the building of TensorFlow inference pipelines. While focused on model-inference, this programming model is likely to be useful for building model-training pipelines as well. - -The programming model leverages the following functional definition: - -[source,Java] ----- -Function>, Map>> ----- - -and the corresponding method expression - -[source,Java] ----- -Map> apply( Map> feeds) ----- - -This function receives a map of named Tensors as an input and in turn returns a map of named Tensors. Because the input and the output formats are equivalent, functions with this signature can be reused and composed into larger, complex functions. - -The names used in the inputs, and the outputs maps are strings of the form `operation_name: output_index` (output_index defaults to 0). The names must match the indexed operations inside the underlying TF graph. + - -The https://www.tensorflow.org/api_docs/java/reference/org/tensorflow/Tensor[Tensor] class is a reference to the data used natively in the TF engine. The referenced data is not moved to JVM Heap unless explicitly materialized with `Tensor.copyTo()`. Exchanging Tensor references between functions prevents unnecessarily copying the data to the JVM heap. + - -Proposed data structure fits well with existing https://www.tensorflow.org/api_docs/java/reference/org/tensorflow/Session.Runner[Session.Runner API], which accepts https://www.tensorflow.org/api_docs/java/reference/org/tensorflow/Session.Runner.html#feed(java.lang.String,%20org.tensorflow.Tensor%3C?%3E)[indexed operations] as an input feed and returns list of tensors predefined by https://www.tensorflow.org/api_docs/java/reference/org/tensorflow/Session.Runner.html#fetch(java.lang.String)[fetch indexed operations]. - -The https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunner.java[GraphRunner] and the https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphDefinition.java[GraphDefinition] are the core abstractions used to define, load and inference TensorFlow models. https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunner.java[GraphRunner] implements the Function (e.g. Fn, Map>) definition and uses the TF Java API to run the underlying TF graph. The input Tensor map is fed to the Session Runner. After the graph is evaluated, a list of predefined fetch names is used to retrieve selected Tensors from the result as a named Tensor map. The https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunner.java#L70[withGraphDefinition(GraphDefinition)] method defines a new or loads a pre-trained TF graph, while the https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunner.java#L84[withSavedModel(path)] method helps to load a Tensorflow SavedModel. -The GraphDefinition argument is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference. - -Following snippets illustrates how to use the `withGraphDefinition` to define a new TF Graph that computes the `y1 = x1 * 2` expression: - -[source,Java] ----- -myGraph = new GraphRunner("x1", "y1") - .withGraphDefinition( tf -> - tf.withName("y1").math.mul( - tf.withName("x1").placeholder(Integer.class), - tf.constant(2))); ----- - -The x1 and y1 constructor arguments define the input and output Tensor names (technically indexed operation names) used to feed in and fetch out data to and from the defined model. - -The GraphRunner https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AbstractGraphRunner.java#L65[apply] method helps evaluate/inference the so defined graph: - -[source,Java] ----- -Map> input = Collections.singletonMap("x1", Tensor.create(666)); -result = myGraph.apply(input); ----- - -Similarly, we can load a frozen/pre-trained model (https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet#pretrained-models[MobileNetV2] model in this case) from an archive using the https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/ProtoBufGraphDefinition.java[ProtoBufGraphDefinitions] helper class. - -[source,Java] ----- -mibileNetV2 = new GraphRunner("input", "MobilenetV2/Predictions/Reshape_1") - .withGraphDefinition( - new ProtoBufGraphDefinition( -"https://storage.googleapis.com/mobilenet_v2/checkpoints/mobilenet_v2_1.4_224.tgz#mobilenet_v2_1.4_224_frozen.pb", - cacheModel)); ----- - -You can load archives from `http://`, `file://` or `classpath://` locations. - -For loading a `SavedModel` use the `GraphRunner#withSavedModel method like this: - -[source,Java] ----- -ssdMibileNetV1Coco = new GraphRunner( Arrays.asList("image_tensor"), - Arrays.asList("detection_boxes", “detection_scores”, “detection_classes”)) - .withSavedModel( ”./ssd_mobilenet_v1_coco_2017_11_17/saved_model”, "serve"); ----- - -An example inference pipeline based on the proposed Functional Programming Model would look similar to this: - -image::{images-asciidoc}/tf_pipeline.png[TF pipelinne, scaledwidth="70%"] - -Every GraphRunner instance in the pipeline uses either an in-place defined, or a pre-trained TF graph. - -In practice, it would still be required to implement some input and output adapters for the logic that cannot be (or are not feasible to be) implemented with the native Java Ops API. But you have the freedom to choose what part of the processing logic to run as natively (e.g. Java Ops API) code and what is a plain Java. - -Furthermore, we are not limited to GraphRunner but any custom https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html[Function], Map> implementations can be used in the processing pipelines. In fact the https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/Functions.java[Functions] utilities use this approach. - -When appropriate any custom Function, https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html[Supplier]>, https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html[Consumer]> or the rest of the https://docs.oracle.com/javase/8/docs/api/java/util/function/package-frame.html[java.util.function] classes and interfaces can be used. - -For real time examples check the https://github.com/spring-cloud/stream-applications/tree/master/functions/function/image-recognition-function[image-recognition] and https://github.com/spring-cloud/stream-applications/tree/master/functions/function/semantic-segmentation-function[semantic-segmentation] implementations. - -== Features - -Following paragraphs discusses some features and techniques useful for composing graphs, memorizing and reusing intermediate Tensor values, managing the Tensor resources and so on. - -=== Input and Output Contracts - -The GraphRunner constructor expects two compulsory list fields: `feedNames` - list of names that the graph accepts as input Tensors and `fetchNames` - list of (Tensor) names that the graph would return. - -[source,Java] ----- -public GraphRunner(List feedNames, List fetchedNames) ----- - -Together those two lists define the input and output contract of the graph runner. + -The names used in the inputs, and the outputs maps are strings of the form `operation_name : output_index` (output_index defaults to 0). The names must match the indexed operations inside the underlying TF graph. - -=== Composition - -Because the https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunner.java[GraphRunner] function signature uses the same type for input and output parameters, the https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html[Functional] interface allows us to compose multiple graphs https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunner.java[GraphRunner] functions into a larger composite function: - -[source,Java] ----- -composed-graph = graph1.andThen(graph2)....andThen(graphN) ----- - -For example let's take two simple graphs: `G1 (y1 = x1 * 2)` and `G2 (y2 = x2 + 20)`. The composed graph `G = G1.andThen(G2)` is equivalent to `y = (x * 2 ) + 20`. - -The https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/FunctionComposition.java[FunctionComposition example] demonstrates how this works: - -[source,Java] ----- -try ( - - GraphRunner graph1 = new GraphRunner("x1", "y1") - .withGraphDefinition(tf -> tf.withName("y1").math.mul( - tf.withName("x1").placeholder(Integer.class), - tf.constant(2))); - - GraphRunner graph2 = new GraphRunner("x2", "y2") - .withGraphDefinition(tf -> tf.withName("y2").math.add( - tf.withName("x2").placeholder(Integer.class), - tf.constant(20))); - - Tensor x = Tensor.create(10); -) { - - Map> result = - graph1.andThen(graph2).apply(Collections.singletonMap("x", x)); - - System.out.println("Result is: " + result.get("y2").intValue()); // Result is: 40 -} ----- - -Note that the GraphRunner https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AbstractGraphRunner.java#L65[automatically binds] the singleton outputs (e.g fetch) with the singleton input (e.g. feeds). In the example above the GraphRunner automatically binds the `y1` tensor produced by `graph1` to the `x2` input placeholders expected by `graph2`. - -==== Multiple inputs/outputs - -When the composed graphs use multiple input and output parameters we need to explicitly bind the outputs from the upstream graph to the inputs of the downstream one. - -For example let’s Graph1 produces two outputs (e.g. fetchNames) y11 and y12 and Graph2 expects to inputs (e.g. feedNames) x21 and x22: - -|=== -|Graph1:|Graph2: -| y11 = x1 * 2 | y2 = x21 + x22 -| y12 = x1 * 3 | -|=== - -The composed graph would look like this: - -[source,Java] ----- -Composed = Graph1.andThen( map: y11 -> x21 and y12 -> x22).andThen(Graph2) ----- - -The https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/Functions.java#L72[Functions#rename] utility helps to define the input/output mappings as illustrated in the https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/FunctionCompositionMultipleInputsOutputs.java[FunctionCompositionMultipleInputsOutputs] example: - -[source,Java] ----- -try ( - - GraphRunner graph1 = new GraphRunner(Arrays.asList("x1"), Arrays.asList("y11", "y12")) - .withGraphDefinition(tf -> { - Placeholder x1 = tf.withName("x1").placeholder(Integer.class); - tf.withName("y11").math.mul(x1, tf.constant(2)); - tf.withName("y12").math.mul(x1, tf.constant(3)); - }); - - GraphRunner graph2 = new GraphRunner(Arrays.asList("x21", "x22"), Arrays.asList("y2")) - .withGraphDefinition(tf -> tf.withName("y2").math.add( - tf.withName("x21").placeholder(Integer.class), - tf.withName("x22").placeholder(Integer.class))); - - Tensor x = Tensor.create(10); -) { - - Map> result = - graph1 - .andThen( - Functions.rename( - "y11", "x21", - "y12", "x22" - )) - .andThen(graph2) - .apply(Collections.singletonMap("x", x)); - - System.out.println("Result is: " + result.get("y2").intValue()); // Result is: 50 -} ----- - -The Functions#rename(String...mappings) takes an even number of string pairs, where every even parameter represents the from and to name to map. Eg. The y11 above is mapped into x21 and y12 is mapped into x22. + -The https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AbstractGraphRunner.java#L129[GraphRunner#enableAutoBinding()] and https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AbstractGraphRunner.java#L124[GraphRunner#disableAutoBinding()] allow altering the autobinding behavior enforcing mapping even of singleton input/output graphs. - -=== Save and Close Obsolete Tensors - -The Tensors used as inputs (feeds) and outputs (fetches) by the GraphRunners have to be released (e.g. closed) when not used anymore. - -Because every sub-graph in a composite pipeline produces one or more pairs we need to track those references and close them. - -The https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunnerMemory.java[GraphRunnerMemory] is a handy utility Function implementation that keeps track of all input Tensor parameters passed through. It is https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html[AutoClosable] and will release all tracked Tensors when closed. - -The GraphRunnerMemory implements the same function signatures as the GraphRunner (e.g. Fun, Map>) and therefore can participate in composite graph definitions: - -[source,Java] ----- -try ( memory = new GraphRunnerMemory() ) { - composed-graph = - Graph1..andThen(memory) - .andThen(Graph2).andThen(memory) - … - .andThen(GraphN).andThen(memory) - …. - -} // releases all Tensors returned by the GraphRunners ----- - -The https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/ReleaseTensorParameters.java[ReleaseTensorParameters] example illustrates how to use the GraphRunnerMemory: - -[source,Java] ----- -try ( - Tensor x = Tensor.create(input); - GraphRunnerMemory memory = new GraphRunnerMemory(); -) { - - Map> result = - this.graph1.andThen(memory) - .andThen(this.graph2).andThen(memory) - .apply(Collections.singletonMap("x", x)); - - return result.get("y2").intValue(); -} - -// At that point all intermediate Tensors used by the GraphRunners are closed. ----- - -Note: the GraphRunnerMemory has some other very useful applications that we will highlight in the next paragraph. - -=== Enrich Graph Inputs - -For particular graphs in the composite pipeline, we can add an additional input parameters that were not produced by the upstream graph. - -With the help fo the https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/Functions.java#L42[Functions#enrichWith(name, Tensor)] utility function we can inject the additional parameters in the graph composition. - -In the following snippet we enrich the graph2’s input with an additional parameter (newParam): - -[source,Java] ----- -try ( - Tensor x = Tensor.create(input); - Tensor additionalTensor = Tensor.create(colorMap); -) { - - Map> result = - graph1 - .andThen(Functions.enrichWIth("newParam", additionalTensor) - .andThen(graph2) - .apply(Collections.singletonMap("x", x)); - - return result.get("y2").intValue(); -} ----- - -The https://github.com/spring-cloud/stream-applications/blob/master/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/SemanticSegmentation.java#L150[SemanticSegmentation] implementation provides a real example how to enrich with parameters. - -=== Enrich Inputs from Saved Tensors - -We can combine the enricher approach with the https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunnerMemory.java[GraphRunnerMemory]. This allows us to enrich some downstream Graphs with tensor parameters computed in some of the upstream Graphs. The `Functions#enrichFromMemory(memory, tensorName)` utility function can enrich a graph input parameter by extracting one stored in the memory. - -For example let’s construct the following graph compositions: - ----- -graph1: y1 = x1 * 10 + -graph2: y2 = y1 * 200 + -graph3: y3 = y2 + y1 ----- - -[source,Java] ----- -try ( - Tensor x = Tensor.create(input); - GraphRunnerMemory memory = new GraphRunnerMemory(); -) { - - Map> result = - this.graph1.andThen(memory) // memorizes y1 - .andThen(graph2).andThen(memory) // memorizes y2 - .andThen(Functions.enrichFromMemory(memory, "y1")) // retrieve graph1’s output y1 and adds it as an input for the next function. - .andThen(Functions.rename( - "y1", "x31", // renames the input y1 into x31 - "y2", "x32" // renames the input y2 into x32 - )) - .andThen(graph3).andThen(memory) - .apply(Collections.singletonMap("x", x)); - - return result.get("y3").intValue(); -} ----- - -=== Load Frozen Models from Remote Archives - -The ProtoBufGraphDefinition extracts a pre-trained (frozen) Tensorflow model form a URI archive into byte array. It supports the `http(s)://`, `file://` and `classpath://` URI schemas. For this it uses the `ModelExtractor` and `CachedModelExtractor` utilities. - -Models can be extracted either from raw files or form compressed archives. When extracted from an archive the model file name can optionally be provided as a URI fragment. For example for resource: `http://myarchive.tar.gz#model.pb` -the `myarchive.tar.gz` is traversed to uncompress and extract the model.pb file as a byte array. If the file name is not provided as URI fragment then the first file in the archive with extension .pb is extracted. - -In addition, the CachedModelExtractor allows keeping a local copy (cache) of the model (protobuf) files extracted from the URI archive. - -|=== -|The https://github.com/spring-cloud/stream-applications/tree/master/functions/function/image-recognition-function[image-recognition] and https://github.com/spring-cloud/stream-applications/tree/master/functions/function/semantic-segmentation-function[semantic-segmentation] inference models implementations demonstrate the suggested programming model. - -|=== diff --git a/functions/common/tensorflow-common/pom.xml b/functions/common/tensorflow-common/pom.xml deleted file mode 100644 index a17cb06c..00000000 --- a/functions/common/tensorflow-common/pom.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - tensorflow-common - tensorflow-common - tensorflow common - - - true - 1.15.0 - 1.26.0 - 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/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AbstractGraphRunner.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AbstractGraphRunner.java deleted file mode 100644 index 2958df5e..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AbstractGraphRunner.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Function; - -import org.apache.commons.lang3.Validate; -import org.tensorflow.Session; -import org.tensorflow.Tensor; - -/** - * @author Christian Tzolov - */ -public abstract class AbstractGraphRunner implements Function>, Map>> { - - public abstract Session doGetSession(); - - /** - * Names expected in the named Tensor inside the input {@link AbstractGraphRunner#apply(Map)}. - * If the apply method will fail if the input map is missing some of the feedNames. - */ - private final List feedNames; - - /** - * Names expected {@link AbstractGraphRunner#apply(Map)} result map. - */ - private final List fetchNames; - - /** - * When set and the input takes a single feed, then the name of the input tensor is automatically mapped - * to the expected input name. E.g. no need to rename the input names explicitly. - */ - private boolean autoBinding; - - public AbstractGraphRunner(String feedName, String fetchedName) { - this(Arrays.asList(feedName), Arrays.asList(fetchedName)); - } - - public AbstractGraphRunner(List feedNames, List fetchedNames) { - this.feedNames = feedNames; - this.fetchNames = fetchedNames; - this.autoBinding = feedNames.size() == 1; - } - - @Override - public Map> apply(Map> feeds) { - - if (!this.isAutoBinding() && !feeds.keySet().containsAll(this.feedNames)) { - throw new IllegalArgumentException("Applied feeds:" + feeds.keySet() - + "\n, don't match the expected feeds contract:" + this.feedNames); - } - - if (this.isAutoBinding() && (feeds.size() != 1)) { - throw new IllegalArgumentException("Feed auto-binding expects a " + - "single feed tensors but found: " + feeds); - } - - Session.Runner runner = this.doGetSession().runner(); - - // Feed in the input named tensors - for (Map.Entry> feedEntry : feeds.entrySet()) { - String feedName = (this.isAutoBinding()) ? this.feedNames.get(0) : feedEntry.getKey(); - runner = runner.feed(feedName, feedEntry.getValue()); - } - - // Set the tensor name to be fetched after the evaluation - for (String fetchName : this.fetchNames) { - runner.fetch(fetchName); - } - - // Evaluate the input - List> outputTensors = runner.run(); - - // Extract the output tensors - Map> outTensorMap = new HashMap<>(); - for (int outputIndex = 0; outputIndex < this.fetchNames.size(); outputIndex++) { - outTensorMap.put(this.fetchNames.get(outputIndex), outputTensors.get(outputIndex)); - } - - return outTensorMap; - } - - public List getFeedNames() { - return this.feedNames; - } - - public String getSingleFeedName() { - Validate.isTrue(feedNames.size() == 1, "Assumes a single feed input"); - return this.feedNames.get(0); - } - - public List getFetchNames() { - return this.fetchNames; - } - - public String getSingleFetchName() { - Validate.isTrue(this.fetchNames.size() == 1, "Assumes a single fetch output"); - return this.fetchNames.get(0); - } - - public boolean isAutoBinding() { - return this.autoBinding; - } - - public AbstractGraphRunner disableAutoBinding() { - this.autoBinding = false; - return this; - } - - public AbstractGraphRunner enableAutoBinding() { - if (this.getFeedNames().size() != 1) { - throw new IllegalArgumentException("Auto-binding is permitted for Graphs with single input feed, but " + - " found: " + this.getFeedNames()); - } - this.autoBinding = true; - return this; - } - - @Override - public String toString() { - return String.format("(%s) -> (%s)", String.join(",", this.feedNames), - String.join(",", this.fetchNames)); - } -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AutoCloseableSession.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AutoCloseableSession.java deleted file mode 100644 index 29ae1ab5..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/AutoCloseableSession.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow; - -import org.tensorflow.Graph; -import org.tensorflow.Session; -import org.tensorflow.op.Ops; - -/** - * @author Christian Tzolov - */ -class AutoCloseableSession implements AutoCloseable { - - private Session session; - - /** - * Note: don't call this method inside the constructor. - */ - protected void init() { - Graph graph = this.doCreateGraph(); - this.doGraphDefinition(Ops.create(graph)); - this.session = new Session(graph); - } - - protected Graph doCreateGraph() { - return new Graph(); - } - - protected void doGraphDefinition(Ops tf) { - } - - protected Session getSession() { - if (this.session == null) { - init(); - } - return this.session; - } - - @Override - public void close() { - this.doClose(); - if (this.session != null) { - this.session.close(); - } - } - - protected void doClose() { - } -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/Functions.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/Functions.java deleted file mode 100644 index 0d2a2264..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/Functions.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -import org.tensorflow.Tensor; - -/** - * @author Christian Tzolov - */ -public final class Functions { - - private Functions() { - - } - - /** - * On every function call enrich the input tensorMap with an addition (tensorName, tensor) pair. - * - * @param tensorName tensor key to use in the map - * @param tensor new Tensor to add to the map - * @return Returns a copy of the input tensorMap enriched with the provided (tensorName, tensor). - */ - public static Function>, Map>> enrichWith( - String tensorName, Tensor tensor) { - return tensorMap -> enrich(tensorMap, tensorName, tensor); - } - - /** - * On function call retrieves a named tensor from the provided {@link GraphRunnerMemory} and uses it to enrich - * the input tensorMap. - * @param memory GraphRunnerMemory to retrieve the tensor from - * @param tensorName name of the tensor in GraphRunnerMemory to retrieve. - * @return Returns copy of the input tensorMap enriched with the tensor from the memory. - */ - public static Function>, Map>> enrichFromMemory( - GraphRunnerMemory memory, String tensorName) { - return tensorMap -> enrich(tensorMap, tensorName, memory.getTensorMap().get(tensorName)); - } - - private static Map> enrich(Map> inputTensorMap, String key, Tensor value) { - Map> newMap = new HashMap<>(inputTensorMap); - newMap.put(key, value); - return newMap; - } - - /** - * Renames the tensor names in the incoming tensorMap with the providing mappings. - * - * @param mapping Pairs of From and To names. E.g. fromName1, toName1, fromName2, toName2, ... fromNameN, toNameN - * Must be an even number. - * @return Map that renames the input tensorMap entries according to the mapping provided - */ - public static Function>, Map>> rename(String... mapping) { - - Map mappingMap = new HashMap<>(); - for (int i = 0; i < mapping.length; i = i + 2) { - mappingMap.put(mapping[i], mapping[i + 1]); - } - - return tensorMap -> tensorMap.entrySet().stream() - .filter(e -> mappingMap.containsKey(e.getKey())) - .collect(Collectors.toMap( - kv -> mappingMap.get(kv.getKey()), - kv -> kv.getValue() - )); - } -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphDefinition.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphDefinition.java deleted file mode 100644 index 1549df2f..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphDefinition.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow; - -import org.tensorflow.op.Ops; - -/** - * @author Christian Tzolov - */ -@FunctionalInterface -public interface GraphDefinition { - void defineGraph(Ops tf); -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunner.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunner.java deleted file mode 100644 index e2df225d..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunner.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow; - -import java.util.Arrays; -import java.util.List; - -import org.apache.commons.lang3.Validate; -import org.tensorflow.SavedModelBundle; -import org.tensorflow.Session; -import org.tensorflow.op.Ops; - - -/** - * @author Christian Tzolov - */ -public class GraphRunner extends AbstractGraphRunner implements AutoCloseable { - - private SavedModelBundle savedModelBundle; - private AutoCloseableSession autoCloseableSession; - - public GraphRunner(List feedNames, String fetchedName) { - super(feedNames, Arrays.asList(fetchedName)); - } - - public GraphRunner(String feedName, List fetchedNames) { - super(Arrays.asList(feedName), fetchedNames); - } - - public GraphRunner(String feedName, String fetchedName) { - super(feedName, fetchedName); - } - - public GraphRunner(List feedNames, List fetchedNames) { - super(feedNames, fetchedNames); - } - - - @Override - public Session doGetSession() { - - if (this.autoCloseableSession != null && this.savedModelBundle != null) { - throw new IllegalStateException("Either SavedModel or GraphDefinition can be set! But both are set!"); - } - - if (this.autoCloseableSession != null) { - return this.autoCloseableSession.getSession(); - } - - if (this.savedModelBundle != null) { - return this.savedModelBundle.session(); - } - - throw new IllegalStateException("Either SavedModel or GraphDefinition can be set! None found"); - } - - public GraphRunner withGraphDefinition(GraphDefinition graphDefinition) { - Validate.isTrue(this.savedModelBundle == null, "Either SavedModel or GraphDefinition can be set! " + - "SavedModelBundle is found: " + this.savedModelBundle); - - this.autoCloseableSession = new AutoCloseableSession() { - @Override - protected void doGraphDefinition(Ops tf) { - graphDefinition.defineGraph(tf); - } - }; - - return this; - } - - public GraphRunner withSavedModel(String savedModelDir, String... tags) { - Validate.isTrue(this.autoCloseableSession == null, "Either SavedModel or GraphDefinition can be set! " + - "AutoCloseableSession is found: " + this.autoCloseableSession); - this.savedModelBundle = SavedModelBundle.load(savedModelDir, tags); - return this; - } - - @Override - public String toString() { - return String.format("(%s) -> (%s)", String.join(",", this.getFeedNames()), - String.join(",", this.getFetchNames())); - } - - @Override - public void close() { - if (this.savedModelBundle != null) { - this.savedModelBundle.close(); - } - if (this.autoCloseableSession != null) { - this.autoCloseableSession.close(); - } - } -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunnerMemory.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunnerMemory.java deleted file mode 100644 index 41a5acf8..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/GraphRunnerMemory.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow; - -import java.util.Map; -import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Function; - -import org.pcollections.HashTreePMap; -import org.pcollections.PMap; -import org.tensorflow.Tensor; - -import org.springframework.cloud.fn.common.tensorflow.util.AutoCloseables; - - -/** - * Keeps all tensorMap input parameters. - */ -public class GraphRunnerMemory implements Function>, Map>>, AutoCloseable { - - private AtomicReference>> tensorMap = new AtomicReference<>(HashTreePMap.empty()); - - public Map> getTensorMap() { - return tensorMap.get(); - } - - @Override - public Map> apply(Map> tensorMap) { - this.tensorMap.getAndUpdate(pmap -> pmap.plusAll(tensorMap)); - return tensorMap; - } - - @Override - public void close() { - AutoCloseables.all(this.tensorMap.get()); - //this.tensorMap.get().clear(); - } -} - diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/ProtoBufGraphDefinition.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/ProtoBufGraphDefinition.java deleted file mode 100644 index e79be4b1..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/ProtoBufGraphDefinition.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow; - -import java.util.Iterator; - -import org.tensorflow.Graph; -import org.tensorflow.Operation; -import org.tensorflow.op.Ops; - -import org.springframework.cloud.fn.common.tensorflow.util.CachedModelExtractor; -import org.springframework.cloud.fn.common.tensorflow.util.ModelExtractor; -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.Resource; - -/** - * @author Christian Tzolov - */ -public class ProtoBufGraphDefinition implements GraphDefinition { - - /** - * Location of the pre-trained model archive. - */ - private final Resource modelLocation; - - /** - * If set true the pre-trained model is cached on the local file system. - */ - private final boolean cacheModel; - - public ProtoBufGraphDefinition(String modelUri, boolean cacheModel) { - this(new DefaultResourceLoader().getResource(modelUri), cacheModel); - } - - public ProtoBufGraphDefinition(Resource modelLocation, boolean cacheModel) { - this.modelLocation = modelLocation; - this.cacheModel = cacheModel; - } - - @Override - public void defineGraph(Ops tf) { - // Extract the pre-trained model as byte array. - byte[] model = this.cacheModel ? new CachedModelExtractor().getModel(this.modelLocation) - : new ModelExtractor().getModel(this.modelLocation); - // Import the pre-trained model - ((Graph) tf.scope().env()).importGraphDef(model); - //try { - // ((Graph) tf.scope().env()).importGraphDef(GraphDef.parseFrom(model)); - //} - //catch (InvalidProtocolBufferException e) { - // throw new RuntimeException(e); - //} - - Graph graph = ((Graph) tf.scope().env()); - Iterator ops = graph.operations(); - while (ops.hasNext()) { - System.out.println(ops.next().name()); - } - } -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/GraphicsUtils.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/GraphicsUtils.java deleted file mode 100644 index d1e7a64f..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/GraphicsUtils.java +++ /dev/null @@ -1,639 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow.deprecated; - -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.RenderingHints; -import java.awt.Stroke; -import java.awt.geom.Rectangle2D; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferByte; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; - -import javax.imageio.ImageIO; - -import org.apache.commons.io.IOUtils; - -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.Resource; - - -/** - * Utility class used to provide some handy image manipulation functions. Among others it can provide contrast colors - * for image annotation labels and bounding boxes as well as functionality to draw later. - * - * @author Christian Tzolov - */ -public final class GraphicsUtils { - - private GraphicsUtils() { - } - - /** - * Default DEFAULT_FONT used in image label annotation. - */ - private static final Font DEFAULT_FONT = new Font("arial", Font.PLAIN, 12); - - /** - * Bounding box default line thickness. - */ - private static final float LINE_THICKNESS = 2; - - /** - * Color used when no multi-color is used. - */ - private static final Color AGNOSTIC_COLOR = new Color(167, 252, 0); - - /** - * in labels text offset. - */ - public static final int TITLE_OFFSET = 3; - - - /** - * Predefined contrasting colors used when drawing multiple objects in the same image. - */ - public static final Color aliceblue = new Color(240, 248, 255); /* color */ - /** Color. **/ - public static final Color antiquewhite = new Color(250, 235, 215); - /** Color. **/ - public static final Color aqua = new Color(0, 255, 255); // color - /** Color. **/ - public static final Color aquamarine = new Color(127, 255, 212); // color - /** Color. **/ - public static final Color azure = new Color(240, 255, 255); // color - /** Color. **/ - public static final Color beige = new Color(245, 245, 220); // color - /** Color. **/ - public static final Color bisque = new Color(255, 228, 196); - /** Color. **/ - public static final Color black = new Color(0, 0, 0); - /** Color. **/ - public static final Color blanchedalmond = new Color(255, 255, 205); - /** Color. **/ - public static final Color blue = new Color(0, 0, 255); - /** Color. **/ - public static final Color blueviolet = new Color(138, 43, 226); - /** Color. **/ - public static final Color brown = new Color(165, 42, 42); - /** Color. **/ - public static final Color burlywood = new Color(222, 184, 135); - /** Color. **/ - public static final Color cadetblue = new Color(95, 158, 160); - /** Color. **/ - public static final Color chartreuse = new Color(127, 255, 0); - /** Color. **/ - public static final Color chocolate = new Color(210, 105, 30); - /** Color. **/ - public static final Color coral = new Color(255, 127, 80); - /** Color. **/ - public static final Color cornflowerblue = new Color(100, 149, 237); - /** Color. **/ - public static final Color cornsilk = new Color(255, 248, 220); - /** Color. **/ - public static final Color crimson = new Color(220, 20, 60); - /** Color. **/ - public static final Color cyan = new Color(0, 255, 255); - /** Color. **/ - public static final Color darkblue = new Color(0, 0, 139); - /** Color. **/ - public static final Color darkcyan = new Color(0, 139, 139); - /** Color. **/ - public static final Color darkgoldenrod = new Color(184, 134, 11); - /** Color. **/ - public static final Color darkgray = new Color(169, 169, 169); - /** Color. **/ - public static final Color darkgreen = new Color(0, 100, 0); - /** Color. **/ - public static final Color darkkhaki = new Color(189, 183, 107); - /** Color. **/ - public static final Color darkmagenta = new Color(139, 0, 139); - /** Color. **/ - public static final Color darkolivegreen = new Color(85, 107, 47); - /** Color. **/ - public static final Color darkorange = new Color(255, 140, 0); - /** Color. **/ - public static final Color darkorchid = new Color(153, 50, 204); - /** Color. **/ - public static final Color darkred = new Color(139, 0, 0); - /** Color. **/ - public static final Color darksalmon = new Color(233, 150, 122); - /** Color. **/ - public static final Color darkseagreen = new Color(143, 188, 143); - /** Color. **/ - public static final Color darkslateblue = new Color(72, 61, 139); - /** Color. **/ - public static final Color darkslategray = new Color(47, 79, 79); - /** Color. **/ - public static final Color darkturquoise = new Color(0, 206, 209); - /** Color. **/ - public static final Color darkviolet = new Color(148, 0, 211); - /** Color. **/ - public static final Color deeppink = new Color(255, 20, 147); - /** Color. **/ - public static final Color deepskyblue = new Color(0, 191, 255); - /** Color. **/ - public static final Color dimgray = new Color(105, 105, 105); - /** Color. **/ - public static final Color dodgerblue = new Color(30, 144, 255); - /** Color. **/ - public static final Color firebrick = new Color(178, 34, 34); - /** Color. **/ - public static final Color floralwhite = new Color(255, 250, 240); - /** Color. **/ - public static final Color forestgreen = new Color(34, 139, 34); - /** Color. **/ - public static final Color fuchsia = new Color(255, 0, 255); - /** Color. **/ - public static final Color gainsboro = new Color(220, 220, 220); - /** Color. **/ - public static final Color ghostwhite = new Color(248, 248, 255); - /** Color. **/ - public static final Color gold = new Color(255, 215, 0); - /** Color. **/ - public static final Color goldenrod = new Color(218, 165, 32); - /** Color. **/ - public static final Color gray = new Color(128, 128, 128); - /** Color. **/ - public static final Color green = new Color(0, 128, 0); - /** Color. **/ - public static final Color greenyellow = new Color(173, 255, 47); - /** Color. **/ - public static final Color honeydew = new Color(240, 255, 240); - /** Color. **/ - public static final Color hotpink = new Color(255, 105, 180); - /** Color. **/ - public static final Color indianred = new Color(205, 92, 92); - /** Color. **/ - public static final Color indigo = new Color(75, 0, 130); - /** Color. **/ - public static final Color ivory = new Color(255, 240, 240); - /** Color. **/ - public static final Color khaki = new Color(240, 230, 140); - /** Color. **/ - public static final Color lavender = new Color(230, 230, 250); - /** Color. **/ - public static final Color lavenderblush = new Color(255, 240, 245); - /** Color. **/ - public static final Color lawngreen = new Color(124, 252, 0); - /** Color. **/ - public static final Color lemonchiffon = new Color(255, 250, 205); - /** Color. **/ - public static final Color lightblue = new Color(173, 216, 230); - /** Color. **/ - public static final Color lightcoral = new Color(240, 128, 128); - /** Color. **/ - public static final Color lightcyan = new Color(224, 255, 255); - /** Color. **/ - public static final Color lightgoldenrodyellow = new Color(250, 250, 210); - /** Color. **/ - public static final Color lightgreen = new Color(144, 238, 144); - /** Color. **/ - public static final Color lightgrey = new Color(211, 211, 211); - /** Color. **/ - public static final Color lightpink = new Color(255, 182, 193); - /** Color. **/ - public static final Color lightsalmon = new Color(255, 160, 122); - /** Color. **/ - public static final Color lightseagreen = new Color(32, 178, 170); - /** Color. **/ - public static final Color lightskyblue = new Color(135, 206, 250); - /** Color. **/ - public static final Color lightslategray = new Color(119, 136, 153); - /** Color. **/ - public static final Color lightsteelblue = new Color(176, 196, 222); - /** Color. **/ - public static final Color lightyellow = new Color(255, 255, 224); - /** Color. **/ - public static final Color lime = new Color(0, 255, 0); - /** Color. **/ - public static final Color limegreen = new Color(50, 205, 50); - /** Color. **/ - public static final Color linen = new Color(250, 240, 230); - /** Color. **/ - public static final Color magenta = new Color(255, 0, 255); - /** Color. **/ - public static final Color maroon = new Color(128, 0, 0); - /** Color. **/ - public static final Color mediumaquamarine = new Color(102, 205, 170); - /** Color. **/ - public static final Color mediumblue = new Color(0, 0, 205); - /** Color. **/ - public static final Color mediumorchid = new Color(186, 85, 211); - /** Color. **/ - public static final Color mediumpurple = new Color(147, 112, 219); - /** Color. **/ - public static final Color mediumseagreen = new Color(60, 179, 113); - /** Color. **/ - public static final Color mediumslateblue = new Color(123, 104, 238); - /** Color. **/ - public static final Color mediumspringgreen = new Color(0, 250, 154); - /** Color. **/ - public static final Color mediumturquoise = new Color(72, 209, 204); - /** Color. **/ - public static final Color mediumvioletred = new Color(199, 21, 133); - /** Color. **/ - public static final Color midnightblue = new Color(25, 25, 112); - /** Color. **/ - public static final Color mintcream = new Color(245, 255, 250); - /** Color. **/ - public static final Color mistyrose = new Color(255, 228, 225); - /** Color. **/ - public static final Color mocassin = new Color(255, 228, 181); - /** Color. **/ - public static final Color navajowhite = new Color(255, 222, 173); - /** Color. **/ - public static final Color navy = new Color(0, 0, 128); - /** Color. **/ - public static final Color oldlace = new Color(253, 245, 230); - /** Color. **/ - public static final Color olive = new Color(128, 128, 0); - /** Color. **/ - public static final Color olivedrab = new Color(107, 142, 35); - /** Color. **/ - public static final Color orange = new Color(255, 165, 0); - /** Color. **/ - public static final Color orangered = new Color(255, 69, 0); - /** Color. **/ - public static final Color orchid = new Color(218, 112, 214); - /** Color. **/ - public static final Color palegoldenrod = new Color(238, 232, 170); - /** Color. **/ - public static final Color palegreen = new Color(152, 251, 152); - /** Color. **/ - public static final Color paleturquoise = new Color(175, 238, 238); - /** Color. **/ - public static final Color palevioletred = new Color(219, 112, 147); - /** Color. **/ - public static final Color papayawhip = new Color(255, 239, 213); - /** Color. **/ - public static final Color peachpuff = new Color(255, 218, 185); - /** Color. **/ - public static final Color peru = new Color(205, 133, 63); - /** Color. **/ - public static final Color pink = new Color(255, 192, 203); - /** Color. **/ - public static final Color plum = new Color(221, 160, 221); - /** Color. **/ - public static final Color powderblue = new Color(176, 224, 230); - /** Color. **/ - public static final Color purple = new Color(128, 0, 128); - /** Color. **/ - public static final Color red = new Color(255, 0, 0); - /** Color. **/ - public static final Color rosybrown = new Color(188, 143, 143); - /** Color. **/ - public static final Color royalblue = new Color(65, 105, 225); - /** Color. **/ - public static final Color saddlebrown = new Color(139, 69, 19); - /** Color. **/ - public static final Color salmon = new Color(250, 128, 114); - /** Color. **/ - public static final Color sandybrown = new Color(244, 164, 96); - /** Color. **/ - public static final Color seagreen = new Color(46, 139, 87); - /** Color. **/ - public static final Color seashell = new Color(255, 245, 238); - /** Color. **/ - public static final Color sienna = new Color(160, 82, 45); - /** Color. **/ - public static final Color silver = new Color(192, 192, 192); - /** Color. **/ - public static final Color skyblue = new Color(135, 206, 235); - /** Color. **/ - public static final Color slateblue = new Color(106, 90, 205); - /** Color. **/ - public static final Color slategray = new Color(112, 128, 144); - /** Color. **/ - public static final Color snow = new Color(255, 250, 250); - /** Color. **/ - public static final Color springgreen = new Color(0, 255, 127); - /** Color. **/ - public static final Color steelblue = new Color(70, 138, 180); - /** Color. **/ - public static final Color tan = new Color(210, 180, 140); - /** Color. **/ - public static final Color teal = new Color(0, 128, 128); - /** Color. **/ - public static final Color thistle = new Color(216, 191, 216); - /** Color. **/ - public static final Color tomato = new Color(253, 99, 71); - /** Color. **/ - public static final Color turquoise = new Color(64, 224, 208); - /** Color. **/ - public static final Color violet = new Color(238, 130, 238); - /** Color. **/ - public static final Color wheat = new Color(245, 222, 179); - /** Color. **/ - public static final Color white = new Color(255, 255, 255); - /** Color. **/ - public static final Color whitesmoke = new Color(245, 245, 245); - /** Color. **/ - public static final Color yellow = new Color(255, 255, 0); - /** Color. **/ - public static final Color yellowgreen = new Color(154, 205, 50); - - /** - * Limbs color list. - */ - public static final Color[] LIMBS_COLORS = new Color[] { - new Color(153, 0, 0), // 0 (1 -> 2) - new Color(153, 51, 0), // 1 (1 -> 5) - new Color(153, 102, 0), // 2 (2 -> 3) - new Color(153, 153, 0), // 3 (3 -> 4) - new Color(102, 153, 0), // 4 (5 -> 6) - new Color(51, 153, 0), // 5 (6 -> 7) - new Color(0, 153, 0), // 6 (1 -> 8) - new Color(0, 153, 51), // 7 (8 -> 9) - new Color(0, 153, 102), // 8 (9 -> 10) - new Color(0, 153, 153), // 9 (1 -> 11) - new Color(0, 102, 153), // 10 (11 -> 12) - new Color(0, 51, 153), // 11 (12 -> 13) - new Color(0, 0, 153), // 12 (1 -> 0) - new Color(51, 0, 153), // 13 (0 -> 14) - new Color(102, 0, 153), // 14 (14 -> 16) - new Color(153, 0, 153), // 15 (0 -> 15) - new Color(153, 0, 102), // 16 (15 -> 17) - - new Color(153, 0, 51), // 17 (2 -> 16) - new Color(153, 153, 153), // 18 (5 -> 17) - }; - - /** - * Constants lists. - */ - private static final Color[] CLASS_COLOR = new Color[] { - aliceblue, chartreuse, aqua, aquamarine, azure, beige, bisque, - blanchedalmond, blueviolet, burlywood, cadetblue, antiquewhite, - chocolate, coral, cornflowerblue, cornsilk, crimson, cyan, - darkcyan, darkgoldenrod, darkgray, darkkhaki, darkorange, - darkorchid, darksalmon, darkseagreen, darkturquoise, darkviolet, - deeppink, deepskyblue, dodgerblue, firebrick, floralwhite, - forestgreen, fuchsia, gainsboro, ghostwhite, gold, goldenrod, - salmon, tan, honeydew, hotpink, indianred, ivory, khaki, - lavender, lavenderblush, lawngreen, lemonchiffon, lightblue, - lightcoral, lightcyan, lightgoldenrodyellow, lightgreen, lightgrey, - lightgreen, lightpink, lightsalmon, lightseagreen, lightskyblue, - lightslategray, lightslategray, lightsteelblue, lightyellow, lime, - limegreen, linen, magenta, mediumaquamarine, mediumorchid, - mediumpurple, mediumseagreen, mediumslateblue, mediumspringgreen, - mediumturquoise, mediumvioletred, mintcream, mistyrose, mocassin, - navajowhite, oldlace, olive, olivedrab, orange, orangered, - orchid, palegoldenrod, palegreen, paleturquoise, palevioletred, - papayawhip, peachpuff, peru, pink, plum, powderblue, purple, - red, rosybrown, royalblue, saddlebrown, green, sandybrown, - seagreen, seashell, sienna, silver, skyblue, slateblue, - slategray, slategray, snow, springgreen, steelblue, greenyellow, - teal, thistle, tomato, turquoise, violet, wheat, white, - whitesmoke, yellow, yellowgreen - }; - - /** - * List of constants. - */ - public static final Color[] CLASS_COLOR2 = new Color[] { - yellow, yellowgreen, turquoise, springgreen, skyblue, slateblue, red, violet, olivedrab, royalblue, - darkorange, mediumblue, deeppink, chartreuse, orchid, palegreen, aqua, orange, navy - }; - - /** - * Return different color for each Id. It rotates when the ID exceeds the number of predefined colors. - * @param id the unique id to pick color for. - * @return a distinct color computed from the input #id - */ - public static Color getClassColor(int id) { - return CLASS_COLOR[id % CLASS_COLOR.length]; - } - - /** - * Augments the input image fromMemory a labeled rectangle (e.g. bounding box) fromMemory coordinates: (x1, y1, x2, y2). - * - * @param image Input image to be augmented fromMemory labeled rectangle. - * @param cid Unique id used to select the color of the rectangle. Used only if the colorAgnostic is set to false. - * @param title rectangle title - * @param x1 top left corner for the bounding box - * @param y1 top left corner for the bounding box - * @param x2 bottom right corner for the bounding box - * @param y2 bottom right corner for the bounding box - * @param colorAgnostic If set to false the cid is used to select the bounding box color. Uses the - * AGNOSTIC_COLOR otherwise. - */ - public static void drawBoundingBox(BufferedImage image, int cid, String title, int x1, int y1, int x2, int y2, - boolean colorAgnostic) { - - Graphics2D g = image.createGraphics(); - g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - - Color labelColor = colorAgnostic ? AGNOSTIC_COLOR : GraphicsUtils.getClassColor(cid); - g.setColor(labelColor); - - g.setFont(DEFAULT_FONT); - FontMetrics fontMetrics = g.getFontMetrics(); - - Stroke oldStroke = g.getStroke(); - g.setStroke(new BasicStroke(LINE_THICKNESS)); - g.drawRect(x1, y1, (x2 - x1), (y2 - y1)); - g.setStroke(oldStroke); - - Rectangle2D rect = fontMetrics.getStringBounds(title, g); - - g.setColor(labelColor); - g.fillRect(x1, y1 - fontMetrics.getAscent(), - (int) rect.getWidth() + 2 * TITLE_OFFSET, (int) rect.getHeight()); - - g.setColor(getTextColor(labelColor)); - g.drawString(title, x1 + TITLE_OFFSET, y1); - } - - /** - * Depends on the darkness of the background, pick a dark or light DEFAULT_FONT color. - * @param backGroundColor background color within which the text is drawn - * @return a text color, that contrast to the given background color. - */ - private static Color getTextColor(Color backGroundColor) { - double y = (299 * backGroundColor.getRed() + 587 * backGroundColor.getGreen() + - 114 * backGroundColor.getBlue()) / 1000; - return y >= 128 ? Color.black : Color.white; - } - - public static BufferedImage createMaskImage(float[][] maskPixels, - int scaledWidth, int scaledHeight, Color maskColor) { - - int maskWidth = maskPixels.length; - int maskHeight = maskPixels[0].length; - int[] maskArray = new int[maskWidth * maskHeight]; - int k = 0; - for (int i = 0; i < maskHeight; i++) { - for (int j = 0; j < maskWidth; j++) { - maskArray[k++] = grayScaleToARGB(maskPixels[i][j], maskColor); - } - } - - // Turn the pixel array into image; - BufferedImage maskImage = new BufferedImage(maskWidth, maskHeight, BufferedImage.TYPE_INT_ARGB); - maskImage.setRGB(0, 0, maskWidth, maskHeight, maskArray, 0, maskWidth); - - // Stretch the image to fit the target box width and height! - return toBufferedImage(maskImage.getScaledInstance(scaledWidth, scaledHeight, Image.SCALE_DEFAULT)); - } - - /** - * Converts an gray scale (e.g. value between 0 to 1) into ARGB. - * - * @param grayScale - value between 0 and 1 - * @param maskColor - desired mask color - * @return Returns a ARGB color based on the grayscale and the mask colors - */ - private static int grayScaleToARGB(float grayScale, Color maskColor) { - if (maskColor != null) { - float r = col(maskColor.getRed(), grayScale); - float g = col(maskColor.getGreen(), grayScale); - float b = col(maskColor.getBlue(), grayScale); - float t = grayScale * 0.7f; - return new Color(r, g, b, t).getRGB(); - } - - return new Color(grayScale, grayScale, grayScale, grayScale).getRGB(); - } - - private static float col(int channelColor, float grayScale) { - //return ((float) channelColor / 255) * grayScale; - return ((float) channelColor / 255); - } - - public static BufferedImage toBufferedImage(Image img) { - //if (img instanceof BufferedImage) { - // return (BufferedImage) img; - //} - - // Create a buffered image fromMemory transparency - BufferedImage bimage = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); - - // Draw the image on to the buffered image - Graphics2D bGr = bimage.createGraphics(); - bGr.drawImage(img, 0, 0, null); - bGr.dispose(); - - // Return the buffered image - return bimage; - } - - public static BufferedImage overlayImages(BufferedImage bgImage, BufferedImage fgImage, int fgX, int fgY) { - // Foreground image width and height cannot be greater than background image width and height. - if (fgImage.getHeight() > bgImage.getHeight() - || fgImage.getWidth() > fgImage.getWidth()) { - throw new IllegalArgumentException( - "Foreground Image Is Bigger In One or Both Dimensions" - + "nCannot proceed fromMemory overlay." - + "nn Please use smaller Image for foreground"); - } - - // Create a Graphics from the background image - Graphics2D g = bgImage.createGraphics(); - - //Set Antialias Rendering - g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - - //Draw background image at location (0,0) - g.drawImage(bgImage, 0, 0, null); - - // Draw foreground image at location (fgX,fgy) - g.drawImage(fgImage, fgX, fgY, null); - - g.dispose(); - return bgImage; - } - - /** - * Convert {@link BufferedImage} to byte array. - * - * @param image the image to be converted - * @param format the output image format - * @return New array of bytes - */ - public static byte[] toImageByteArray(BufferedImage image, String format) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - try { - ImageIO.write(image, format, baos); - byte[] bytes = baos.toByteArray(); - return bytes; - } - catch (IOException e) { - throw new IllegalStateException(e); - } - finally { - try { - baos.close(); - } - catch (IOException e) { - throw new IllegalStateException(e); - } - } - } - - /** - * - * @param bufferedImage buffer to be converted in to raw array - * @return flat byte array representing the buffered image - */ - public static byte[] toRawByteArray(BufferedImage bufferedImage) { - return ((DataBufferByte) bufferedImage.getRaster().getDataBuffer()).getData(); - } - - /** - * BufferedImage.TYPE_3BYTE_BGR, BufferedImage.TYPE_3BYTE_BGR. - * @param image image to be converted into buffer - * @param imageType desired type - * @return BufferedImage - */ - public static BufferedImage toBufferedImageType(BufferedImage image, int imageType) { - if (image.getType() == imageType) { - return image; - } - BufferedImage outputImage = new BufferedImage(image.getWidth(), image.getHeight(), imageType); - outputImage.getGraphics().drawImage(image, 0, 0, null); - return outputImage; - } - - public static byte[] toImageToBytes(String imageUri) throws IOException { - try (InputStream is = new DefaultResourceLoader().getResource(imageUri).getInputStream()) { - return IOUtils.toByteArray(is); - } - } - - /** - * Loads a resource as byte array. Supports http:, file: and classpath: URI schemas - * @param resourceUri resource URI - * @return Returns resources referred by the resourceUri as a byte array - * @throws IOException failure due to missing resource or invalid URI - */ - public static byte[] loadAsByteArray(String resourceUri) throws IOException { - Resource expectedPoseResponse = new DefaultResourceLoader().getResource(resourceUri); - try (InputStream is = expectedPoseResponse.getInputStream()) { - return IOUtils.toByteArray(is); - } - } - -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/JsonMapperFunction.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/JsonMapperFunction.java deleted file mode 100644 index 62463bf1..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/JsonMapperFunction.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow.deprecated; - -import java.util.function.Function; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * Maps domain objects into JSON strings. - * - * @author Christian Tzolov - */ -public class JsonMapperFunction implements Function { - - private static final Log logger = LogFactory.getLog(JsonMapperFunction.class); - - @Override - public String apply(Object o) { - try { - return new ObjectMapper().writeValueAsString(o); - } - catch (JsonProcessingException e) { - logger.error("Failed to encode the object detections into JSON message", e); - } - return "ERROR"; - - } -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/TensorFlowService.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/TensorFlowService.java deleted file mode 100644 index fc750bfd..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/TensorFlowService.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - - -package org.springframework.cloud.fn.common.tensorflow.deprecated; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.function.Function; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.tensorflow.Graph; -import org.tensorflow.Session; -import org.tensorflow.Session.Runner; -import org.tensorflow.Tensor; - -import org.springframework.cloud.fn.common.tensorflow.util.CachedModelExtractor; -import org.springframework.cloud.fn.common.tensorflow.util.ModelExtractor; -import org.springframework.core.io.Resource; - -/** - * @author Christian Tzolov - */ -public class TensorFlowService implements Function>, Map>>, AutoCloseable { - - private static final Log logger = LogFactory.getLog(TensorFlowService.class); - - private final Session session; - private final List fetchedNames; - private final boolean autoCloseFeedTensors; - - public TensorFlowService(Resource modelLocation, List fetchedNames) { - this(modelLocation, fetchedNames, false); - } - - public TensorFlowService(Resource modelLocation, List fetchedNames, boolean cacheModel) { - this(modelLocation, fetchedNames, cacheModel, false); - } - - public TensorFlowService(Resource modelLocation, List fetchedNames, boolean cacheModel, - boolean autoCloseFeedTensors) { - - if (logger.isInfoEnabled()) { - logger.info("Loading TensorFlow graph model: " + modelLocation); - } - - this.autoCloseFeedTensors = autoCloseFeedTensors; - this.fetchedNames = fetchedNames; - Graph graph = new Graph(); - byte[] model = cacheModel ? new CachedModelExtractor().getModel(modelLocation) : new ModelExtractor().getModel(modelLocation); - graph.importGraphDef(model); - this.session = new Session(graph); - } - - /** - * Evaluates a pre-trained tensorflow model (encoded as {@link Graph}). Use the feeds parameter to feed in the - * model input data and fetch-names to specify the output tensors. - * - * @param feeds Named map of input tensors. - * @return Returns the computed output tensors. The names of the output tensors is defined by the fetchedNames - * argument - */ - @Override - public Map> apply(Map> feeds) { - - Runner runner = this.session.runner(); - - // Keep tensor references to release them in the finally block - Tensor[] feedTensors = new Tensor[feeds.size()]; - try { - // Feed in the input named tensors - int inputIndex = 0; - for (Entry> e : feeds.entrySet()) { - String feedName = e.getKey(); - feedTensors[inputIndex] = e.getValue(); - runner = runner.feed(feedName, feedTensors[inputIndex]); - inputIndex++; - } - - // Set the tensor name to be fetched after the evaluation - for (String fetchName : this.fetchedNames) { - runner.fetch(fetchName); - } - - // Evaluate the input - List> outputTensors = runner.run(); - - // Extract the output tensors - Map> outTensorMap = new HashMap<>(); - for (int outputIndex = 0; outputIndex < this.fetchedNames.size(); outputIndex++) { - outTensorMap.put(this.fetchedNames.get(outputIndex), outputTensors.get(outputIndex)); - } - return outTensorMap; - } - finally { - if (this.autoCloseFeedTensors) { - // Release all feed tensors - for (Tensor tensor : feedTensors) { - if (tensor != null) { - tensor.close(); - } - } - } - } - - } - - @Override - public void close() { - logger.info("Close TensorFlow Session!"); - if (this.session != null) { - this.session.close(); - } - } -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/AutoCloseables.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/AutoCloseables.java deleted file mode 100644 index 68b4ce84..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/AutoCloseables.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow.util; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Map; -import java.util.Objects; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Utilities for AutoCloseable classes. - * Based on the Apache Drill AutoCloseables implementation. - */ -public final class AutoCloseables { - - private AutoCloseables() { - - } - - private static final Logger LOGGER = LoggerFactory.getLogger(AutoCloseables.class); - - public static AutoCloseable all(final Collection autoCloseables) { - return () -> close(autoCloseables); - } - - public static AutoCloseable all(final Map... autoCloseables) { - return () -> close(autoCloseables); - } - - /** - * Closes all autoCloseables if not null and suppresses exceptions by adding them to t. - * @param t the throwable to add suppressed exception to - * @param autoCloseables the closeables to close - */ - public static void close(Throwable t, AutoCloseable... autoCloseables) { - close(t, Arrays.asList(autoCloseables)); - } - - /** - * Closes all autoCloseables if not null and suppresses exceptions by adding them to t. - * @param t the throwable to add suppressed exception to - * @param autoCloseables the closeables to close - */ - public static void close(Throwable t, Collection autoCloseables) { - try { - close(autoCloseables); - } - catch (Exception e) { - t.addSuppressed(e); - } - } - - /** - * Closes all autoCloseables if not null and suppresses subsequent exceptions if more than one. - * @param autoCloseables the closeables to close - */ - public static void close(AutoCloseable... autoCloseables) throws Exception { - close(Arrays.asList(autoCloseables)); - } - - /** - * Closes all autoCloseables if not null and suppresses subsequent exceptions if more than one. - * @param autoCloseables the closeables to close - */ - public static void close(Iterable autoCloseables) throws Exception { - Exception topLevelException = null; - for (AutoCloseable closeable : autoCloseables) { - try { - if (closeable != null) { - closeable.close(); - } - } - catch (Exception e) { - if (topLevelException == null) { - topLevelException = e; - } - else { - topLevelException.addSuppressed(e); - } - } - } - if (topLevelException != null) { - throw topLevelException; - } - } - - /** - * Closes all autoCloseables entry values if not null and suppresses subsequent exceptions if more than one. - * @param closableMaps the closeables to close - */ - public static void close(Map... closableMaps) throws Exception { - Exception topLevelException = null; - for (Map closableMap : closableMaps) { - - for (Object key : closableMap.keySet()) { - AutoCloseable closeable = closableMap.get(key); - try { - if (closeable != null) { - closeable.close(); - } - } - catch (Exception e) { - if (topLevelException == null) { - topLevelException = e; - } - else { - topLevelException.addSuppressed(e); - } - } - } - - closableMap.keySet(); - } - if (topLevelException != null) { - throw topLevelException; - } - - } - - /** - * Close all without caring about thrown exceptions. - * @param closeables - array containing auto closeables - */ - public static void closeSilently(AutoCloseable... closeables) { - Arrays.stream(closeables).filter(Objects::nonNull) - .forEach(target -> { - try { - target.close(); - } - catch (Exception e) { - LOGGER.warn(String.format("Exception was thrown while closing auto closeable: %s", target), e); - } - }); - } - -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/CachedModelExtractor.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/CachedModelExtractor.java deleted file mode 100644 index f3414984..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/CachedModelExtractor.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow.util; - -import java.io.File; -import java.io.FileInputStream; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.Validate; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.Resource; - -/** - * Extends the {@link ModelExtractor} to allow keeping a local copy (cache) of the loaded model (protobuf) files. - * @author Christian Tzolov - */ -public class CachedModelExtractor extends ModelExtractor { - - private static final Log logger = LogFactory.getLog(CachedModelExtractor.class); - - /** - * Parent folder under which the model files are cached. - */ - public String cacheRootDirectory = new File(System.getProperty("java.io.tmpdir"), "mind-model").getAbsolutePath(); - - public String getCacheRootDirectory() { - return cacheRootDirectory; - } - - public void setCacheRootDirectory(String cacheRootDirectory) { - this.cacheRootDirectory = cacheRootDirectory; - } - - public CachedModelExtractor() { - super(); - } - - public CachedModelExtractor(String frozenGraphFileExtension) { - super(frozenGraphFileExtension); - } - - @Override - public byte[] getModel(String modelUri) { - return this.getModel(new DefaultResourceLoader().getResource(modelUri)); - } - - @Override - public byte[] getModel(Resource modelResource) { - try { - File rootFolder = new File(this.cacheRootDirectory); - if (!rootFolder.exists()) { - logger.info("Create Model Cache root folder: " + rootFolder.getAbsolutePath()); - rootFolder.mkdirs(); - } - - Validate.isTrue(rootFolder.isDirectory(), "The cache root folder must be a Directory"); - - String fileName = modelResource.getFilename(); - String fragment = modelResource.getURI().getFragment(); - File cachedFile = StringUtils.isEmpty(fragment) ? new File(rootFolder, fileName) : - new File(rootFolder, fileName + "_" + fragment); - if (cachedFile.exists()) { - logger.info("Load model " + modelResource.toString() + " from cache: " + cacheRootDirectory); - return IOUtils.toByteArray(new FileInputStream(cachedFile)); - } - - byte[] model = super.getModel(modelResource); - - // cache the file - FileUtils.writeByteArrayToFile(cachedFile, model); - logger.info("Caching the " + modelResource.toString() + " model at: " + cachedFile); - - return model; - } - catch (Exception e) { - throw new IllegalStateException("Failed to extract a model from: " + modelResource.getDescription(), e); - } - } - - public void emptyModelCache() { - File rootFolder = new File(this.cacheRootDirectory); - if (rootFolder.exists()) { - logger.info("Empty Model Cache at:" + rootFolder.getAbsolutePath()); - rootFolder.delete(); - rootFolder.mkdirs(); - } - } -} diff --git a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/ModelExtractor.java b/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/ModelExtractor.java deleted file mode 100644 index 16502410..00000000 --- a/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/util/ModelExtractor.java +++ /dev/null @@ -1,248 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow.util; - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.X509Certificate; -import java.util.Optional; - -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.HttpsURLConnection; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSession; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - -import org.apache.commons.compress.archivers.ArchiveEntry; -import org.apache.commons.compress.archivers.ArchiveInputStream; -import org.apache.commons.compress.archivers.ArchiveStreamFactory; -import org.apache.commons.compress.compressors.CompressorInputStream; -import org.apache.commons.compress.compressors.CompressorStreamFactory; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.Validate; - -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.Resource; - - -/** - * Extracts a pre-trained (frozen) Tensorflow model URI into byte array. The 'http://', 'file://' and 'classpath://' - * URI schemas are supported. - * - * Models can be extract either from raw files or form compressed archives. When extracted from an archive the model - * file name can optionally be provided as an URI fragment. For example for resource: http://myarchive.tar.gz#model.pb - * the myarchive.tar.gz is traversed to uncompress and extract the model.pb file as byte array. - * If the file name is not provided as URI fragment then the first file in the archive with extension .pb is extracted. - * - * @author Christian Tzolov - */ -public class ModelExtractor { - - private static final String DEFAULT_FROZEN_GRAPH_FILE_EXTENSION = ".pb"; - - /** - * When an archive resource if referred, but no fragment URI is provided (to specify the target file name in - * the archive) then the extractor selects the first file in the archive with the extension that match - * the frozenGraphFileExtension (defaults to .pb). - */ - public final String frozenGraphFileExtension; - - public ModelExtractor() { - this(DEFAULT_FROZEN_GRAPH_FILE_EXTENSION); - } - - public ModelExtractor(String frozenGraphFileExtension) { - this.frozenGraphFileExtension = frozenGraphFileExtension; - } - - public byte[] getModel(String modelUri) { - return getModel(new DefaultResourceLoader().getResource(modelUri)); - } - - public byte[] getModel(Resource modelResource) { - - Validate.notNull(modelResource, "Not null model resource is required!"); - - try (InputStream is = modelResource.getInputStream(); InputStream bi = new BufferedInputStream(is)) { - - String[] archiveCompressor = detectArchiveAndCompressor(modelResource.getFilename()); - String archive = archiveCompressor[0]; - String compressor = archiveCompressor[1]; - String fragment = modelResource.getURI().getFragment(); - - - if (StringUtils.isNotBlank(compressor)) { - try (CompressorInputStream cis = new CompressorStreamFactory().createCompressorInputStream(compressor, bi)) { - if (StringUtils.isNotBlank(archive)) { - try (ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(archive, cis)) { - // Compressor fromMemory Archive - return findInArchiveStream(fragment, ais); - } - } - else { // Compressor only - return IOUtils.toByteArray(cis); - } - } - } - else if (StringUtils.isNotBlank(archive)) { // Archive only - try (ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(archive, bi)) { - return findInArchiveStream(fragment, ais); - } - } - else { - // No compressor nor Archive - return IOUtils.toByteArray(bi); - } - } - catch (Exception e) { - throw new IllegalStateException("Failed to extract a model from: " + modelResource.getDescription(), e); - } - } - - /** - * Traverses the Archive to find either an entry that matches the modelFileNameInArchive name (if not empty) or - * and entry that ends in .pb if the modelFileNameInArchive is empty. - * - * @param modelFileNameInArchive Optional name of the archive entry that represents the frozen model file. If empty - * the archive will be searched for the first entry that ends in .pb - * @param archive Archive stream to be traversed - * - */ - private byte[] findInArchiveStream(String modelFileNameInArchive, ArchiveInputStream archive) throws IOException { - ArchiveEntry entry; - while ((entry = archive.getNextEntry()) != null) { - //System.out.println(entry.getName() + " : " + entry.isDirectory()); - - if (archive.canReadEntryData(entry) && !entry.isDirectory()) { - if ((StringUtils.isNotBlank(modelFileNameInArchive) && entry.getName().endsWith(modelFileNameInArchive)) || - (!StringUtils.isNotBlank(modelFileNameInArchive) && entry.getName().endsWith(this.frozenGraphFileExtension))) { - return IOUtils.toByteArray(archive); - } - } - } - throw new IllegalArgumentException("No model is found in the archive"); - } - - /** - * Detect the Archive and the Compressor from the file extension. - * - * @param fileName File name with extension. - * @return Returns a tuple of the detected (Archive, Compressor). Null stands for not available - * archive or detector. The (null, null) response stands for no Archive or Compressor discovered. - */ - private String[] detectArchiveAndCompressor(String fileName) { - - String normalizedFileName = fileName.trim().toLowerCase(); - - if (normalizedFileName.endsWith(".tar.gz") - || normalizedFileName.endsWith(".tgz") - || normalizedFileName.endsWith(".taz")) { - return new String[] { ArchiveStreamFactory.TAR, CompressorStreamFactory.GZIP }; - } - else if (normalizedFileName.endsWith(".tar.bz2") - || normalizedFileName.endsWith(".tbz2") - || normalizedFileName.endsWith(".tbz")) { - return new String[] { ArchiveStreamFactory.TAR, CompressorStreamFactory.BZIP2 }; - } - else if (normalizedFileName.endsWith(".cpgz")) { - return new String[] { ArchiveStreamFactory.CPIO, CompressorStreamFactory.GZIP }; - } - else if (hasArchive(normalizedFileName)) { - return new String[] { findArchive(normalizedFileName).get(), null }; - } - else if (hasCompressor(normalizedFileName)) { - return new String[] { null, findCompressor(normalizedFileName).get() }; - } - else if (normalizedFileName.endsWith(".gzip")) { - return new String[] { null, CompressorStreamFactory.GZIP }; - } - else if (normalizedFileName.endsWith(".bz2") - || normalizedFileName.endsWith(".bz")) { - return new String[] { null, CompressorStreamFactory.BZIP2 }; - } - - // No archived/compressed - return new String[] { null, null }; - } - - private boolean hasArchive(String normalizedFileName) { - return findArchive(normalizedFileName).isPresent(); - } - - private Optional findArchive(String normalizedFileName) { - return new ArchiveStreamFactory().getInputStreamArchiveNames() - .stream().filter(arch -> normalizedFileName.endsWith("." + arch)).findFirst(); - } - - private boolean hasCompressor(String normalizedFileName) { - return findCompressor(normalizedFileName).isPresent(); - } - - private Optional findCompressor(String normalizedFileName) { - return new CompressorStreamFactory().getInputStreamCompressorNames() - .stream().filter(compressor -> normalizedFileName.endsWith("." + compressor)).findFirst(); - } - - static { - disableSslVerification(); - } - - private static void disableSslVerification() { - try { - // Create a trust manager that does not validate certificate chains - TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { - public X509Certificate[] getAcceptedIssuers() { - return null; - } - - public void checkClientTrusted(X509Certificate[] certs, String authType) { - } - - public void checkServerTrusted(X509Certificate[] certs, String authType) { - } - } - }; - - // Install the all-trusting trust manager - SSLContext sc = SSLContext.getInstance("SSL"); - sc.init(null, trustAllCerts, new java.security.SecureRandom()); - HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); - - // Create all-trusting host name verifier - HostnameVerifier allHostsValid = new HostnameVerifier() { - public boolean verify(String hostname, SSLSession session) { - return true; - } - }; - - // Install the all-trusting host verifier - HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); - } - catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } - catch (KeyManagementException e) { - e.printStackTrace(); - } - } - -} diff --git a/functions/common/tensorflow-common/src/main/resources/images/programming_model.png b/functions/common/tensorflow-common/src/main/resources/images/programming_model.png deleted file mode 100644 index 5bbb155186042cd53a0b47e0115b9438a4f320ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31008 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%0DGf>N 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 tf.withName("y1").math.mul( - tf.withName("x1").placeholder(Integer.class), - tf.constant(10))); - - this.graph2 = new GraphRunner("x2", "y2") - .withGraphDefinition(tf -> tf.withName("y2").math.mul( - tf.withName("x2").placeholder(Integer.class), - tf.constant(20))); - - this.graph3 = new GraphRunner(Arrays.asList("x31", "x32"), Arrays.asList("y3")) - .withGraphDefinition(tf -> tf.withName("y3").math.add( - tf.withName("x31").placeholder(Integer.class), - tf.withName("x32").placeholder(Integer.class))); - } - - public int compute(Integer input) { - try ( - Tensor x = Tensor.create(input); - GraphRunnerMemory memory = new GraphRunnerMemory(); - ) { - - Map> result = - this.graph1.andThen(memory) - .andThen(graph2).andThen(memory) - .andThen(Functions.enrichFromMemory(memory, "y1")) // retrieves the graph1's y1 output and adds it as a parameter with the same name - .andThen(Functions.rename( - "y1", "x31", // renames the input y1 into x31 - "y2", "x32" // renames the input y2 into x32 - )) - .andThen(graph3).andThen(memory) - .apply(Collections.singletonMap("x", x)); - - memory.getTensorMap().entrySet().forEach(e -> System.out.println(" " + e)); - - return result.get("y3").intValue(); - } - } - - @Override - public void close() { - this.graph1.close(); - this.graph2.close(); - } - - public static void main(String[] args) { - try (EnrichFromMemory example = new EnrichFromMemory()) { - - for (int x = 0; x < 5; x++) { - System.out.println("For x = " + x + ", y = " + example.compute(x)); - } - } - } -} - diff --git a/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/FunctionComposition.java b/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/FunctionComposition.java deleted file mode 100644 index 192751c8..00000000 --- a/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/FunctionComposition.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow; - -import java.util.Collections; -import java.util.Map; - -import org.tensorflow.Tensor; - -/** - * @author Christian Tzolov - */ -public final class FunctionComposition { - - private FunctionComposition() { - - } - - // y = (x * 2) + 20 - // - // y1 = x1 * 2 , where x1 == x - // y2 = x2 + 20 , where x2 == y1 and y = y2 - public static void main(String[] args) { - try ( - GraphRunner graph1 = new GraphRunner("x1", "y1") - .withGraphDefinition(tf -> tf.withName("y1").math.mul( - tf.withName("x1").placeholder(Integer.class), - tf.constant(2))); - GraphRunner graph2 = new GraphRunner("x2", "y2") - .withGraphDefinition(tf -> tf.withName("y2").math.add( - tf.withName("x2").placeholder(Integer.class), - tf.constant(20))); - Tensor x = Tensor.create(10); - ) { - - Map> result = graph1.andThen(graph2).apply(Collections.singletonMap("x", x)); - - System.out.println("Result is: " + result.get("y2").intValue()); - // Result is: 40 - } - - } -} - diff --git a/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/FunctionCompositionMultipleInputsOutputs.java b/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/FunctionCompositionMultipleInputsOutputs.java deleted file mode 100644 index cb233580..00000000 --- a/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/FunctionCompositionMultipleInputsOutputs.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow; - -import java.util.Arrays; -import java.util.Collections; -import java.util.Map; - -import org.tensorflow.Tensor; -import org.tensorflow.op.core.Placeholder; - -/** - * @author Christian Tzolov - */ -public final class FunctionCompositionMultipleInputsOutputs { - - private FunctionCompositionMultipleInputsOutputs() { - - } - - // y = (x * 2) + (x * 3) - // - // y11 = x1 * 2 , where x1 == x - // y12 = x1 * 3 , where x1 == x - // y2 = x21 + x22 , where x21 == y11, x22 == y12 and y == y2 - public static void main(String[] args) { - try ( - GraphRunner graph1 = new GraphRunner(Arrays.asList("x1"), Arrays.asList("y11", "y12")) - .withGraphDefinition(tf -> { - Placeholder x1 = tf.withName("x1").placeholder(Integer.class); - tf.withName("y11").math.mul(x1, tf.constant(2)); - tf.withName("y12").math.mul(x1, tf.constant(3)); - }); - GraphRunner graph2 = new GraphRunner(Arrays.asList("x21", "x22"), Arrays.asList("y2")) - .withGraphDefinition(tf -> tf.withName("y2").math.add( - tf.withName("x21").placeholder(Integer.class), - tf.withName("x22").placeholder(Integer.class))); - Tensor x = Tensor.create(10); - ) { - - Map> result = graph1 - .andThen(Functions.rename( - "y11", "x21", - "y12", "x22" - )) - .andThen(graph2) - .apply(Collections.singletonMap("x", x)); - - System.out.println("Result is: " + result.get("y2").intValue()); // Result is: 50 - } - } -} - diff --git a/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/ReleaseTensorParameters.java b/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/ReleaseTensorParameters.java deleted file mode 100644 index 77fe49cb..00000000 --- a/functions/common/tensorflow-common/src/test/java/org/springframework/cloud/fn/common/tensorflow/ReleaseTensorParameters.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.tensorflow; - -import java.util.Collections; -import java.util.Map; - -import org.tensorflow.Tensor; - -/** - * @author Christian Tzolov - */ -public class ReleaseTensorParameters implements AutoCloseable { - - private final GraphRunner graph1; - private final GraphRunner graph2; - - public ReleaseTensorParameters() { - this.graph1 = new GraphRunner("x1", "y1") - .withGraphDefinition(tf -> tf.withName("y1").math.mul( - tf.withName("x1").placeholder(Integer.class), - tf.constant(2))); - - this.graph2 = new GraphRunner("x2", "y2") - .withGraphDefinition(tf -> tf.withName("y2").math.add( - tf.withName("x2").placeholder(Integer.class), - tf.constant(20))); - } - - // y = (x * 2) + 20 - public int compute(Integer input) { - try ( - Tensor x = Tensor.create(input); - GraphRunnerMemory memory = new GraphRunnerMemory(); - ) { - - Map> result = - this.graph1.andThen(memory) - .andThen(graph2).andThen(memory) - .apply(Collections.singletonMap("x", x)); - - memory.getTensorMap().entrySet().forEach(e -> System.out.println(" " + e)); - - return result.get("y2").intValue(); - } - } - - @Override - public void close() { - this.graph1.close(); - this.graph2.close(); - } - - public static void main(String[] args) { - try (ReleaseTensorParameters example = new ReleaseTensorParameters()) { - - for (int x = 0; x < 5; x++) { - System.out.println("For x = " + x + ", y = " + example.compute(x)); - } - } - } -} - diff --git a/functions/common/twitter-common/pom.xml b/functions/common/twitter-common/pom.xml deleted file mode 100644 index e31925b0..00000000 --- a/functions/common/twitter-common/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/Cursor.java b/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/Cursor.java deleted file mode 100644 index ba6de357..00000000 --- a/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/Cursor.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.twitter; - -/** - * @author Christian Tzolov - */ -public class Cursor { - private long cursor = -1; - - public long getCursor() { - return cursor; - } - - public void updateCursor(long newCursor) { - this.cursor = (newCursor > 0) ? newCursor : -1; - } - - @Override - public String toString() { - return "Cursor{cursor=" + cursor + '}'; - } -} diff --git a/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionConfiguration.java b/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionConfiguration.java deleted file mode 100644 index b5b65c78..00000000 --- a/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionConfiguration.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.twitter; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Function; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import twitter4j.Twitter; -import twitter4j.TwitterFactory; -import twitter4j.TwitterObjectFactory; -import twitter4j.TwitterStream; -import twitter4j.TwitterStreamFactory; -import twitter4j.conf.ConfigurationBuilder; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.util.MimeTypeUtils; - -/** - * - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties({ TwitterConnectionProperties.class }) -public class TwitterConnectionConfiguration { - - private static final Log logger = LogFactory.getLog(TwitterConnectionConfiguration.class); - - @Bean - public twitter4j.conf.Configuration twitterConfiguration(TwitterConnectionProperties properties, - Function toConfigurationBuilder) { - return toConfigurationBuilder.apply(properties).build(); - } - - @Bean - public Twitter twitter(twitter4j.conf.Configuration configuration) { - return new TwitterFactory(configuration).getInstance(); - } - - @Bean - public TwitterStream twitterStream(twitter4j.conf.Configuration configuration) { - return new TwitterStreamFactory(configuration).getInstance(); - } - - @Bean - public Function toConfigurationBuilder() { - return properties -> new ConfigurationBuilder() - .setJSONStoreEnabled(properties.isRawJson()) - .setDebugEnabled(properties.isDebugEnabled()) - .setOAuthConsumerKey(properties.getConsumerKey()) - .setOAuthConsumerSecret(properties.getConsumerSecret()) - .setOAuthAccessToken(properties.getAccessToken()) - .setOAuthAccessTokenSecret(properties.getAccessTokenSecret()); - } - - @Bean - public Function> json(ObjectMapper mapper) { - return objects -> { - try { - String json = mapper.writeValueAsString(objects); - - return MessageBuilder - .withPayload(json.getBytes()) - .setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE) - .build(); - } - catch (JsonProcessingException e) { - logger.error("Status to JSON conversion error!", e); - } - return null; - }; - } - - /** - * Retrieves the raw JSON form of the provided object. - * - * Note that raw JSON forms can be retrieved only from the same thread invoked the last method - * call and will become inaccessible once another method call. - * - * @return Function that can retrieve the raw JSON object from the objects returned by the Twitter4J's APIs. - */ - @Bean - public Function rawJsonExtractor() { - return response -> { - if (response instanceof List) { - List responses = (List) response; - List rawJsonList = new ArrayList<>(); - for (Object object : responses) { - rawJsonList.add(TwitterObjectFactory.getRawJSON(object)); - } - return rawJsonList; - } - else { - return TwitterObjectFactory.getRawJSON(response); - } - }; - } - - @Bean - public Function> managedJson(TwitterConnectionProperties properties, - Function rawJsonExtractor, Function> json) { - return list -> (properties.isRawJson()) ? rawJsonExtractor.andThen(json).apply(list) : json.apply(list); - } -} diff --git a/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionProperties.java b/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionProperties.java deleted file mode 100644 index dd8e5df0..00000000 --- a/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionProperties.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.twitter; - -import jakarta.validation.constraints.NotEmpty; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("twitter.connection") -@Validated -public class TwitterConnectionProperties { - - /** - * Your Twitter key. - */ - @NotEmpty - private String consumerKey; - - /** - * Your Twitter secret. - */ - @NotEmpty - private String consumerSecret; - - /** - * Your Twitter token. - */ - @NotEmpty - private String accessToken; - - /** - * Your Twitter token secret. - */ - @NotEmpty - private String accessTokenSecret; - - /** - * Enables Twitter4J debug mode. - */ - private boolean debugEnabled = false; - - /** - * Enable caching the original (raw) JSON objects as returned by the Twitter APIs. - * When set to False the result will use the Twitter4J's json representations. - * When set to True the result will use the original Twitter APISs json representations. - */ - private boolean rawJson = true; - - public String getConsumerKey() { - return consumerKey; - } - - public void setConsumerKey(String consumerKey) { - this.consumerKey = consumerKey; - } - - public String getConsumerSecret() { - return consumerSecret; - } - - public void setConsumerSecret(String consumerSecret) { - this.consumerSecret = consumerSecret; - } - - public String getAccessToken() { - return accessToken; - } - - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - public String getAccessTokenSecret() { - return accessTokenSecret; - } - - public void setAccessTokenSecret(String accessTokenSecret) { - this.accessTokenSecret = accessTokenSecret; - } - - public boolean isDebugEnabled() { - return debugEnabled; - } - - public void setDebugEnabled(boolean debugEnabled) { - this.debugEnabled = debugEnabled; - } - - public boolean isRawJson() { - return this.rawJson; - } - - public void setRawJson(boolean rawJson) { - this.rawJson = rawJson; - } -} diff --git a/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/util/TwitterTestUtils.java b/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/util/TwitterTestUtils.java deleted file mode 100644 index 25b27679..00000000 --- a/functions/common/twitter-common/src/main/java/org/springframework/cloud/fn/common/twitter/util/TwitterTestUtils.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.common.twitter.util; - - -import java.io.IOException; -import java.nio.charset.Charset; -import java.util.function.Function; - -import twitter4j.conf.ConfigurationBuilder; - -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.util.StreamUtils; - -/** - * @author Christian Tzolov - */ -public class TwitterTestUtils { - - public Function mockTwitterUrls(String baseUrl) { - return configBuilder -> { - configBuilder.setRestBaseURL(baseUrl + "/"); - configBuilder.setStreamBaseURL(baseUrl + "/stream/"); - configBuilder.setUserStreamBaseURL(baseUrl + "/user/"); - configBuilder.setSiteStreamBaseURL(baseUrl + "/site/"); - configBuilder.setUploadBaseURL(baseUrl + "/upload/"); - - configBuilder.setOAuthAccessTokenURL(baseUrl + "/oauth/access_token"); - configBuilder.setOAuthAuthenticationURL(baseUrl + "/oauth/authenticate"); - configBuilder.setOAuthAuthorizationURL(baseUrl + "/oauth/authorize"); - configBuilder.setOAuthRequestTokenURL(baseUrl + "/oauth/request_token"); - configBuilder.setOAuth2TokenURL(baseUrl + "/oauth2/token"); - configBuilder.setOAuth2InvalidateTokenURL(baseUrl + "/oauth2/invalidate_token"); - - return configBuilder; - }; - } - - /** - * Load Spring Resource as String. - * @param resourcePath Resource path (accepts file:// , classpath:// and http:// uri schemas) - * @return Returns text (UTF8) representation of the resource pointed by the resourcePath - */ - public static String asString(String resourcePath) { - try { - return StreamUtils.copyToString(new DefaultResourceLoader().getResource(resourcePath).getInputStream(), - Charset.forName("UTF-8")); - } - catch (IOException e) { - throw new RuntimeException("Can not load resource:" + resourcePath, e); - } - } - -} diff --git a/functions/common/xmpp-common/pom.xml b/functions/common/xmpp-common/pom.xml deleted file mode 100644 index aba1c006..00000000 --- a/functions/common/xmpp-common/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - xmpp-common - xmpp-common - XMPP common - - - - org.springframework.integration - spring-integration-xmpp - - - - diff --git a/functions/common/xmpp-common/src/main/java/org/springframework/cloud/fn/common/xmpp/XmppConnectionFactoryConfiguration.java b/functions/common/xmpp-common/src/main/java/org/springframework/cloud/fn/common/xmpp/XmppConnectionFactoryConfiguration.java deleted file mode 100644 index 1918f59c..00000000 --- a/functions/common/xmpp-common/src/main/java/org/springframework/cloud/fn/common/xmpp/XmppConnectionFactoryConfiguration.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.common.xmpp; - -import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration; -import org.jxmpp.stringprep.XmppStringprepException; -import org.jxmpp.util.XmppStringUtils; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.xmpp.config.XmppConnectionFactoryBean; -import org.springframework.util.StringUtils; - -@Configuration -@EnableConfigurationProperties(XmppConnectionFactoryProperties.class) -public class XmppConnectionFactoryConfiguration { - - @Bean - @ConditionalOnMissingBean - public XmppConnectionFactoryBean xmppConnectionFactoryBean(XmppConnectionFactoryProperties properties) throws XmppStringprepException { - - XmppConnectionFactoryBean xmppConnectionFactoryBean = new XmppConnectionFactoryBean(); - xmppConnectionFactoryBean.setSubscriptionMode(properties.getSubscriptionMode()); - - XMPPTCPConnectionConfiguration.Builder builder = XMPPTCPConnectionConfiguration.builder(); - builder.setSecurityMode(properties.getSecurityMode()); - builder.setHost(properties.getHost()); - builder.setPort(properties.getPort()); - if (StringUtils.hasText(properties.getResource())) { - builder.setResource(properties.getResource()); - } - - if (StringUtils.hasText(properties.getServiceName())) { - builder.setUsernameAndPassword(properties.getUser(), properties.getPassword()) - .setXmppDomain(properties.getServiceName()); - } - else { - builder.setUsernameAndPassword(XmppStringUtils.parseLocalpart(properties.getUser()), properties.getPassword()) - .setXmppDomain(properties.getUser()); - } - - xmppConnectionFactoryBean.setConnectionConfiguration(builder.build()); - - return xmppConnectionFactoryBean; - } - -} diff --git a/functions/common/xmpp-common/src/main/java/org/springframework/cloud/fn/common/xmpp/XmppConnectionFactoryProperties.java b/functions/common/xmpp-common/src/main/java/org/springframework/cloud/fn/common/xmpp/XmppConnectionFactoryProperties.java deleted file mode 100644 index 99cd071e..00000000 --- a/functions/common/xmpp-common/src/main/java/org/springframework/cloud/fn/common/xmpp/XmppConnectionFactoryProperties.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.common.xmpp; - -import jakarta.validation.constraints.NotEmpty; -import org.jivesoftware.smack.ConnectionConfiguration; -import org.jivesoftware.smack.roster.Roster; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * - * @author Daniel Frey - * @since 4.0.0 - */ -@ConfigurationProperties("xmpp.factory") -@Validated -public class XmppConnectionFactoryProperties { - - /** - * The Resource to bind to on the XMPP Host. - * - Can be empty, server will generate one if not set - */ - private String resource; - - /** - * The User the connection should connect as. - */ - private String user; - - /** - * The Password for the connected user. - */ - private String password; - - /** - * The Service Name to set for the XMPP Domain. - */ - private String serviceName; - - /** - * XMPP Host server to connect to. - */ - private String host; - - /** - * Port for connecting to the host. - * - Default Client Port: 5222 - */ - private int port = 5222; - - private Roster.SubscriptionMode subscriptionMode = Roster.getDefaultSubscriptionMode(); - - private ConnectionConfiguration.SecurityMode securityMode = ConnectionConfiguration.SecurityMode.required; - - public void setResource(String resource) { - this.resource = resource; - } - - public String getResource() { - return resource; - } - - public void setUser(String user) { - this.user = user; - } - - @NotEmpty(message = "user is required") - public String getUser() { - return user; - } - - public void setPassword(String password) { - this.password = password; - } - - @NotEmpty(message = "password is required") - public String getPassword() { - return password; - } - - public void setServiceName(String serviceName) { - this.serviceName = serviceName; - } - - public String getServiceName() { - return serviceName; - } - - public void setHost(String host) { - this.host = host; - } - - @NotEmpty(message = "host is required") - public String getHost() { - return host; - } - - public void setPort(int port) { - this.port = port; - } - - public int getPort() { - return port; - } - - public void setSubscriptionMode(Roster.SubscriptionMode subscriptionMode) { - this.subscriptionMode = subscriptionMode; - } - - public Roster.SubscriptionMode getSubscriptionMode() { - return subscriptionMode; - } - - public void setSecurityMode(ConnectionConfiguration.SecurityMode securityMode) { - this.securityMode = securityMode; - } - - public ConnectionConfiguration.SecurityMode getSecurityMode() { - return securityMode; - } - -} diff --git a/functions/consumer/analytics-consumer/README.adoc b/functions/consumer/analytics-consumer/README.adoc deleted file mode 100644 index c845085d..00000000 --- a/functions/consumer/analytics-consumer/README.adoc +++ /dev/null @@ -1,177 +0,0 @@ -# Analytics Consumer - -The `analytics-consumer` is a Java https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html[Consumer>] that computes analytics from the input data messages and publishes them as metrics to various monitoring systems. -It leverages the https://micrometer.io[micrometer library] for providing a uniform programming experience across the most popular https://micrometer.io/docs[monitoring systems] and uses https://docs.spring.io/spring-integration/reference/html/spel.html#spel[Spring Expression Language (SpEL)] for defining how the metric names, values and tags are computed from the input data. - -The analytics-consumer can produce two metrics types: - -- https://micrometer.io/docs/concepts#_counters[Counter] - reports a single metric, a count, that increments by a fixed, positive amount. Counters can be used for computing the rates of how the data changes in time. -- https://micrometer.io/docs/concepts#_gauges[Gauge] - reports the current value. Typical examples for gauges would be the size of a collection or map or number of threads in a running state. - -A https://micrometer.io/docs/concepts#_meters[Meter] (e.g Counter or Gauge) is uniquely identified by its `name` and `dimensions` (the term dimensions and tags is used interchangeably). Dimensions allow a particular named metric to be sliced to drill down and reason about the data. - -NOTE: As a metrics is uniquely identified by its `name` and `dimensions`, you can assign multiple tags (e.g. key/value pairs) to every metric, but you cannot randomly change those tags afterwards! Monitoring systems such as Prometheus will complain if a metric with the same name has different sets of tags. - -## Beans for injection - -Add the analytics-consumer dependency to your POM: - -[source,xml] ----- - - org.springframework.cloud.fn - analytics-consumer - 1.0.0-SNAPSHOT - ----- - -Import the https://github.com/spring-cloud/stream-applications/blob/master/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerConfiguration.java[AnalyticsConsumerConfiguration] in the application and inject the following consumer bean: - -[source,java] ----- - Consumer> analyticsConsumer ----- - -For every input https://docs.spring.io/spring-integration/reference/html/message.html[Message] the `analyticsConsumer` computes the defined metrics and eventually, with the help of the micrometer library, publishes them to the backend monitoring systems. The https://docs.spring.io/spring-integration/reference/html/message.html[Message] is a generic container for data. Each Message instance includes a payload and headers containing user-extensible properties as key-value pairs. Any object can be provided as the payload. -The https://docs.spring.io/spring-integration/reference/html/message.html#message-builder[MessageBuilder] helps to create a Message instance from any payload content and assign any key/value as a header: - -[source,java] ----- - Message myMessage = MessageBuilder - .withPayload("My message text") - .setHeader("kind", "CUSTOM") - .setHeader("foo", "bar") - .build(); ----- - -The `SpEL` expressions use the `headers` and `payload` keywords to access message’s headers and payload values. For example a counter metrics can have a value amount computed from the size of the input message payload add a `my_tag` tag, extracted from the `kind` header value: - -[source,properties] ----- -analytics.amount-expression=payload.lenght() -analytics.tag.expression.my_tag=headers['kind'] ----- - -Review the https://github.com/spring-cloud/stream-applications/blob/master/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerProperties.java[AnalyticsConsumerProperties]'s javadocs for further details how to use the SpEL properties. - -By default, Micrometer is packed with a SimpleMeterRegistry that holds the latest value of each meter in memory and doesn’t export the data anywhere. -To enable support for another monitoring system you have to add the spring-boot-starter-actuator dependency and the micrometer dependency of the monitoring system of choice: - -[source,xml] ----- - - org.springframework.boot - spring-boot-starter-actuator - CHANGE TO LATEST VERSION - - - - io.micrometer - micrometer-registry-[MONITORING SYSTEM NAME] - ${micrometer.version} - ----- - -Follow the https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/production-ready-features.html#production-ready-metrics-export[configuration instructions] for the selected monitoring system. All monitoring configuration properties start with a prefix: `management.metrics.export`. - -== Configuration Options - -All `analytics-consumer` configuration properties use the `analytics` prefix. For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerProperties.java[AnalyticsConsumerProperties]. - -All monitoring configuration properties start with a prefix `management.metrics.export`. For configuring a particular monitoring system follow the provided https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/production-ready-features.html#production-ready-metrics-export[configuration instructions]. - -==== Sample Configuration - -Following examples show how to configure `counter` and `gauge` metrics over a series of stock-exchange messages like this: - -[source,json] ----- -{ - "data": { - "symbol": "AAPL", - "exchange": "XNAS", - "open": 318.66, - "close": 316.85, - "volume": 25672211.0 - } -} ----- - -The following configuration will create a `counter` metrics called `stockrates` with two tags: `symbol` and `exchange` computed from the json fields: - -.Counter Metrcis Configuration - count stock transactions -|=== -|Property |Description - -|analytics.meter-type=counter -|Counter meter type (default) - -|analytics.name=stockrates -|Metrics name - -|analytics.tag.expression.symbol=#jsonPath(payload,'$.data.symbol') -|Add tag `symbol` equal to the `date.symbol` field in the json messages. - -|analytics.tag.expression.exchange=#jsonPath(payload,'$.data.exchange') -|Add tag `exchange` equal to the `date.exchange` field in the json messages. - -|=== - -Now you can use the `stockrates` metrics to measure the rates at which the stock transactions occur over a given time interval. Furthermore, you can aggregate those rates by the `symbol` and `exchange` tags. - -To measure the transaction volumes contained in the data.volume JSON fields, you can build a GAUGE metrics like this: - -.Gauge Metrcis Configuration - compute stock volumes -|=== -|Property |Description - -|analytics.meter-type=gauge -|Gauge meter type - -|analytics.name=stockvolumes -|Metrics name - -|analytics.tag.expression.symbol=#jsonPath(payload,'$.data.symbol') -|Add tag `symbol` equal to the `date.symbol` field in the json messages. - -|analytics.tag.expression.exchange=#jsonPath(payload,'$.data.exchange') -|Add tag `exchange` equal to the `date.exchange` field in the json messages. - -|analytics.tag.amount-expression=#jsonPath(payload,'$.data.volume') -|Set the Gauge to the `data/volume` field values. -|=== - -Then use the `stockvolumes` metrics to graph, in real-time, the transaction volumes changes over time. You can aggregate those volumes by the `symbol` and `exchange` tags. - -WARNING: Micrometer implements the Gauges for the purpose of data sampling! There is no information about what might have occurred between two consecutive samples. Any intermediate values set on a gauge are lost by the time the gauge value is reported to a metrics backend. - -To enable one or more https://micrometer.io/docs[supported monitoring systems] you need to add a configuration like this: - -.Wavefront Configuration. -|=== -|Property |Description - -|management.metrics.export.wavefront.enabled=true -|Enable or disable the monitoring system. (enabled by default). - -|management.metrics.export.wavefront.uri=YOUR_WAVEFRONT_SERVER_URI -|UIR of your Wavefront server or Wavefront Proxy. - -|management.metrics.export.wavefront.api-token=YOUR_API_TOKEN -|Wavefront access token. - -|management.metrics.export.wavefront.source=stock-exchange-demo -|The `source` is used to distinct your metrics on the Wavefront server. - -|=== - - -== Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/analytics[test suite] for the various ways, this consumer is used. - -== Other usage - -* See the https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/analytics-sink/README.adoc[Analytics Sink README] where this consumer is used to create a Spring Cloud Stream application where it makes a Counter sink. - -* https://docs.google.com/document/d/1BHBjgMmg4a1ue2wr-dmPTfgaN0so4ufw2XkG541Ac9Q/edit?usp=sharing[Stock Exchange Sample]. diff --git a/functions/consumer/analytics-consumer/pom.xml b/functions/consumer/analytics-consumer/pom.xml deleted file mode 100644 index 5bb00bf3..00000000 --- a/functions/consumer/analytics-consumer/pom.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerConfiguration.java b/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerConfiguration.java deleted file mode 100644 index 45e7aeaa..00000000 --- a/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerConfiguration.java +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicLong; -import java.util.function.Consumer; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import io.micrometer.core.instrument.Meter; -import io.micrometer.core.instrument.MeterRegistry; -import io.micrometer.core.instrument.Tag; -import io.micrometer.core.instrument.Tags; -import io.micrometer.core.instrument.composite.CompositeMeterRegistry; -import io.micrometer.core.instrument.simple.SimpleMeterRegistry; - -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.SpelExpressionConverterConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Lazy; -import org.springframework.expression.EvaluationContext; -import org.springframework.messaging.Message; -import org.springframework.util.CollectionUtils; -import org.springframework.util.ObjectUtils; -import org.springframework.util.StringUtils; - -/** - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(AnalyticsConsumerProperties.class) -public class AnalyticsConsumerConfiguration { - - /** Default tag value. Used to fill the tag when the actual value is missing. */ - public static final String UNAVAILABLE_TAG = "NA"; - - private final Map gaugeValues = new ConcurrentHashMap<>(); - - @Bean(name = "analyticsConsumer") - public Consumer> analyticsConsumer(AnalyticsConsumerProperties properties, MeterRegistry[] meterRegistries, - @Lazy @Qualifier(SpelExpressionConverterConfiguration.INTEGRATION_EVALUATION_CONTEXT) EvaluationContext context) { - - // If the CompositeMeterRegistry is present the it already contains all non-composite registries. - // In this case we override the input meterRegistries to use the CompositeMeterRegistry only. - final MeterRegistry[] finalMeterRegistries = Stream.of(meterRegistries) - .filter(CompositeMeterRegistry.class::isInstance) - .findFirst() - .map(meterRegistry -> new MeterRegistry[] { meterRegistry }) - .orElse(meterRegistries); - - return message -> { - - CharSequence meterNameRaw = properties.getComputedNameExpression().getValue(context, message, CharSequence.class); - String meterName = StringUtils.isEmpty(meterNameRaw) ? "empty" : meterNameRaw.toString(); - - // All fixed tags together are passed with every meter update. - Tags fixedTags = this.toTags(properties.getTag().getFixed()); - - double amount = properties.getComputedAmountExpression().getValue(context, message, double.class); - - Map> allGroupedTags = new HashMap<>(); - // Tag Expressions - if (properties.getTag().getExpression() != null) { - - Map> groupedTags = properties.getTag().getExpression().entrySet().stream() - // maps a pair into [, ... ] Tag array. - .map(namedExpression -> - toList(namedExpression.getValue().getValue(context, message)).stream() - .map(tagValue -> Tag.of(namedExpression.getKey(), tagValue)) - .collect(Collectors.toList())).flatMap(List::stream) - .collect(Collectors.groupingBy(Tag::getKey, Collectors.toList())); - allGroupedTags.putAll(groupedTags); - } - - this.recordMetrics(finalMeterRegistries, meterName, fixedTags, allGroupedTags, amount, properties.getMeterType()); - }; - } - - /** - * Converts a key/value Map into Tag(key,value) list. Filters out the empty key/value pairs. - * - * @param keyValueMap key/value map to convert into tags. - * @return Returns Tags list representing every non-empty key/value pair. - */ - protected Tags toTags(Map keyValueMap) { - return CollectionUtils.isEmpty(keyValueMap) ? Tags.empty() : - Tags.of(keyValueMap.entrySet().stream() - .filter(e -> StringUtils.hasText(e.getKey()) && StringUtils.hasText(e.getValue())) - .map(e -> Tag.of(e.getKey(), e.getValue())) - .collect(Collectors.toList())); - } - - /** - * Converts the input value into an list of values. If the value is not a collection/array type the result - * is a single element list. For collection/array input value the result is the list of stringified content of - * this collection. - * - * @param value input value can be array, collection or single value. - * @return Returns value list. - */ - protected List toList(Object value) { - if (value == null) { - // Ensure that the tag is present in the meter metrics, even if empty. - // TSDB as Prometheus do not tolerate same meters to have different tags signatures. - return Collections.singletonList(UNAVAILABLE_TAG); - } - - if ((value instanceof Collection) || ObjectUtils.isArray(value)) { - - Collection valueCollection = (value instanceof Collection) ? (Collection) value - : Arrays.asList(ObjectUtils.toObjectArray(value)); - List list = valueCollection.stream() - .filter(Objects::nonNull) - .map(Object::toString) - .filter(StringUtils::hasText) - .collect(Collectors.toList()); - return CollectionUtils.isEmpty(list) ? Collections.singletonList(UNAVAILABLE_TAG) : list; - } - else { - return Collections.singletonList(value.toString()); - } - } - - private void recordMetrics(MeterRegistry[] meterRegistries, String meterName, Tags fixedTags, - Map> groupedTags, double amount, AnalyticsConsumerProperties.MeterType meterType) { - if (!CollectionUtils.isEmpty(groupedTags)) { - groupedTags.values().stream().map(List::size).max(Integer::compareTo).ifPresent( - max -> { - for (int i = 0; i < max; i++) { - Tags currentTags = Tags.of(fixedTags); - for (Map.Entry> e : groupedTags.entrySet()) { - currentTags = (e.getValue().size() > i) ? - currentTags.and(e.getValue().get(i)) : - currentTags.and(Tags.of(e.getKey(), "")); - } - - // Update the meterName for every configured MaterRegistry. - record(meterRegistries, meterName, currentTags, amount, meterType); - } - } - ); - } - else { - // Update the meterName for every configured MaterRegistry. - record(meterRegistries, meterName, fixedTags, amount, meterType); - } - } - - private void record(MeterRegistry[] meterRegistries, String meterName, - Iterable tags, double meterAmount, AnalyticsConsumerProperties.MeterType meterType) { - - for (MeterRegistry meterRegistry : meterRegistries) { - if (meterType == AnalyticsConsumerProperties.MeterType.gauge) { - Meter.Id gaugeId = new Meter.Id(meterName, Tags.of(tags), null, null, Meter.Type.GAUGE); - if (!this.gaugeValues.containsKey(gaugeId)) { - this.gaugeValues.put(gaugeId, new AtomicLong((long) meterAmount)); - } - else { - this.gaugeValues.get(gaugeId).set((long) meterAmount); - } - if (!isMeterRegistryContainsGauge(meterRegistry, gaugeId)) { - meterRegistry.gauge(meterName, tags, this.gaugeValues.get(gaugeId), AtomicLong::doubleValue); - } - } - else if (meterType == AnalyticsConsumerProperties.MeterType.counter) { - meterRegistry.counter(meterName, tags).increment(meterAmount); - } - else { - throw new RuntimeException("Unknown meter type:" + meterType); - } - } - } - - private boolean isMeterRegistryContainsGauge(MeterRegistry meterRegistry, Meter.Id gaugeId) { - return meterRegistry.find(gaugeId.getName()).gauges().stream() - .anyMatch(gauge -> gauge.getId().equals(gaugeId)); - } - - @Bean - @ConditionalOnMissingBean - public SimpleMeterRegistry simpleMeterRegistry() { - return new SimpleMeterRegistry(); - } -} diff --git a/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerProperties.java b/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerProperties.java deleted file mode 100644 index 347bcf4e..00000000 --- a/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerProperties.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import java.util.Map; - -import jakarta.validation.constraints.AssertTrue; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.expression.common.LiteralExpression; -import org.springframework.validation.annotation.Validated; - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("analytics") -@Validated -public class AnalyticsConsumerProperties { - - enum MeterType { - /** Uses the Micrometer Counter meter type. It accumulates intermediate counts toward the point where - * the data is sent to the metrics backend.*/ - counter, - /** Uses the Micrometer Gauge meter type. Gauges sample the input time series. Any intermediate values set on - * a gauge are lost by the time the gauge value is reported to a metrics backend. - * TIP: Never gauge something you can count with a Counter!*/ - gauge - } - - /** - * Micrometer meter type used to report the metrics to the backend. - */ - private MeterType meterType = MeterType.counter; - - /** - * The name of the output metrics. - * The 'name' and 'nameExpression' are mutually exclusive. Only one of them can be set. - */ - private String name; - - /** - * A SpEL expression to compute the output metrics name from the input message. - * The 'name' and 'nameExpression' are mutually exclusive. Only one of them can be set. - */ - private Expression nameExpression; - - /** - * If neither `name` nor `nameExpression` is set the name of the output metrics defaults to the - * Spring application name. - */ - @Value("${spring.application.name:analytics}") - private String defaultName; - - /** - * A SpEL expression to compute the output metrics value (e.g. amount). - * It defaults to 1.0 - */ - private Expression amountExpression; - - /** - * Fixed and computed tags to be assignee with the output metric. - */ - private final MetricsTag tag = new MetricsTag(); - - public MetricsTag getTag() { - return tag; - } - - public MeterType getMeterType() { - return meterType; - } - - public void setMeterType(MeterType meterType) { - this.meterType = meterType; - } - - public String getName() { - if (name == null && nameExpression == null) { - return defaultName; - } - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Expression getNameExpression() { - return nameExpression; - } - - public void setNameExpression(Expression nameExpression) { - this.nameExpression = nameExpression; - } - - public Expression getAmountExpression() { - return amountExpression; - } - - public void setAmountExpression(Expression amountExpression) { - this.amountExpression = amountExpression; - } - - public Expression getComputedAmountExpression() { - return (amountExpression != null ? amountExpression : new LiteralExpression("1.0")); - } - - public Expression getComputedNameExpression() { - return (nameExpression != null ? nameExpression : new LiteralExpression(getName())); - } - - @AssertTrue(message = "exactly one of 'name' and 'nameExpression' must be set") - public boolean isExclusiveOptions() { - return getName() != null ^ getNameExpression() != null; - } - - @Override - public String toString() { - return "AnalyticsFunctionProperties{" + - "defaultName='" + defaultName + '\'' + - ", name=" + name + - ", tag=" + tag + - '}'; - } - - public static class MetricsTag { - - /** - * DEPRECATED: Please use the analytics.tag.expression with literal SpEL expression. - * - * Custom, fixed Tags. Those tags have constant values, created once and then sent along with every - * published metrics. The convention to define a fixed Tags is: - * - * analytics.tag.fixed.[tag-name]=[tag-value] - * - */ - @Deprecated - private Map fixed; - - /** - * Computes tags from SpEL expression. - * Single SpEL expression can produce an array of values, which in turn means distinct name/value tags. - * Every name/value tag will produce a separate meter increment. - * Tag expression format is: analytics.tag.expression.[tag-name]=[SpEL expression] - */ - private Map expression; - - public Map getFixed() { - return fixed; - } - - public void setFixed(Map fixed) { - this.fixed = fixed; - } - - public Map getExpression() { - return expression; - } - - public void setExpression(Map expression) { - this.expression = expression; - } - - @Override - public String toString() { - return "MetricsTag{" + - "fixed=" + fixed + - ", expression=" + expression + - '}'; - } - } -} diff --git a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerParentTest.java b/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerParentTest.java deleted file mode 100644 index 9473a821..00000000 --- a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerParentTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import java.util.function.Consumer; - -import io.micrometer.core.instrument.simple.SimpleMeterRegistry; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.annotation.DirtiesContext; - -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { "management.metrics.export.wavefront.enabled=false" }) -@DirtiesContext -public class AnalyticsConsumerParentTest { - - @Autowired - protected SimpleMeterRegistry meterRegistry; - - @Autowired - protected Consumer> analyticsConsumer; - - protected Message message(String payload) { - return MessageBuilder.withPayload(payload.getBytes()).build(); - } - - @SpringBootApplication - static class AnalyticsConsumerTestApplication { - } -} diff --git a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/CountWithAmountTest.java b/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/CountWithAmountTest.java deleted file mode 100644 index 48fd4798..00000000 --- a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/CountWithAmountTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import org.junit.jupiter.api.Test; - -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ -@TestPropertySource(properties = { - "analytics.name=counter666", - "analytics.tag.expression.foo='bar'", - "analytics.amount-expression=payload.length()" -}) -class CountWithAmountTest extends AnalyticsConsumerParentTest { - - @Test - void testCounterSink() { - String message = "hello world message"; - double messageSize = Long.valueOf(message.length()).doubleValue(); - analyticsConsumer.accept(new GenericMessage(message)); - assertThat(meterRegistry.find("counter666").counter().count()).isEqualTo(messageSize); - } -} diff --git a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/EmptyTagsTests.java b/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/EmptyTagsTests.java deleted file mode 100644 index 23344129..00000000 --- a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/EmptyTagsTests.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import java.util.Collection; - -import io.micrometer.core.instrument.Counter; -import org.junit.jupiter.api.Test; - -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ -@TestPropertySource(properties = { - "analytics.name=counter666", - "analytics.tag.fixed.foo=", - "analytics.tag.expression.tag666=#jsonPath(payload,'$..noField')", - "analytics.tag.expression.test=#jsonPath(payload,'$..test')" -}) -class EmptyTagsTests extends AnalyticsConsumerParentTest { - - @Test - void testCounterSink() { - - analyticsConsumer.accept(message("{\"test\": \"Bar\"}")); - - Collection fixedTagsCounters = meterRegistry.find("counter666").tagKeys("foo").counters(); - assertThat(fixedTagsCounters.size()).isEqualTo(0); - - Collection expressionTagsCounters = meterRegistry.find("counter666").tagKeys("tag666").counters(); - assertThat(expressionTagsCounters.size()).isEqualTo(1); - assertThat(meterRegistry.find("counter666").meter().getId().getTag("tag666")).isEqualTo(AnalyticsConsumerConfiguration.UNAVAILABLE_TAG); - - Collection testExpTagsCounters = meterRegistry.find("counter666").tagKeys("test").counters(); - assertThat(testExpTagsCounters.size()).isEqualTo(1); - assertThat(meterRegistry.find("counter666").meter().getId().getTag("test")).isEqualTo("Bar"); - } -} diff --git a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/ExpressionCounterNameTests.java b/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/ExpressionCounterNameTests.java deleted file mode 100644 index 2cec7676..00000000 --- a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/ExpressionCounterNameTests.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import java.util.stream.IntStream; - -import org.junit.jupiter.api.Test; - -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ -@TestPropertySource(properties = { - "analytics.name-expression=payload" -}) -public class ExpressionCounterNameTests extends AnalyticsConsumerParentTest { - - @Test - void testCounterSink() { - IntStream.range(0, 13).forEach(i -> analyticsConsumer.accept(new GenericMessage("hello"))); - assertThat(meterRegistry.find("hello").counter().count()).isEqualTo(13.0); - } -} diff --git a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/FixedTagsTests.java b/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/FixedTagsTests.java deleted file mode 100644 index a10e8071..00000000 --- a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/FixedTagsTests.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import java.util.stream.IntStream; -import java.util.stream.StreamSupport; - -import io.micrometer.core.instrument.Meter; -import org.junit.jupiter.api.Test; - -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ -@TestPropertySource(properties = { - "analytics.name=counter666", - "analytics.tag.fixed.foo=bar", - "analytics.tag.fixed.gork=bork" -}) -public class FixedTagsTests extends AnalyticsConsumerParentTest { - - @Test - void testАnalyticsSink() { - 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); - - assertThat(counterMeter.getId().getTags().size()).isEqualTo(2); - assertThat(counterMeter.getId().getTag("foo")).isEqualTo("bar"); - assertThat(counterMeter.getId().getTag("gork")).isEqualTo("bork"); - } -} diff --git a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/GaugeWithAmountTest.java b/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/GaugeWithAmountTest.java deleted file mode 100644 index 3ad28445..00000000 --- a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/GaugeWithAmountTest.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import org.junit.jupiter.api.Test; - -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ -@TestPropertySource(properties = { - "analytics.meter-type=gauge", - "analytics.name=myGauge", - "analytics.tag.expression.foo='bar'", - "analytics.amount-expression=payload.length()" -}) -class GaugeWithAmountTest extends AnalyticsConsumerParentTest { - - @Test - void testАnalyticsSink() { - String messageSmall = "hello"; - 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)); - assertThat(meterRegistry.find("myGauge").gauge().value()).isEqualTo(size(messageMiddle)); - - String messageLarge = "hello world, hello people!"; - analyticsConsumer.accept(new GenericMessage(messageLarge)); - assertThat(meterRegistry.find("myGauge").gauge().value()).isEqualTo(size(messageLarge)); - - } - - private double size(String msg) { - return Long.valueOf(msg.length()).doubleValue(); - } -} diff --git a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/LiteralTagExpressionsTests.java b/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/LiteralTagExpressionsTests.java deleted file mode 100644 index 2b8410d9..00000000 --- a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/LiteralTagExpressionsTests.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import java.util.stream.IntStream; - -import io.micrometer.core.instrument.Counter; -import org.junit.jupiter.api.Test; - -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ -@TestPropertySource(properties = { - "analytics.name=counter666", - "analytics.tag.expression.foo='bar'", - "analytics.tag.expression.gork='bork'" -}) -public class LiteralTagExpressionsTests extends AnalyticsConsumerParentTest { - - @Test - void testCounterSink() { - - 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); - - Counter gorkCounter = meterRegistry.find("counter666").tag("gork", "bork").counter(); - assertThat(gorkCounter.count()).isEqualTo(13.0); - - assertThat(fooCounter.getId()).isEqualTo(gorkCounter.getId()); - } -} diff --git a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/NullTagsTests.java b/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/NullTagsTests.java deleted file mode 100644 index 40f40a0a..00000000 --- a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/NullTagsTests.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import java.util.Collection; - -import io.micrometer.core.instrument.Counter; -import org.junit.jupiter.api.Test; - -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ -@TestPropertySource(properties = { - "analytics.name=counter666", - "analytics.tag.fixed.foo=", - "analytics.tag.expression.tag666=#jsonPath(payload,'$..noField')", - "analytics.tag.expression.test=#jsonPath(payload,'$..test')" -}) -public class NullTagsTests extends AnalyticsConsumerParentTest { - - @Test - void testАnalyticsSink() { - - analyticsConsumer.accept(message("{\"test\": null}")); - - Collection fixedTagsCounters = meterRegistry.find("counter666").tagKeys("foo").counters(); - assertThat(fixedTagsCounters.size()).isEqualTo(0); - - Collection expressionTagsCounters = meterRegistry.find("counter666").tagKeys("tag666").counters(); - assertThat(expressionTagsCounters.size()).isEqualTo(1); - assertThat(meterRegistry.find("counter666").meter().getId().getTag("tag666")).isEqualTo(AnalyticsConsumerConfiguration.UNAVAILABLE_TAG); - - Collection testExpTagsCounters = meterRegistry.find("counter666").tagKeys("test").counters(); - assertThat(testExpTagsCounters.size()).isEqualTo(1); - assertThat(meterRegistry.find("counter666").meter().getId().getTag("test")).isEqualTo(AnalyticsConsumerConfiguration.UNAVAILABLE_TAG); - } -} diff --git a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/StockExchangeAnalyticsTests.java b/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/StockExchangeAnalyticsTests.java deleted file mode 100644 index c8a463c0..00000000 --- a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/analytics/StockExchangeAnalyticsTests.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.analytics; - -import java.io.IOException; -import java.util.Collection; - -import io.micrometer.core.instrument.Counter; -import org.junit.jupiter.api.Test; - -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.context.TestPropertySource; -import org.springframework.util.StreamUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Christian Tzolov - */ - -@TestPropertySource(properties = { - "analytics.meter-type=counter", - "analytics.name=stocks", - "analytics.tag.expression.symbol=#jsonPath(payload,'$.data.symbol')", - "analytics.tag.expression.exchange=#jsonPath(payload,'$.data.exchange')" -}) -public class StockExchangeAnalyticsTests extends AnalyticsConsumerParentTest { - - @Test - public void testCounter() throws IOException { - byte[] messageAppl = StreamUtils.copyToByteArray( - new DefaultResourceLoader().getResource("classpath:/data/stock_appl.json").getInputStream()); - - analyticsConsumer.accept(MessageBuilder.withPayload(messageAppl).build()); - analyticsConsumer.accept(MessageBuilder.withPayload(messageAppl).build()); - analyticsConsumer.accept(MessageBuilder.withPayload(messageAppl).build()); - - byte[] messageVmw = StreamUtils.copyToByteArray( - new DefaultResourceLoader().getResource("classpath:/data/stock_vmw.json").getInputStream()); - - analyticsConsumer.accept(MessageBuilder.withPayload(messageVmw).build()); - analyticsConsumer.accept(MessageBuilder.withPayload(messageVmw).build()); - - Collection counters = meterRegistry.find("stocks").counters(); - - assertThat(counters).hasSize(2); - - //Iterator itr = counters.iterator(); - // - //Counter applCounter = itr.next(); - //assertThat(applCounter.count()).isEqualTo(3); - //assertThat(applCounter.getId().getTags()).contains(Tag.of("symbol", "AAPL"), Tag.of("exchange", "XNAS")); - // - //Counter vmwCounter = itr.next(); - //assertThat(vmwCounter.count()).isEqualTo(2); - //assertThat(vmwCounter.getId().getTags()).contains(Tag.of("symbol", "VMW"), Tag.of("exchange", "NYSE")); - - } -} diff --git a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/demo/StockExchangeAnalyticsExample.java b/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/demo/StockExchangeAnalyticsExample.java deleted file mode 100644 index 2f74f52d..00000000 --- a/functions/consumer/analytics-consumer/src/test/java/org/springframework/cloud/fn/consumer/demo/StockExchangeAnalyticsExample.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.demo; - -import java.util.Random; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; -import java.util.function.Supplier; -import java.util.stream.Collectors; - -import io.micrometer.core.instrument.MeterRegistry; - -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.fn.consumer.analytics.AnalyticsConsumerConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; - -/** - * Sample Spring Boot Application that uses the analyticsConsumer to compute running stats from - * stock exchange messages. - * - * Counter configuration: - * - * --analytics.meter-type=counter - * --analytics.name=stocks - * --analytics.tag.expression.symbol=#jsonPath(payload,'$.data.symbol') - * --analytics.tag.expression.exchange=#jsonPath(payload,'$.data.exchange') - * - * - * Gauge configuration: - * - * --analytics.meter-type=gauge - * --analytics.name=stocks - * --analytics.tag.expression.symbol=#jsonPath(payload,'$.data.symbol') - * --analytics.tag.expression.exchange=#jsonPath(payload,'$.data.exchange') - * --analytics.amount-expression=#jsonPath(payload,'$.data.volume') - * - * - * Sample Wavefront configuration: - * - * --management.metrics.export.wavefront.enabled=true - * --management.metrics.export.wavefront.uri=YOUR_WAVEFRONT_SERVER_URI - * --management.metrics.export.wavefront.api-token=YOUR_API_TOKEN - * --management.metrics.export.wavefront.source=stock-exchange-demo - * - * - * @author Christian Tzolov - */ -@Import(AnalyticsConsumerConfiguration.class) -@SpringBootApplication -public class StockExchangeAnalyticsExample { - - public static void main(String[] args) { - SpringApplication.run(StockExchangeAnalyticsExample.class, args); - } - - @Bean - public CommandLineRunner commandLineRunner(Consumer> analyticsConsumer, - MeterRegistry meterRegistry, Supplier stockMessageGenerator) { - - // Run every second. - return args -> Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(() -> { - - String message = stockMessageGenerator.get(); - - // Submit new message using the stockMessageGenerator to generate random stock messages. - analyticsConsumer.accept(MessageBuilder.withPayload(message).build()); - - // Print current stock meters - System.out.println(meterRegistry.getMeters().stream() - .filter(meter -> meter.getId().getName().contains("stocks")) - .map(meter -> meter.getId().getType() + " | " + meter.getId() + " | " + meter.measure()) - .collect(Collectors.joining("\n")) + - "\n========================================================================="); - - }, 0, 1000, TimeUnit.MILLISECONDS); - } - - @Bean - public Supplier stockMessageGenerator() { - final Random random = new Random(); - final String[][] STOCKS = new String[][] { { "NASDAQ", "GOOGL" }, { "AMS", "TOM2" }, { "NYSE", "CLDR" }, - { "NYSE", "VMW" }, { "NYSE", "IBM" }, { "NASDAQ", "MSFT" }, { "NASDAQ", "AAPL" } }; - - return () -> { - int stockIndex = random.nextInt(STOCKS.length); - return "{\n" + - " \"data\": {\n" + - " \"symbol\": \"" + STOCKS[stockIndex][1] + "\",\n" + - " \"exchange\": \"" + STOCKS[stockIndex][0] + "\",\n" + - " \"open\": " + (1 + 10 * random.nextDouble()) + ",\n" + - " \"close\": " + (1 + 10 * random.nextDouble()) + ",\n" + - " \"volume\": " + (1000 + 100000 * random.nextDouble()) + "\n" + - " }\n" + - "}"; - }; - } -} - diff --git a/functions/consumer/analytics-consumer/src/test/resources/data/stock_appl.json b/functions/consumer/analytics-consumer/src/test/resources/data/stock_appl.json deleted file mode 100644 index 887a0adf..00000000 --- a/functions/consumer/analytics-consumer/src/test/resources/data/stock_appl.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "data": { - "date": "2020-05-21T00:00:00+0000", - "symbol": "AAPL", - "exchange": "XNAS", - "open": 318.66, - "high": 320.89, - "low": 315.87, - "close": 316.85, - "volume": 25672211.0 - } -} diff --git a/functions/consumer/analytics-consumer/src/test/resources/data/stock_vmw.json b/functions/consumer/analytics-consumer/src/test/resources/data/stock_vmw.json deleted file mode 100644 index 752d43e6..00000000 --- a/functions/consumer/analytics-consumer/src/test/resources/data/stock_vmw.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "data": { - "date": "2020-05-21T00:00:00+0000", - "symbol": "VMW", - "exchange": "NYSE", - "open": 160.16, - "high": 180.91, - "low": 165.87, - "close": 170.85, - "volume": 5672211.0 - } -} diff --git a/functions/consumer/cassandra-consumer/README.adoc b/functions/consumer/cassandra-consumer/README.adoc deleted file mode 100644 index fdf9886f..00000000 --- a/functions/consumer/cassandra-consumer/README.adoc +++ /dev/null @@ -1,32 +0,0 @@ -# Cassandra Consumer - -This module provides a Cassandra Consumer that can be reused and composed in other applications. -Internally it uses the `CassandraMessageHandler` from Spring Integration. -`CassandraConsumerFunction` is implemented as a `java.util.function.Function`. - -## Beans for injection - -You can import the `CassnadraConsumerConfiguration` in the application and then inject the following bean. - -`cassandraConsumerFunction` - -You can use `cassandraConsumerFunction` as a qualifier when injecting. - -Type for injection: `Function>` - -You can ignore the return value from the function as this is a consumer and simply will send the data to Cassandra. - -## Configuration Options - -All configuration properties are prefixed with either `cassandra` or `cassandra.cluster`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerProperties.java[CassandraConsumerProperties]. -See link:src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/CassandraClusterProperties.java[this] also. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/cassandra[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/main/applications/sink/cassandra-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a Cassandra sink. diff --git a/functions/consumer/cassandra-consumer/pom.xml b/functions/consumer/cassandra-consumer/pom.xml deleted file mode 100644 index c164751d..00000000 --- a/functions/consumer/cassandra-consumer/pom.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerConfiguration.java b/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerConfiguration.java deleted file mode 100644 index 2750c32a..00000000 --- a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerConfiguration.java +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra; - -import java.sql.Date; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; -import java.util.function.Function; - -import com.datastax.oss.driver.api.core.ConsistencyLevel; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.util.StdDateFormat; -import reactor.core.publisher.Mono; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.consumer.cassandra.cluster.CassandraAppClusterConfiguration; -import org.springframework.cloud.fn.consumer.cassandra.query.ColumnNameExtractor; -import org.springframework.cloud.fn.consumer.cassandra.query.InsertQueryColumnNameExtractor; -import org.springframework.cloud.fn.consumer.cassandra.query.UpdateQueryColumnNameExtractor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; -import org.springframework.data.cassandra.core.InsertOptions; -import org.springframework.data.cassandra.core.ReactiveCassandraOperations; -import org.springframework.data.cassandra.core.UpdateOptions; -import org.springframework.data.cassandra.core.WriteResult; -import org.springframework.data.cassandra.core.cql.WriteOptions; -import org.springframework.integration.JavaUtils; -import org.springframework.integration.cassandra.outbound.CassandraMessageHandler; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlowBuilder; -import org.springframework.integration.support.json.Jackson2JsonObjectMapper; -import org.springframework.integration.transformer.AbstractPayloadTransformer; -import org.springframework.messaging.MessageHandler; -import org.springframework.util.StringUtils; - -/** - * @author Artem Bilan - * @author Thomas Risberg - * @author Ashu Gairola - * @author Akos Ratku - */ -@AutoConfiguration -@EnableConfigurationProperties(CassandraConsumerProperties.class) -@Import(CassandraAppClusterConfiguration.class) -public class CassandraConsumerConfiguration { - - @Autowired - private CassandraConsumerProperties cassandraSinkProperties; - - @Bean - public IntegrationFlow cassandraConsumerFlow(MessageHandler cassandraSinkMessageHandler, - ObjectMapper objectMapper) { - - IntegrationFlowBuilder integrationFlowBuilder = IntegrationFlow.from(CassandraConsumerFunction.class); - String ingestQuery = this.cassandraSinkProperties.getIngestQuery(); - if (StringUtils.hasText(ingestQuery)) { - integrationFlowBuilder.transform( - new PayloadToMatrixTransformer(objectMapper, ingestQuery, - CassandraMessageHandler.Type.UPDATE == this.cassandraSinkProperties.getQueryType() - ? new UpdateQueryColumnNameExtractor() - : new InsertQueryColumnNameExtractor())); - } - return integrationFlowBuilder - .handle(cassandraSinkMessageHandler) - .get(); - } - - @Bean - public MessageHandler cassandraSinkMessageHandler(ReactiveCassandraOperations cassandraOperations) { - CassandraMessageHandler.Type queryType = - Optional.ofNullable(this.cassandraSinkProperties.getQueryType()) - .orElse(CassandraMessageHandler.Type.INSERT); - - CassandraMessageHandler cassandraMessageHandler = new CassandraMessageHandler(cassandraOperations, queryType); - cassandraMessageHandler.setProducesReply(true); - int ttl = this.cassandraSinkProperties.getTtl(); - ConsistencyLevel consistencyLevel = this.cassandraSinkProperties.getConsistencyLevel(); - if (consistencyLevel != null || ttl > 0) { - - WriteOptions.WriteOptionsBuilder writeOptionsBuilder = - switch (queryType) { - case INSERT -> InsertOptions.builder(); - case UPDATE -> UpdateOptions.builder(); - default -> WriteOptions.builder(); - }; - - JavaUtils.INSTANCE - .acceptIfNotNull(consistencyLevel, writeOptionsBuilder::consistencyLevel) - .acceptIfCondition(ttl > 0, ttl, writeOptionsBuilder::ttl); - - cassandraMessageHandler.setWriteOptions(writeOptionsBuilder.build()); - } - - JavaUtils.INSTANCE - .acceptIfHasText(this.cassandraSinkProperties.getIngestQuery(), cassandraMessageHandler::setIngestQuery) - .acceptIfNotNull(this.cassandraSinkProperties.getStatementExpression(), - cassandraMessageHandler::setStatementExpression); - - return cassandraMessageHandler; - } - - private static boolean isUuid(String uuid) { - if (uuid.length() == 36) { - String[] parts = uuid.split("-"); - if (parts.length == 5) { - return (parts[0].length() == 8) && (parts[1].length() == 4) && - (parts[2].length() == 4) && (parts[3].length() == 4) && - (parts[4].length() == 12); - } - } - return false; - } - - - private static class PayloadToMatrixTransformer extends AbstractPayloadTransformer>> { - - private final Jackson2JsonObjectMapper jsonObjectMapper; - - private final List columns = new LinkedList<>(); - - private final ISO8601StdDateFormat dateFormat = new ISO8601StdDateFormat(); - - PayloadToMatrixTransformer(ObjectMapper objectMapper, String query, ColumnNameExtractor columnNameExtractor) { - this.jsonObjectMapper = new Jackson2JsonObjectMapper(objectMapper); - this.columns.addAll(columnNameExtractor.extract(query)); - this.jsonObjectMapper.getObjectMapper() - .configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); - } - - @Override - @SuppressWarnings("unchecked") - protected List> transformPayload(Object payload) { - if (payload instanceof List) { - return (List>) payload; - } - else { - try { - List> model = this.jsonObjectMapper.fromJson(payload, List.class); - List> data = new ArrayList<>(model.size()); - for (Map entity : model) { - List row = new ArrayList<>(this.columns.size()); - for (String column : this.columns) { - Object value = entity.get(column); - if (value instanceof String string) { - if (this.dateFormat.looksLikeISO8601(string)) { - synchronized (this.dateFormat) { - value = new Date(this.dateFormat.parse(string).getTime()).toLocalDate(); - } - } - if (isUuid(string)) { - value = UUID.fromString(string); - } - } - row.add(value); - } - data.add(row); - } - return data; - } - catch (Exception ex) { - throw new IllegalArgumentException("Cannot parse json into matrix", ex); - } - } - } - - } - - /* - * We need this to provide visibility to the protected method. - */ - @SuppressWarnings("serial") - private static class ISO8601StdDateFormat extends StdDateFormat { - - @Override - protected boolean looksLikeISO8601(String dateStr) { - return super.looksLikeISO8601(dateStr); - } - - } - - interface CassandraConsumerFunction extends Function> { - - } - -} diff --git a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerProperties.java b/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerProperties.java deleted file mode 100644 index 13869726..00000000 --- a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerProperties.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2019-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra; - -import com.datastax.oss.driver.api.core.ConsistencyLevel; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.integration.cassandra.outbound.CassandraMessageHandler; - -/** - * @author Artem Bilan - * @author Thomas Risberg - */ -@ConfigurationProperties("cassandra") -public class CassandraConsumerProperties { - - /** - * Time-to-live option of WriteOptions. - */ - private int ttl; - - /** - * QueryType for Cassandra Sink. - */ - private CassandraMessageHandler.Type queryType; - - /** - * Ingest Cassandra query. - */ - private String ingestQuery; - - /** - * Expression in Cassandra query DSL style. - */ - private Expression statementExpression; - - /** - * The consistency level for write operation. - */ - private ConsistencyLevel consistencyLevel; - - public int getTtl() { - return this.ttl; - } - - public void setTtl(int ttl) { - this.ttl = ttl; - } - - public CassandraMessageHandler.Type getQueryType() { - return this.queryType; - } - - public void setQueryType(CassandraMessageHandler.Type queryType) { - this.queryType = queryType; - } - - public String getIngestQuery() { - return this.ingestQuery; - } - - public void setIngestQuery(String ingestQuery) { - this.ingestQuery = ingestQuery; - } - - public Expression getStatementExpression() { - return this.statementExpression; - } - - public void setStatementExpression(Expression statementExpression) { - this.statementExpression = statementExpression; - } - - public ConsistencyLevel getConsistencyLevel() { - return this.consistencyLevel; - } - - public void setConsistencyLevel(ConsistencyLevel consistencyLevel) { - this.consistencyLevel = consistencyLevel; - } - -} diff --git a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/CassandraAppClusterConfiguration.java b/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/CassandraAppClusterConfiguration.java deleted file mode 100644 index 89b5501a..00000000 --- a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/CassandraAppClusterConfiguration.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra.cluster; - -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.util.Arrays; -import java.util.Scanner; - -import com.datastax.oss.driver.api.core.CqlSession; -import com.datastax.oss.driver.api.core.CqlSessionBuilder; -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.BeanInitializationException; -import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.boot.autoconfigure.cassandra.CassandraProperties; -import org.springframework.boot.autoconfigure.cassandra.CqlSessionBuilderCustomizer; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.domain.EntityScanPackages; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.context.properties.PropertyMapper; -import org.springframework.boot.context.properties.bind.Binder; -import org.springframework.context.EnvironmentAware; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.DependsOn; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; -import org.springframework.context.annotation.Lazy; -import org.springframework.core.env.Environment; -import org.springframework.core.type.AnnotationMetadata; -import org.springframework.data.cassandra.config.CqlSessionFactoryBean; -import org.springframework.data.cassandra.core.ReactiveCassandraTemplate; -import org.springframework.data.cassandra.core.cql.ReactiveCqlOperations; -import org.springframework.data.cassandra.core.cql.generator.CreateKeyspaceCqlGenerator; -import org.springframework.data.cassandra.core.cql.keyspace.CreateKeyspaceSpecification; -import org.springframework.util.StringUtils; - -/** - * @author Artem Bilan - * @author Thomas Risberg - * @author Rob Hardt - */ -@Configuration -@EnableConfigurationProperties(CassandraClusterProperties.class) -@Import(CassandraAppClusterConfiguration.CassandraPackageRegistrar.class) -public class CassandraAppClusterConfiguration { - - @Bean - public CqlSessionBuilderCustomizer clusterBuilderCustomizer( - CassandraClusterProperties cassandraClusterProperties) { - - PropertyMapper map = PropertyMapper.get(); - return builder -> - map.from(cassandraClusterProperties::isSkipSslValidation) - .whenTrue() - .toCall(() -> { - try { - builder.withSslContext(TrustAllSSLContextFactory.getSslContext()); - } - catch (NoSuchAlgorithmException | KeyManagementException ex) { - throw new BeanInitializationException( - "Unable to configure a Cassandra cluster using SSL.", ex); - } - - }); - } - - @Bean - @ConditionalOnProperty("cassandra.cluster.create-keyspace") - public Object keyspaceCreator(CassandraProperties cassandraProperties, CqlSessionBuilder cqlSessionBuilder) { - CreateKeyspaceSpecification createKeyspaceSpecification = - CreateKeyspaceSpecification - .createKeyspace(cassandraProperties.getKeyspaceName()) - .withSimpleReplication() - .ifNotExists(); - - String createKeySpaceQuery = new CreateKeyspaceCqlGenerator(createKeyspaceSpecification).toCql(); - try (var systemSession = cqlSessionBuilder.withKeyspace(CqlSessionFactoryBean.CASSANDRA_SYSTEM_SESSION).build()) { - systemSession.execute(createKeySpaceQuery); - } - - return null; - } - - @Bean - @Lazy - @DependsOn("keyspaceCreator") - public CqlSession cassandraSession(CqlSessionBuilder cqlSessionBuilder) { - return cqlSessionBuilder.build(); - } - - - @Bean - @ConditionalOnProperty("cassandra.cluster.init-script") - public Object keyspaceInitializer(CassandraClusterProperties cassandraClusterProperties, - ReactiveCassandraTemplate reactiveCassandraTemplate) throws IOException { - - String scripts = - new Scanner(cassandraClusterProperties.getInitScript().getInputStream(), - StandardCharsets.UTF_8) - .useDelimiter("\\A") - .next(); - - ReactiveCqlOperations reactiveCqlOperations = - reactiveCassandraTemplate.getReactiveCqlOperations(); - - Flux.fromArray(StringUtils.delimitedListToStringArray(scripts, ";", "\r\n\f")) - .filter(StringUtils::hasText) // an empty String after the last ';' - .concatMap(script -> reactiveCqlOperations.execute(script + ";")) - .blockLast(); - - return null; - - } - - static class CassandraPackageRegistrar implements ImportBeanDefinitionRegistrar, EnvironmentAware { - - private Environment environment; - - @Override - public void setEnvironment(Environment environment) { - this.environment = environment; - } - - @Override - public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, - BeanDefinitionRegistry registry) { - - Binder.get(this.environment) - .bind("cassandra.cluster.entity-base-packages", String[].class) - .map(Arrays::asList) - .ifBound(packagesToScan -> EntityScanPackages.register(registry, packagesToScan)); - } - - } - -} diff --git a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/CassandraClusterProperties.java b/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/CassandraClusterProperties.java deleted file mode 100644 index 0d2f46aa..00000000 --- a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/CassandraClusterProperties.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra.cluster; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.core.io.Resource; - -/** - * Common properties for the cassandra modules. - * - * @author Artem Bilan - * @author Thomas Risberg - * @author Rob Hardt - */ -@ConfigurationProperties("cassandra.cluster") -public class CassandraClusterProperties { - - /** - * Flag to create (or not) keyspace on application startup. - */ - private boolean createKeyspace; - - /** - * Resource with CQL scripts (delimited by ';') to initialize keyspace schema. - */ - private Resource initScript; - - /** - * Flag to validate the Servers' SSL certs. - */ - private boolean skipSslValidation; - - /** - * Base packages to scan for entities annotated with Table annotations. - */ - private String[] entityBasePackages = { }; - - - public void setCreateKeyspace(boolean createKeyspace) { - this.createKeyspace = createKeyspace; - } - - public void setInitScript(Resource initScript) { - this.initScript = initScript; - } - - public void setSkipSslValidation(boolean skipSslValidation) { - this.skipSslValidation = skipSslValidation; - } - - public boolean isCreateKeyspace() { - return this.createKeyspace; - } - - public Resource getInitScript() { - return this.initScript; - } - - public boolean isSkipSslValidation() { - return this.skipSslValidation; - } - - public String[] getEntityBasePackages() { - return this.entityBasePackages; - } - - public void setEntityBasePackages(String[] entityBasePackages) { - this.entityBasePackages = entityBasePackages; - } - -} diff --git a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/TrustAllSSLContextFactory.java b/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/TrustAllSSLContextFactory.java deleted file mode 100644 index 5987b88b..00000000 --- a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/TrustAllSSLContextFactory.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2019-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra.cluster; - -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.security.cert.X509Certificate; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - - -/** - * Helper to provide an SSL Context that does not validate - * certificates presented in the SSL handshake. - * - * The usual caveats apply. - * - * @author Rob Hardt - * @author Artem Bilan - */ -final class TrustAllSSLContextFactory { - - private TrustAllSSLContextFactory() { - - } - - static SSLContext getSslContext() throws NoSuchAlgorithmException, KeyManagementException { - - TrustManager[] trustAllCerts = new TrustManager[] { - new X509TrustManager() { - - @Override - public X509Certificate[] getAcceptedIssuers() { - return new X509Certificate[0]; - } - - @Override - public void checkClientTrusted(X509Certificate[] certs, String authType) { - } - - @Override - public void checkServerTrusted(X509Certificate[] certs, String authType) { - } - - } - }; - - SSLContext sc = SSLContext.getInstance("SSL"); - sc.init(null, trustAllCerts, new SecureRandom()); - return sc; - } - -} diff --git a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/ColumnNameExtractor.java b/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/ColumnNameExtractor.java deleted file mode 100644 index 92bb70b9..00000000 --- a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/ColumnNameExtractor.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2017-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra.query; - -import java.util.List; - -/** - * @author Akos Ratku - * @author Artem Bilan - */ -@FunctionalInterface -public interface ColumnNameExtractor { - - List extract(String query); - -} diff --git a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/InsertQueryColumnNameExtractor.java b/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/InsertQueryColumnNameExtractor.java deleted file mode 100644 index befdc6ca..00000000 --- a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/InsertQueryColumnNameExtractor.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2017-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra.query; - -import java.util.LinkedList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.springframework.util.StringUtils; - -/** - * @author Akos Ratku - * @author Artem Bilan - */ -public class InsertQueryColumnNameExtractor implements ColumnNameExtractor { - - private static final Pattern PATTERN = Pattern.compile(".+\\((.+)\\).+(?:values\\s*\\((.+)\\))"); - - @Override - public List extract(String query) { - List extractedColumns = new LinkedList<>(); - Matcher matcher = PATTERN.matcher(query); - if (matcher.matches()) { - String[] columns = StringUtils.delimitedListToStringArray(matcher.group(1), ",", " "); - String[] params = StringUtils.delimitedListToStringArray(matcher.group(2), ",", " "); - for (int i = 0; i < columns.length; i++) { - String param = params[i]; - if (param.equals("?")) { - extractedColumns.add(columns[i]); - } - else if (param.startsWith(":")) { - extractedColumns.add(param.substring(1)); - } - } - } - else { - throw new IllegalArgumentException("Invalid CQL insert query syntax: " + query); - } - return extractedColumns; - } - -} diff --git a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/UpdateQueryColumnNameExtractor.java b/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/UpdateQueryColumnNameExtractor.java deleted file mode 100644 index 7352f961..00000000 --- a/functions/consumer/cassandra-consumer/src/main/java/org/springframework/cloud/fn/consumer/cassandra/query/UpdateQueryColumnNameExtractor.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2017-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra.query; - -import java.util.LinkedList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.springframework.util.StringUtils; - -/** - * @author Akos Ratku - * @author Artem Bilan - */ -public class UpdateQueryColumnNameExtractor implements ColumnNameExtractor { - - private static final Pattern PATTERN = Pattern.compile("(?i)(?<=set)(.*)(?=where)where(.*)"); - - @Override - public List extract(String query) { - List extractedColumns = new LinkedList<>(); - Matcher matcher = PATTERN.matcher(query); - if (matcher.find()) { - String[] settings = StringUtils.delimitedListToStringArray(matcher.group(1), ",", " "); - String[] where = StringUtils.delimitedListToStringArray(matcher.group(2), ",", " "); - readPairs(extractedColumns, settings); - readPairs(extractedColumns, where); - } - else { - throw new IllegalArgumentException("Invalid CQL update query syntax: " + query); - } - return extractedColumns; - } - - protected void readPairs(List extractedColumns, String[] settings) { - for (String setting : settings) { - String[] columnValuePair = StringUtils.delimitedListToStringArray(setting, "=", " "); - if (columnValuePair[1].startsWith(":") || columnValuePair[1].equals("?")) { - extractedColumns.add(columnValuePair[0]); - } - } - } - -} diff --git a/functions/consumer/cassandra-consumer/src/main/resources/application.properties b/functions/consumer/cassandra-consumer/src/main/resources/application.properties deleted file mode 100644 index 8b137891..00000000 --- a/functions/consumer/cassandra-consumer/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerApplicationTests.java b/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerApplicationTests.java deleted file mode 100644 index 9ef3b810..00000000 --- a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerApplicationTests.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra; - -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; -import java.util.function.Function; - -import org.junit.jupiter.api.AfterEach; -import reactor.core.publisher.Mono; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.fn.consumer.cassandra.domain.Book; -import org.springframework.context.annotation.Import; -import org.springframework.data.cassandra.core.CassandraOperations; -import org.springframework.data.cassandra.core.WriteResult; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; - -/** - * @author Artem Bilan - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { - "spring.cassandra.keyspace-name=" + CassandraConsumerApplicationTests.CASSANDRA_KEYSPACE, - "cassandra.cluster.createKeyspace=true" }) -@DirtiesContext -abstract class CassandraConsumerApplicationTests implements CassandraContainerTest { - - static final String CASSANDRA_KEYSPACE = "test"; - - @Autowired - protected CassandraOperations cassandraTemplate; - - @Autowired - protected Function> cassandraConsumer; - - - @DynamicPropertySource - static void registerConfigurationProperties(DynamicPropertyRegistry registry) { - registry.add("spring.cassandra.localDatacenter", () -> CASSANDRA_CONTAINER.getLocalDatacenter()); - registry.add("spring.cassandra.contactPoints", () -> - Optional.of(CASSANDRA_CONTAINER.getContactPoint()) - .map(contactPoint -> contactPoint.getAddress().getHostAddress() + ':' + contactPoint.getPort()) - .get()); - } - - @AfterEach - void tearDown() { - this.cassandraTemplate.truncate(Book.class); - } - - protected static List getBookList(int numBooks) { - - List books = new ArrayList<>(); - for (int i = 0; i < numBooks; i++) { - books.add( - new Book( - UUID.randomUUID(), - "Spring Cloud Data Flow Guide", - "SCDF Guru", - i * 10 + 5, - LocalDate.now(), - true)); - } - - return books; - } - - @SpringBootConfiguration - @EnableAutoConfiguration - @Import(CassandraConsumerConfiguration.class) - static class CassandraConsumerTestApplication { - - } - -} diff --git a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraContainerTest.java b/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraContainerTest.java deleted file mode 100644 index 2a99ea7e..00000000 --- a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraContainerTest.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2022-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra; - -import org.junit.jupiter.api.BeforeAll; -import org.testcontainers.containers.CassandraContainer; -import org.testcontainers.junit.jupiter.Testcontainers; - -/** - * The base contract for JUnit tests based on the container for Apache Cassandra. - * The Testcontainers 'reuse' option must be disabled,so, Ryuk container is started - * and will clean all the containers up from this test suite after JVM exit. - * Since the MqSQL container instance is shared via static property, it is going to be - * started only once per JVM, therefore the target Docker container is reused automatically. - * - * @author Artem Bilan - * - * @since 6.0 - */ -@Testcontainers(disabledWithoutDocker = true) -public interface CassandraContainerTest { - - CassandraContainer CASSANDRA_CONTAINER = new CassandraContainer<>("cassandra:4.1"); - - @BeforeAll - static void startContainer() { - System.setProperty("datastax-java-driver.basic.request.timeout", "10 seconds"); - CASSANDRA_CONTAINER.start(); - } - -} diff --git a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraEntityInsertTests.java b/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraEntityInsertTests.java deleted file mode 100644 index f2b329c7..00000000 --- a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraEntityInsertTests.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra; - -import java.time.LocalDate; -import java.util.UUID; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Mono; -import reactor.test.StepVerifier; - -import org.springframework.cloud.fn.consumer.cassandra.domain.Book; -import org.springframework.data.cassandra.core.WriteResult; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Artem Bilan - */ -@TestPropertySource(properties = { - "spring.cassandra.schema-action=RECREATE", - "cassandra.cluster.entity-base-packages=org.springframework.cloud.fn.consumer.cassandra.domain" }) -class CassandraEntityInsertTests extends CassandraConsumerApplicationTests { - - @Test - void testInsert() { - Book book = - new Book( - UUID.randomUUID(), - "Spring Integration Cassandra", - "Cassandra Guru", - 521, - LocalDate.now(), - true); - - Mono result = this.cassandraConsumer.apply(book); - - StepVerifier.create(result) - .expectNextCount(1) - .then(() -> - assertThat(this.cassandraTemplate.query(Book.class) - .count()) - .isEqualTo(1)) - .verifyComplete(); - } - -} diff --git a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestInsertTests.java b/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestInsertTests.java deleted file mode 100644 index 57643b9e..00000000 --- a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestInsertTests.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra; - -import java.util.List; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Mono; -import reactor.test.StepVerifier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.fn.consumer.cassandra.domain.Book; -import org.springframework.data.cassandra.core.WriteResult; -import org.springframework.integration.support.json.Jackson2JsonObjectMapper; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Artem Bilan - */ -@TestPropertySource(properties = { - "cassandra.cluster.init-script=init-db.cql", - "cassandra.ingest-query=" + - "insert into book (isbn, title, author, pages, saleDate, inStock) values (?, ?, ?, ?, ?, ?)" }) -class CassandraIngestInsertTests extends CassandraConsumerApplicationTests { - - @Test - void testIngestQuery(@Autowired ObjectMapper objectMapper) throws Exception { - List books = getBookList(5); - - Jackson2JsonObjectMapper mapper = new Jackson2JsonObjectMapper(objectMapper); - - Mono result = - this.cassandraConsumer.apply(mapper.toJson(books)); - - StepVerifier.create(result) - .expectNextCount(1) - .then(() -> - assertThat(this.cassandraTemplate.query(Book.class) - .count()) - .isEqualTo(5)) - .verifyComplete(); - } - -} diff --git a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestNamedParamsTests.java b/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestNamedParamsTests.java deleted file mode 100644 index 63b9bd57..00000000 --- a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestNamedParamsTests.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra; - -import java.util.List; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Mono; -import reactor.test.StepVerifier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.fn.consumer.cassandra.domain.Book; -import org.springframework.data.cassandra.core.WriteResult; -import org.springframework.integration.support.json.Jackson2JsonObjectMapper; -import org.springframework.test.context.TestPropertySource; -import org.springframework.util.StringUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Artem Bilan - */ -@TestPropertySource(properties = { - "cassandra.cluster.init-script=init-db.cql", - "cassandra.ingest-query=" + - "insert into book (isbn, title, author, pages, saleDate, inStock) " + - "values (:myIsbn, :myTitle, :myAuthor, ?, ?, ?)" }) -class CassandraIngestNamedParamsTests extends CassandraConsumerApplicationTests { - - @Test - void testIngestQuery(@Autowired ObjectMapper objectMapper) throws Exception { - List books = getBookList(5); - - Jackson2JsonObjectMapper mapper = new Jackson2JsonObjectMapper(objectMapper); - - String booksJsonWithNamedParams = mapper.toJson(books); - booksJsonWithNamedParams = StringUtils.replace(booksJsonWithNamedParams, "isbn", "myIsbn"); - booksJsonWithNamedParams = StringUtils.replace(booksJsonWithNamedParams, "title", "myTitle"); - booksJsonWithNamedParams = StringUtils.replace(booksJsonWithNamedParams, "author", "myAuthor"); - - Mono result = - this.cassandraConsumer.apply(booksJsonWithNamedParams); - - StepVerifier.create(result) - .expectNextCount(1) - .then(() -> - assertThat(this.cassandraTemplate.query(Book.class) - .count()) - .isEqualTo(5)) - .verifyComplete(); - } - -} diff --git a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestUpdateTests.java b/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestUpdateTests.java deleted file mode 100644 index 8d5156ff..00000000 --- a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraIngestUpdateTests.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra; - -import java.util.List; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Mono; -import reactor.test.StepVerifier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.fn.consumer.cassandra.domain.Book; -import org.springframework.data.cassandra.core.WriteResult; -import org.springframework.integration.support.json.Jackson2JsonObjectMapper; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Artem Bilan - */ -@TestPropertySource(properties = { - "cassandra.cluster.init-script=init-db.cql", - "cassandra.ingest-query=" + - "update book set inStock = :inStock, author = :author, pages = :pages, " + - "saleDate = :saleDate, title = :title where isbn = :isbn", - "cassandra.queryType=UPDATE" }) -class CassandraIngestUpdateTests extends CassandraConsumerApplicationTests { - - @Test - void testIngestQuery(@Autowired ObjectMapper objectMapper) throws Exception { - List books = getBookList(5); - - Jackson2JsonObjectMapper mapper = new Jackson2JsonObjectMapper(objectMapper); - - Mono result = - this.cassandraConsumer.apply(mapper.toJson(books)); - - StepVerifier.create(result) - .expectNextCount(1) - .then(() -> - assertThat(this.cassandraTemplate.query(Book.class) - .count()) - .isEqualTo(5)) - .verifyComplete(); - } - -} diff --git a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/domain/Book.java b/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/domain/Book.java deleted file mode 100644 index 7ac253fe..00000000 --- a/functions/consumer/cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/domain/Book.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.cassandra.domain; - -import java.time.LocalDate; -import java.util.UUID; - -import org.springframework.data.cassandra.core.mapping.Indexed; -import org.springframework.data.cassandra.core.mapping.PrimaryKey; -import org.springframework.data.cassandra.core.mapping.Table; - -/** - * Test POJO. - * - * @author David Webb - * @author Artem Bilan - */ -@Table("book") -public record Book( - @PrimaryKey UUID isbn, - String title, - @Indexed String author, - Integer pages, - LocalDate saleDate, - Boolean isInStock) { - -} diff --git a/functions/consumer/cassandra-consumer/src/test/resources/init-db.cql b/functions/consumer/cassandra-consumer/src/test/resources/init-db.cql deleted file mode 100644 index 6c1397dc..00000000 --- a/functions/consumer/cassandra-consumer/src/test/resources/init-db.cql +++ /dev/null @@ -1,10 +0,0 @@ -DROP TABLE IF EXISTS book; - -CREATE TABLE book ( - isbn uuid PRIMARY KEY, - author text, - instock boolean, - pages int, - saledate date, - title text -); diff --git a/functions/consumer/elasticsearch-consumer/README.adoc b/functions/consumer/elasticsearch-consumer/README.adoc deleted file mode 100644 index 8c6a8fa5..00000000 --- a/functions/consumer/elasticsearch-consumer/README.adoc +++ /dev/null @@ -1,35 +0,0 @@ -# Elasticsearch Consumer - -A consumer that allows you to index document records into Elasticsearch. - -## Beans for injection - -You can import `ElasticsearchConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> elasticsearchConsumer` - -After injecting this `Consumer` bean in the application, it's `accept` method can be called programmatically to index Elasticsearch documents. -This consumer only supports indexing documents with JSON formats. -The JSON document can be provided using one of the following methods. - -* JSON string -* `java.util.Map` -* `XContentBuilder` provided by Elasticsearch - -## Configuration Options - -All configuration properties are prefixed with `elasticsearch.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerConfiguration.java[ElasticsearchConsumerProperties]. - -In addition to these options, the consumer makes use of Spring Boot autoconfiguration for Elasticsearch. -Therefore you need to use https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/ElasticsearchRestClientProperties.java[these properties] for configuration Elasticsearch. -See this https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-elasticsearch[section] from Spring Boot docs. - -## Examples - -See this link:src/test/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerApplicationTests.java[test suite] for seeing the Elasticsearch consumer in action. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/elasticsearch-sink/README.adoc[README] where this consumer is used for creating an Elasticsearch sink. \ No newline at end of file diff --git a/functions/consumer/elasticsearch-consumer/pom.xml b/functions/consumer/elasticsearch-consumer/pom.xml deleted file mode 100644 index 829b8791..00000000 --- a/functions/consumer/elasticsearch-consumer/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/elasticsearch-consumer/src/main/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerConfiguration.java b/functions/consumer/elasticsearch-consumer/src/main/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerConfiguration.java deleted file mode 100644 index 636a22a6..00000000 --- a/functions/consumer/elasticsearch-consumer/src/main/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerConfiguration.java +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright 2020-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.elasticsearch; - -import java.io.IOException; -import java.io.StringReader; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.concurrent.CompletableFuture; -import java.util.function.Consumer; -import java.util.stream.StreamSupport; - -import co.elastic.clients.elasticsearch.ElasticsearchAsyncClient; -import co.elastic.clients.elasticsearch.ElasticsearchClient; -import co.elastic.clients.elasticsearch._types.Time; -import co.elastic.clients.elasticsearch.core.BulkRequest; -import co.elastic.clients.elasticsearch.core.BulkResponse; -import co.elastic.clients.elasticsearch.core.IndexRequest; -import co.elastic.clients.elasticsearch.core.IndexResponse; -import co.elastic.clients.elasticsearch.core.bulk.BulkResponseItem; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.aggregator.AbstractAggregatingMessageGroupProcessor; -import org.springframework.integration.aggregator.MessageCountReleaseStrategy; -import org.springframework.integration.config.AggregatorFactoryBean; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlowBuilder; -import org.springframework.integration.expression.ValueExpression; -import org.springframework.integration.store.MessageGroup; -import org.springframework.integration.store.MessageGroupStore; -import org.springframework.integration.store.SimpleMessageStore; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHandler; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; - -/** - * @author Soby Chacko - * @author Andrea Montemaggio - * @author Corneil du Plessis - */ -@Configuration -@EnableConfigurationProperties(ElasticsearchConsumerProperties.class) -public class ElasticsearchConsumerConfiguration { - - /** - * Message header for the Index id. - */ - public static final String INDEX_ID_HEADER = "INDEX_ID"; - - /** - * Message header for the Index name. - */ - public static final String INDEX_NAME_HEADER = "INDEX_NAME"; - - private static final Log logger = LogFactory.getLog(ElasticsearchConsumerConfiguration.class); - - @Bean - FactoryBean aggregator(MessageGroupStore messageGroupStore, ElasticsearchConsumerProperties consumerProperties) { - AggregatorFactoryBean aggregatorFactoryBean = new AggregatorFactoryBean(); - aggregatorFactoryBean.setCorrelationStrategy(message -> ""); - aggregatorFactoryBean.setReleaseStrategy(new MessageCountReleaseStrategy(consumerProperties.getBatchSize())); - if (consumerProperties.getGroupTimeout() >= 0) { - aggregatorFactoryBean.setGroupTimeoutExpression(new ValueExpression<>(consumerProperties.getGroupTimeout())); - } - aggregatorFactoryBean.setMessageStore(messageGroupStore); - - // Currently, there is no way to customize the splitting behavior of an aggregator receiving - // a Collection> from the configured MessageGroupProcessor. - // Thus, fooling the aggregator with a wrapper of Message is just a straightforward way to preserve the - // individual message headers and release an entire batch to downstream indexing handler. - aggregatorFactoryBean.setProcessorBean(new AbstractAggregatingMessageGroupProcessor() { - @Override - protected Object aggregatePayloads(MessageGroup group, Map defaultHeaders) { - Collection> messages = group.getMessages(); - Assert.notEmpty(messages, this.getClass().getSimpleName() + " cannot process empty message groups"); - List payloads = new ArrayList(messages.size()); - for (Message message : messages) { - payloads.add(new MessageWrapper(message)); - } - return payloads; - } - }); - aggregatorFactoryBean.setExpireGroupsUponCompletion(true); - aggregatorFactoryBean.setSendPartialResultOnExpiry(true); - - return aggregatorFactoryBean; - } - - @Bean - MessageGroupStore messageGroupStore() { - SimpleMessageStore messageGroupStore = new SimpleMessageStore(); - messageGroupStore.setTimeoutOnIdle(true); - messageGroupStore.setCopyOnGet(false); - return messageGroupStore; - } - - @Bean - IntegrationFlow elasticsearchConsumerFlow( - @Qualifier("aggregator") MessageHandler aggregator, - ElasticsearchConsumerProperties properties, - @Qualifier("indexingHandler") MessageHandler indexingHandler - ) { - - final IntegrationFlowBuilder builder = - IntegrationFlow.from(MessageConsumer.class, gateway -> gateway.beanName("elasticsearchConsumer")); - if (properties.getBatchSize() > 1) { - builder.handle(aggregator); - } - return builder.handle(indexingHandler).get(); - } - - @Bean - public MessageHandler indexingHandler( - ElasticsearchClient elasticsearchClient, - ElasticsearchConsumerProperties consumerProperties - ) { - return message -> { - if (message.getPayload() instanceof Iterable) { - BulkRequest.Builder builder = new BulkRequest.Builder(); - StreamSupport.stream(((Iterable) message.getPayload()).spliterator(), false) - .filter(MessageWrapper.class::isInstance) - .map(itemPayload -> ((MessageWrapper) itemPayload).getMessage()) - .map(m -> buildIndexRequest(m, consumerProperties)) - .forEach(indexRequest -> - builder.operations(builder1 -> builder1.index(idx -> idx.index(indexRequest.index()).id(indexRequest.id()).document(indexRequest.document()))) - ); - - index(elasticsearchClient, builder.build(), consumerProperties.isAsync()); - } - else { - IndexRequest request = buildIndexRequest(message, consumerProperties); - index(elasticsearchClient, request, consumerProperties.isAsync()); - } - }; - } - - private IndexRequest buildIndexRequest(Message message, ElasticsearchConsumerProperties consumerProperties) { - IndexRequest.Builder requestBuilder = new IndexRequest.Builder(); - - String index = consumerProperties.getIndex(); - if (message.getHeaders().containsKey(INDEX_NAME_HEADER)) { - index = (String) message.getHeaders().get(INDEX_NAME_HEADER); - } - requestBuilder.index(index); - - String id = ""; - if (message.getHeaders().containsKey(INDEX_ID_HEADER)) { - id = (String) message.getHeaders().get(INDEX_ID_HEADER); - } - else if (consumerProperties.getId() != null) { - id = consumerProperties.getId().getValue(message, String.class); - } - requestBuilder.id(id); - - if (message.getPayload() instanceof String) { - requestBuilder.withJson(new StringReader((String) message.getPayload())); - } - else if (message.getPayload() instanceof Map) { - requestBuilder.document(message.getPayload()); - } - - if (StringUtils.hasText(consumerProperties.getRouting())) { - requestBuilder.routing(consumerProperties.getRouting()); - } - if (consumerProperties.getTimeoutSeconds() > 0) { - requestBuilder.timeout(new Time.Builder().time(consumerProperties.getTimeoutSeconds() + "s").build()); - } - - return requestBuilder.build(); - } - - private void index(ElasticsearchClient elasticsearchClient, BulkRequest request, boolean isAsync) { - if (isAsync) { - ElasticsearchAsyncClient elasticsearchAsyncClient = new ElasticsearchAsyncClient(elasticsearchClient._transport()); - CompletableFuture responseCompletableFuture = elasticsearchAsyncClient.bulk(request); - responseCompletableFuture.whenComplete((bulkResponse, x) -> { - if (x != null) { - throw new IllegalStateException("Error occurred while performing bulk index operation: " + x.getMessage(), x); - } - else { - handleBulkResponse(bulkResponse); - } - }); - - } - else { - try { - BulkResponse bulkResponse = elasticsearchClient.bulk(request); - handleBulkResponse(bulkResponse); - } - catch (IOException e) { - throw new IllegalStateException("Error occurred while performing bulk index operation: " + e.getMessage(), e); - } - } - } - - private void index(ElasticsearchClient elasticsearchClient, IndexRequest request, boolean isAsync) { - if (isAsync) { - ElasticsearchAsyncClient elasticsearchAsyncClient = new ElasticsearchAsyncClient(elasticsearchClient._transport()); - CompletableFuture responseCompletableFuture = elasticsearchAsyncClient.index(request); - responseCompletableFuture.whenComplete((indexResponse, x) -> { - if (x != null) { - throw new IllegalStateException("Error occurred while indexing document: " + x.getMessage(), x); - } - else { - handleResponse(indexResponse); - } - }); - } - else { - try { - IndexResponse response = elasticsearchClient.index(request); - handleResponse(response); - } - catch (IOException e) { - throw new IllegalStateException("Error occurred while indexing document: " + e.getMessage(), e); - } - } - } - - private void handleBulkResponse(BulkResponse response) { - if (logger.isDebugEnabled() || response.errors()) { - for (BulkResponseItem itemResponse : response.items()) { - if (itemResponse.error() != null) { - if (logger.isDebugEnabled()) { - logger.debug("itemResponse.error=" + itemResponse.error()); - } - logger.error(String.format("Index operation [id=%s, index=%s] failed: %s", - itemResponse.id(), itemResponse.index(), itemResponse.error().toString()) - ); - } - else { - var r = itemResponse.get(); - if (r != null) { - if (logger.isDebugEnabled()) { - logger.debug("itemResponse:" + r); - } - logger.debug(String.format("Index operation [id=%s, index=%s] succeeded: document [id=%s, version=%s] was written on shard %s.", - itemResponse.id(), itemResponse.index(), r.source().get("id"), r.source().get("version"), r.source().get("shardId")) - ); - } - else { - logger.debug(String.format("Index operation [id=%s, index=%s] succeeded", itemResponse.id(), itemResponse.index())); - } - } - } - } - - if (response.errors()) { - String error = response.items() - .stream() - .map(bulkResponseItem -> bulkResponseItem.error() != null ? bulkResponseItem.error().toString() : "") - .reduce((errorCause, errorCause2) -> errorCause != null ? errorCause + " : " + errorCause2 : errorCause2) - .orElseGet(response::toString); - throw new IllegalStateException("Bulk indexing operation completed with failures: " + error); - } - } - - private void handleResponse(IndexResponse response) { - logger.debug(String.format("Index operation [index=%s] succeeded: document [id=%s, version=%d] was written on shard %s.", - response.index(), response.id(), response.version(), response.shards().toString()) - ); - } - - static class MessageWrapper { - private final Message message; - - MessageWrapper(Message message) { - this.message = message; - } - - public Message getMessage() { - return message; - } - } - - private interface MessageConsumer extends Consumer> { - - } - -} diff --git a/functions/consumer/elasticsearch-consumer/src/main/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerProperties.java b/functions/consumer/elasticsearch-consumer/src/main/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerProperties.java deleted file mode 100644 index a6d7badc..00000000 --- a/functions/consumer/elasticsearch-consumer/src/main/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerProperties.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2020-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.elasticsearch; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; - -/** - * @author Soby Chacko - * @author Andrea Montemaggio - */ -@ConfigurationProperties("elasticsearch.consumer") -public class ElasticsearchConsumerProperties { - - /** - * The id of the document to index. - * If set, the INDEX_ID header value overrides this property on a per message basis. - */ - Expression id; - - /** - * Name of the index. - * If set, the INDEX_NAME header value overrides this property on a per message basis. - */ - String index; - - /** - * Indicates the shard to route to. - * If not provided, Elasticsearch will default to a hash of the document id. - */ - String routing; - - /** - * Timeout for the shard to be available. - * If not set, it defaults to 1 minute set by the Elasticsearch client. - */ - long timeoutSeconds; - - /** - * Indicates whether the indexing operation is async or not. - * By default indexing is done synchronously. - */ - boolean async; - - /** - * Number of items to index for each request. It defaults to 1. - * For values greater than 1 bulk indexing API will be used. - */ - int batchSize = 1; - - /** - * Timeout in milliseconds after which message group is flushed when bulk indexing is active. - * It defaults to -1, meaning no automatic flush of idle message groups occurs. - */ - long groupTimeout = -1L; - - public Expression getId() { - return id; - } - - public void setId(Expression id) { - this.id = id; - } - - public String getIndex() { - return index; - } - - public void setIndex(String index) { - this.index = index; - } - - public String getRouting() { - return routing; - } - - public void setRouting(String routing) { - this.routing = routing; - } - - public long getTimeoutSeconds() { - return timeoutSeconds; - } - - public void setTimeoutSeconds(long timeoutSeconds) { - this.timeoutSeconds = timeoutSeconds; - } - - public boolean isAsync() { - return async; - } - - public void setAsync(boolean async) { - this.async = async; - } - - public int getBatchSize() { - return batchSize; - } - - public void setBatchSize(int batchSize) { - this.batchSize = batchSize; - } - - public long getGroupTimeout() { - return groupTimeout; - } - - public void setGroupTimeout(long groupTimeout) { - this.groupTimeout = groupTimeout; - } -} diff --git a/functions/consumer/elasticsearch-consumer/src/test/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerApplicationTests.java b/functions/consumer/elasticsearch-consumer/src/test/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerApplicationTests.java deleted file mode 100644 index 1ca21ad7..00000000 --- a/functions/consumer/elasticsearch-consumer/src/test/java/org/springframework/cloud/fn/consumer/elasticsearch/ElasticsearchConsumerApplicationTests.java +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Copyright 2020-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.elasticsearch; - -import java.time.Duration; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; -import java.util.function.Consumer; - -import co.elastic.clients.elasticsearch.ElasticsearchClient; -import co.elastic.clients.elasticsearch._types.ElasticsearchException; -import co.elastic.clients.elasticsearch.core.GetRequest; -import co.elastic.clients.elasticsearch.core.GetResponse; -import co.elastic.clients.json.JsonData; -import org.awaitility.Awaitility; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testcontainers.elasticsearch.ElasticsearchContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; - -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.cloud.fn.common.config.SpelExpressionConverterConfiguration; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.elasticsearch.client.ClientConfiguration; -import org.springframework.data.elasticsearch.client.elc.ElasticsearchConfiguration; -import org.springframework.lang.NonNull; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatExceptionOfType; -import static org.assertj.core.api.Assertions.assertThatIllegalStateException; - -// import static org.elasticsearch.core.Strings.*; - -/** - * @author Soby Chacko - * @author Andrea Montemaggio - */ -@Tag("integration") -@Testcontainers(disabledWithoutDocker = true) -public class ElasticsearchConsumerApplicationTests { - private static final Logger log = LoggerFactory.getLogger(ElasticsearchConsumerApplicationTests.class); - - @Container - static final ElasticsearchContainer elasticsearch = new ElasticsearchContainer( - DockerImageName.parse("docker.elastic.co/elasticsearch/elasticsearch") - .withTag("7.17.7") - ).withStartupTimeout(Duration.ofSeconds(120)) - .withStartupAttempts(3); - - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withUserConfiguration(ElasticsearchConsumerTestApplication.class, SpelExpressionConverterConfiguration.class); - - @Test - public void testBasicJsonString() { - this.contextRunner - .withPropertyValues("elasticsearch.consumer.index=foo", "elasticsearch.consumer.id=1", - "spring.elasticsearch.rest.uris=http://" + elasticsearch.getHttpHostAddress()) - .run(context -> { - final Consumer> elasticsearchConsumer = context.getBean("elasticsearchConsumer", Consumer.class); - - final String jsonObject = "{\"age\":10,\"dateOfBirth\":1471466076564," - + "\"fullName\":\"John Doe\"}"; - final Message message = MessageBuilder.withPayload(jsonObject).build(); - - elasticsearchConsumer.accept(message); - final ElasticsearchClient elasticsearchClient = context.getBean(ElasticsearchClient.class); - final GetRequest getRequest = new GetRequest.Builder().index("foo").id("1").build(); - final GetResponse response = elasticsearchClient.get(getRequest, JsonData.class); - - assertThat(response.found()).isTrue(); - assertThat(response.source()).isNotNull(); - assertThat(response.source().toJson()).isEqualTo(JsonData.fromJson(jsonObject).toJson()); - }); - } - - @Test - public void testIdPassedAsMessageHeader() { - this.contextRunner - .withPropertyValues("elasticsearch.consumer.index=foo", - "spring.elasticsearch.rest.uris=http://" + elasticsearch.getHttpHostAddress()) - .run(context -> { - final Consumer> elasticsearchConsumer = context.getBean("elasticsearchConsumer", Consumer.class); - - final String jsonObject = "{\"age\":10,\"dateOfBirth\":1471466076564," - + "\"fullName\":\"John Doe\"}"; - final Message message = MessageBuilder.withPayload(jsonObject) - .setHeader(ElasticsearchConsumerConfiguration.INDEX_ID_HEADER, "2").build(); - log.info("elasticsearchConsumer.accept:{}", message); - elasticsearchConsumer.accept(message); - - final ElasticsearchClient elasticsearchClient = context.getBean(ElasticsearchClient.class); - final GetRequest getRequest = new GetRequest.Builder().index("foo").id("2").build(); - final GetResponse response = elasticsearchClient.get(getRequest, JsonData.class); - assertThat(response.found()).isTrue(); - assertThat(response.source()).isNotNull(); - assertThat(response.source().toJson()).isEqualTo(JsonData.fromJson(jsonObject).toJson()); - assertThat(response.id()).isEqualTo("2"); - }); - } - - @Test - public void testJsonAsMap() { - this.contextRunner - .withPropertyValues("elasticsearch.consumer.index=foo", "elasticsearch.consumer.id=3", - "spring.elasticsearch.rest.uris=http://" + elasticsearch.getHttpHostAddress()) - .run(context -> { - final Consumer> elasticsearchConsumer = context.getBean("elasticsearchConsumer", Consumer.class); - - final Map jsonMap = new HashMap<>(); - jsonMap.put("age", 10); - jsonMap.put("dateOfBirth", 1471466076564L); - jsonMap.put("fullName", "John Doe"); - final Message> message = MessageBuilder.withPayload(jsonMap).build(); - log.info("elasticsearchConsumer.accept:{}", message); - elasticsearchConsumer.accept(message); - final ElasticsearchClient elasticsearchClient = context.getBean(ElasticsearchClient.class); - final GetRequest getRequest = new GetRequest.Builder().index("foo").id("3").build(); - final GetResponse response = elasticsearchClient.get(getRequest, HashMap.class); - - assertThat(response.found()).isTrue(); - HashMap map = response.source(); - - jsonMap.entrySet().forEach(entry -> { - Object value = map.get(entry.getKey()); - assertThat(value).isNotNull(); - assertThat(value).isEqualTo(entry.getValue()); - }); - assertThat(response.id()).isEqualTo("3"); - }); - } - - @Test - public void testAsyncIndexing() { - this.contextRunner - .withPropertyValues("elasticsearch.consumer.index=foo", "elasticsearch.consumer.async=true", - "elasticsearch.consumer.id=5", - "spring.elasticsearch.rest.uris=http://" + elasticsearch.getHttpHostAddress()) - .run(context -> { - final Consumer> elasticsearchConsumer = context.getBean("elasticsearchConsumer", Consumer.class); - - final String jsonObject = "{\"age\":10,\"dateOfBirth\":1471466076564," - + "\"fullName\":\"John Doe\"}"; - final Message message = MessageBuilder.withPayload(jsonObject).build(); - log.info("elasticsearchConsumer.accept:{}", message); - elasticsearchConsumer.accept(message); - - final ElasticsearchClient elasticsearchClient = context.getBean(ElasticsearchClient.class); - final GetRequest getRequest = new GetRequest.Builder().index("foo").id("5").build(); - - Awaitility.given() - .ignoreException(ElasticsearchException.class) - .await() - .until(() -> elasticsearchClient.get(getRequest, JsonData.class).found()); - }); - } - - @Test - public void testBulkIndexingWithIdFromHeader() { - this.contextRunner - .withPropertyValues("elasticsearch.consumer.index=foo_" + UUID.randomUUID(), "elasticsearch.consumer.batch-size=10", - "spring.elasticsearch.rest.uris=http://" + elasticsearch.getHttpHostAddress()) - .run(context -> { - final Consumer> elasticsearchConsumer = context.getBean("elasticsearchConsumer", Consumer.class); - final ElasticsearchConsumerProperties properties = context.getBean(ElasticsearchConsumerProperties.class); - final ElasticsearchClient elasticsearchClient = context.getBean(ElasticsearchClient.class); - - - for (int i = 0; i < properties.getBatchSize(); i++) { - final GetRequest getRequest = new GetRequest.Builder().index(properties.getIndex()).id(Integer.toString(i)).build(); - assertThatExceptionOfType(ElasticsearchException.class) - .isThrownBy(() -> elasticsearchClient.get(getRequest, JsonData.class)) - .withFailMessage("Expected index not found exception for message %d") - .withMessageContaining("index_not_found_exception"); - - final Message message = MessageBuilder - .withPayload("{\"seq\":" + i + ",\"age\":10,\"dateOfBirth\":1471466076564," - + "\"fullName\":\"John Doe\"}") - .setHeader(ElasticsearchConsumerConfiguration.INDEX_ID_HEADER, Integer.toString(i)) - .build(); - log.info("elasticsearchConsumer.accept:{}", message); - elasticsearchConsumer.accept(message); - } - - for (int i = 0; i < properties.getBatchSize(); i++) { - final GetRequest getRequest = new GetRequest.Builder().index(properties.getIndex()).id(Integer.toString(i)).build(); - final GetResponse response = elasticsearchClient.get(getRequest, JsonData.class); - - assertThat(response.found()) - .withFailMessage("Document with id=%d cannot be found.", i) - .isTrue(); - assertThat(response.source().toJson().asJsonObject().get("seq").toString()).isEqualTo(Integer.toString(i)); - } - }); - } - - @Test - public void testBulkIndexingItemFailure() { - this.contextRunner - .withPropertyValues("elasticsearch.consumer.index=foo_" + UUID.randomUUID(), "elasticsearch.consumer.batch-size=10", - "spring.elasticsearch.rest.uris=http://" + elasticsearch.getHttpHostAddress()) - .run(context -> { - final Consumer> elasticsearchConsumer = context.getBean("elasticsearchConsumer", Consumer.class); - final ElasticsearchConsumerProperties properties = context.getBean(ElasticsearchConsumerProperties.class); - final ElasticsearchClient elasticsearchClient = context.getBean(ElasticsearchClient.class); - - - for (int i = 0; i < properties.getBatchSize(); i++) { - final GetRequest getRequest = new GetRequest.Builder().index(properties.getIndex()).id(Integer.toString(i)).build(); - assertThatExceptionOfType(ElasticsearchException.class) - .isThrownBy(() -> elasticsearchClient.get(getRequest, JsonData.class)) - .withFailMessage("Expected index not found exception for message %d") - .withMessageContaining("index_not_found_exception"); - - MessageBuilder builder = MessageBuilder - .withPayload("{\"seq\":" + i + ",\"age\":10,\"dateOfBirth\":1471466076564," - + "\"fullName\":\"John Doe\"}") - .setHeader(ElasticsearchConsumerConfiguration.INDEX_ID_HEADER, Integer.toString(i)); - - if (i == 0) { - // set an invalid index name to make the first request fail - builder.setHeader(ElasticsearchConsumerConfiguration.INDEX_NAME_HEADER, "_" + properties.getIndex()); - } - - final Message message = builder.build(); - - if (i < properties.getBatchSize() - 1) { - log.info("elasticsearchConsumer.accept:{}", message); - elasticsearchConsumer.accept(message); - } - else { - // last invocation - assertThatIllegalStateException() - .isThrownBy(() -> elasticsearchConsumer.accept(message)) - .withMessageContaining("Bulk indexing operation completed with failures"); - } - } - }); - } - - @Test - public void testIndexFromMessageHeader() { - this.contextRunner - .withPropertyValues("elasticsearch.consumer.index=foo", - "spring.elasticsearch.rest.uris=http://" + elasticsearch.getHttpHostAddress()) - .run(context -> { - final Consumer> elasticsearchConsumer = context.getBean("elasticsearchConsumer", Consumer.class); - final ElasticsearchConsumerProperties properties = context.getBean(ElasticsearchConsumerProperties.class); - - final String dynamicIndex = properties.getIndex() + "-2"; - - final String jsonObject = "{\"age\":10,\"dateOfBirth\":1471466076564," - + "\"fullName\":\"John Doe\"}"; - final Message message = MessageBuilder.withPayload(jsonObject) - .setHeader(ElasticsearchConsumerConfiguration.INDEX_ID_HEADER, "2") - .setHeader(ElasticsearchConsumerConfiguration.INDEX_NAME_HEADER, dynamicIndex) - .build(); - log.info("elasticsearchConsumer.accept:{}", message); - elasticsearchConsumer.accept(message); - final ElasticsearchClient elasticsearchClient = context.getBean(ElasticsearchClient.class); - - GetRequest getRequest = new GetRequest.Builder().index(dynamicIndex).id("2").build(); - final GetResponse response = elasticsearchClient.get(getRequest, JsonData.class); - assertThat(response.found()).isTrue(); - assertThat(response.source()).isNotNull(); - assertThat(response.source().toJson()).isEqualTo(JsonData.fromJson(jsonObject).toJson()); - assertThat(response.id()).isEqualTo("2"); - }); - } - - @SpringBootApplication - static class ElasticsearchConsumerTestApplication { - } - - @Configuration - static class Config extends ElasticsearchConfiguration { - @NonNull - @Override - public ClientConfiguration clientConfiguration() { - return ClientConfiguration.builder() - .connectedTo(elasticsearch.getHttpHostAddress()) - .build(); - } - } -} diff --git a/functions/consumer/elasticsearch-consumer/src/test/resources/logback.xml b/functions/consumer/elasticsearch-consumer/src/test/resources/logback.xml deleted file mode 100644 index ae8b3d29..00000000 --- a/functions/consumer/elasticsearch-consumer/src/test/resources/logback.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - diff --git a/functions/consumer/file-consumer/README.adoc b/functions/consumer/file-consumer/README.adoc deleted file mode 100644 index f85a6403..00000000 --- a/functions/consumer/file-consumer/README.adoc +++ /dev/null @@ -1,28 +0,0 @@ -# File Consumer - -A consumer that allows you to write incoming messages into files. -The consumer uses the `FileWritingMessageHandler` from Spring Integration. - -## Beans for injection - -You can import `FileConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> fileConsumer` - -You can use `fileConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `file.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/file/FileConsumerProperties.java[FileConsumerProperties]. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `FileWritingMessageHandler` configuration used by the `fileConsumer`. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/file[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/file-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a File sink. diff --git a/functions/consumer/file-consumer/pom.xml b/functions/consumer/file-consumer/pom.xml deleted file mode 100644 index 256b64f7..00000000 --- a/functions/consumer/file-consumer/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - file-consumer - file-consumer - file consumer - - - - org.springframework.integration - spring-integration-file - - - - diff --git a/functions/consumer/file-consumer/src/main/java/org/springframework/cloud/fn/consumer/file/FileConsumerConfiguration.java b/functions/consumer/file-consumer/src/main/java/org/springframework/cloud/fn/consumer/file/FileConsumerConfiguration.java deleted file mode 100644 index 784418f3..00000000 --- a/functions/consumer/file-consumer/src/main/java/org/springframework/cloud/fn/consumer/file/FileConsumerConfiguration.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.file; - -import java.util.function.Consumer; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.integration.file.DefaultFileNameGenerator; -import org.springframework.integration.file.FileNameGenerator; -import org.springframework.integration.file.FileWritingMessageHandler; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - -/** - * @author Mark Fisher - * @author Artem Bilan - * @author Soby Chacko - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(FileConsumerProperties.class) -public class FileConsumerConfiguration { - - private static final ExpressionParser EXPRESSION_PARSER = new SpelExpressionParser(); - - private final FileConsumerProperties properties; - - public FileConsumerConfiguration(FileConsumerProperties properties) { - this.properties = properties; - } - - @Bean - public Consumer> fileConsumer(FileWritingMessageHandler fileWritingMessageHandler) { - return fileWritingMessageHandler::handleMessage; - } - - @Bean - public FileWritingMessageHandler fileWritingMessageHandler(FileNameGenerator fileNameGenerator, - @Nullable ComponentCustomizer fileWritingMessageHandlerCustomizer) { - - FileWritingMessageHandler handler = - this.properties.getDirectoryExpression() != null - ? new FileWritingMessageHandler( - EXPRESSION_PARSER.parseExpression(this.properties.getDirectoryExpression())) - : new FileWritingMessageHandler(this.properties.getDirectory()); - handler.setAutoCreateDirectory(true); - handler.setAppendNewLine(!properties.isBinary()); - handler.setCharset(properties.getCharset()); - handler.setExpectReply(false); - handler.setFileExistsMode(properties.getMode()); - handler.setFileNameGenerator(fileNameGenerator); - - if (fileWritingMessageHandlerCustomizer != null) { - fileWritingMessageHandlerCustomizer.customize(handler); - } - return handler; - } - - @Bean - public FileNameGenerator fileNameGenerator() { - DefaultFileNameGenerator fileNameGenerator = new DefaultFileNameGenerator(); - fileNameGenerator.setExpression(properties.getNameExpression()); - return fileNameGenerator; - } - -} diff --git a/functions/consumer/file-consumer/src/main/java/org/springframework/cloud/fn/consumer/file/FileConsumerProperties.java b/functions/consumer/file-consumer/src/main/java/org/springframework/cloud/fn/consumer/file/FileConsumerProperties.java deleted file mode 100644 index 30ce5886..00000000 --- a/functions/consumer/file-consumer/src/main/java/org/springframework/cloud/fn/consumer/file/FileConsumerProperties.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.file; - -import java.io.File; - -import jakarta.validation.constraints.AssertTrue; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.integration.file.support.FileExistsMode; -import org.springframework.util.StringUtils; -import org.springframework.validation.annotation.Validated; - -/** - * Properties for the file sink. - * - * @author Mark Fisher - * @author Gary Russell - */ -@ConfigurationProperties("file.consumer") -@Validated -public class FileConsumerProperties { - - static final String DEFAULT_DIR = System.getProperty("java.io.tmpdir") + "file-consumer"; - - private static final String DEFAULT_NAME = "file-consumer"; - - /** - * A flag to indicate whether adding a newline after the write should be suppressed. - */ - private boolean binary = false; - - /** - * The charset to use when writing text content. - */ - private String charset = "UTF-8"; - - /** - * The parent directory of the target file. - */ - private File directory = new File(DEFAULT_DIR); - - /** - * The expression to evaluate for the parent directory of the target file. - */ - private String directoryExpression; - - /** - * The FileExistsMode to use if the target file already exists. - */ - private FileExistsMode mode = FileExistsMode.APPEND; - - /** - * The name of the target file. - */ - private String name = DEFAULT_NAME; - - /** - * The expression to evaluate for the name of the target file. - */ - private String nameExpression; - - /** - * The suffix to append to file name. - */ - private String suffix = ""; - - public boolean isBinary() { - return binary; - } - - public void setBinary(boolean binary) { - this.binary = binary; - } - - public String getCharset() { - return charset; - } - - public void setCharset(String charset) { - this.charset = charset; - } - - public File getDirectory() { - return directory; - } - - public void setDirectory(File directory) { - this.directory = directory; - } - - public String getDirectoryExpression() { - return directoryExpression; - } - - public void setDirectoryExpression(String directoryExpression) { - this.directoryExpression = directoryExpression; - } - - public FileExistsMode getMode() { - return mode; - } - - public void setMode(FileExistsMode mode) { - this.mode = mode; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getNameExpression() { - return (nameExpression != null) - ? nameExpression + " + '" + getSuffix() + "'" - : "'" + name + getSuffix() + "'"; - } - - public void setNameExpression(String nameExpression) { - this.nameExpression = nameExpression; - } - - public String getSuffix() { - String suffixWithDotIfNecessary = ""; - if (StringUtils.hasText(suffix)) { - suffixWithDotIfNecessary = suffix.startsWith(".") ? suffix : "." + suffix; - } - return suffixWithDotIfNecessary; - } - - public void setSuffix(String suffix) { - this.suffix = suffix; - } - - @AssertTrue(message = "Exactly one of 'name' or 'nameExpression' must be set") - public boolean isMutuallyExclusiveNameAndNameExpression() { - return DEFAULT_NAME.equals(name) || nameExpression == null; - } - - @AssertTrue(message = "Exactly one of 'directory' or 'directoryExpression' must be set") - public boolean isMutuallyExclusiveDirectoryAndDirectoryExpression() { - return new File(DEFAULT_DIR).equals(directory) || directoryExpression == null; - } - -} diff --git a/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/AbstractFileConsumerTests.java b/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/AbstractFileConsumerTests.java deleted file mode 100644 index 0a26929d..00000000 --- a/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/AbstractFileConsumerTests.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.file; - -import java.nio.file.Path; -import java.util.function.Consumer; - -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.io.TempDir; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; - -/** - * @author Soby Chacko - */ -@SpringBootTest -@DirtiesContext -public class AbstractFileConsumerTests { - - @TempDir - static Path tempDir; - - @Autowired - Consumer> fileConsumer; - - @BeforeAll - public static void beforeAll() { - System.setProperty("file.consumer.directory", tempDir.toAbsolutePath().toString()); - } - - @AfterAll - public static void afterAll() { - System.clearProperty("file.consumer.directory"); - } - - @SpringBootApplication - static class FileConsumerTestApplication { - } -} diff --git a/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/BinaryFileTests.java b/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/BinaryFileTests.java deleted file mode 100644 index ef6b2bdc..00000000 --- a/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/BinaryFileTests.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.file; - -import java.io.File; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.test.context.TestPropertySource; -import org.springframework.util.FileCopyUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Mark Fisher - * @author Artem Bilan - * @author Soby Chacko - */ -@TestPropertySource(properties = "file.consumer.binary = true") -public class BinaryFileTests extends AbstractFileConsumerTests { - - @Test - public void test() throws Exception { - fileConsumer.accept(MessageBuilder.withPayload("hello file-consumer".getBytes()).build()); - File file = new File(tempDir.toFile(), "file-consumer"); - assertThat(file.exists()).isTrue(); - byte[] results = FileCopyUtils.copyToByteArray(file); - assertThat("hello file-consumer".getBytes()).isEqualTo(results); - } - -} diff --git a/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/ExpressionTests.java b/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/ExpressionTests.java deleted file mode 100644 index 91138ff5..00000000 --- a/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/ExpressionTests.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.file; - -import java.io.File; -import java.io.FileReader; -import java.nio.file.Path; -import java.util.function.Consumer; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.util.FileCopyUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Mark Fisher - * @author Artem Bilan - * @author Soby Chacko - *

- * We don't need a separate SpringBootApplication for this test as there is already one available in this package. - * {@link AbstractFileConsumerTests}. - */ -@SpringBootTest(properties = {"file.consumer.nameExpression = payload.substring(0, 4)", - "file.consumer.directoryExpression = '${java.io.tmpdir}'+'/'+headers.dir", - "file.consumer.suffix=out"}) -@DirtiesContext -public class ExpressionTests { - - @TempDir - static Path tempDir; - - @Autowired - Consumer> fileConsumer; - - @Test - public void test() throws Exception { - fileConsumer.accept(MessageBuilder.withPayload("this is something").setHeader("dir", "expression").build()); - File file = new File(System.getProperty("java.io.tmpdir") + File.separator + "expression", "this.out"); - file.deleteOnExit(); - assertThat(file.exists()).isTrue(); - assertThat("this is something" + System.lineSeparator()) - .isEqualTo(FileCopyUtils.copyToString(new FileReader(file))); - } -} diff --git a/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/TextFileTests.java b/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/TextFileTests.java deleted file mode 100644 index 60a9b218..00000000 --- a/functions/consumer/file-consumer/src/test/java/org/springframework/cloud/fn/consumer/file/TextFileTests.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.file; - -import java.io.File; -import java.io.FileReader; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.test.context.TestPropertySource; -import org.springframework.util.FileCopyUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Mark Fisher - * @author Artem Bilan - * @author Soby Chacko - */ -@TestPropertySource(properties = {"file.consumer.name = test", "file.consumer.suffix=txt"}) -public class TextFileTests extends AbstractFileConsumerTests { - - @Test - public void test() throws Exception { - fileConsumer.accept(MessageBuilder.withPayload("hello file-consumer").build()); - File file = new File(tempDir.toFile(), "test.txt"); - assertThat(file.exists()).isTrue(); - assertThat("hello file-consumer" + System.lineSeparator()) - .isEqualTo(FileCopyUtils.copyToString(new FileReader(file))); - } - -} diff --git a/functions/consumer/ftp-consumer/README.adoc b/functions/consumer/ftp-consumer/README.adoc deleted file mode 100644 index baa6efd5..00000000 --- a/functions/consumer/ftp-consumer/README.adoc +++ /dev/null @@ -1,28 +0,0 @@ -# Ftp Consumer - -A consumer that allows you to ftp files. -The consumer uses the `FtpMessageHandler` from Spring Integration. - -## Beans for injection - -You can import `FtpConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> ftpConsumer` - -You can use `ftpConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `ftp.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerProperties.java[FtpConsumerProperties]. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `FtpMessageHandlerSpec` configuration used by the `ftpConsumer`. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/ftp[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/ftp-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a Ftp sink. diff --git a/functions/consumer/ftp-consumer/pom.xml b/functions/consumer/ftp-consumer/pom.xml deleted file mode 100644 index 084393b3..00000000 --- a/functions/consumer/ftp-consumer/pom.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/ftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerConfiguration.java b/functions/consumer/ftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerConfiguration.java deleted file mode 100644 index 2aba1b60..00000000 --- a/functions/consumer/ftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerConfiguration.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2015-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.ftp; - -import java.util.function.Consumer; - -import org.apache.commons.net.ftp.FTPFile; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.cloud.fn.common.ftp.FtpSessionFactoryConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlowBuilder; -import org.springframework.integration.file.remote.session.SessionFactory; -import org.springframework.integration.ftp.dsl.Ftp; -import org.springframework.integration.ftp.dsl.FtpMessageHandlerSpec; -import org.springframework.integration.ftp.session.FtpRemoteFileTemplate; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(FtpConsumerProperties.class) -@Import(FtpSessionFactoryConfiguration.class) -public class FtpConsumerConfiguration { - - private static final ExpressionParser EXPRESSION_PARSER = new SpelExpressionParser(); - - @Autowired - FtpConsumerProperties ftpConsumerProperties; - - @Bean - public IntegrationFlow ftpInboundFlow(FtpConsumerProperties properties, SessionFactory ftpSessionFactory, - @Nullable ComponentCustomizer ftpMessageHandlerSpecCustomizer) { - - IntegrationFlowBuilder integrationFlowBuilder = - IntegrationFlow.from(MessageConsumer.class, (gateway) -> gateway.beanName("ftpConsumer")); - - FtpMessageHandlerSpec handlerSpec = - Ftp.outboundAdapter(new FtpRemoteFileTemplate(ftpSessionFactory), properties.getMode()) - .remoteDirectory(properties.getRemoteDir()) - .remoteFileSeparator(properties.getRemoteFileSeparator()) - .autoCreateDirectory(properties.isAutoCreateDir()) - .temporaryFileSuffix(properties.getTmpFileSuffix()); - if (properties.getFilenameExpression() != null) { - handlerSpec.fileNameExpression( - EXPRESSION_PARSER.parseExpression(properties.getFilenameExpression()).getExpressionString()); - } - - if (ftpMessageHandlerSpecCustomizer != null) { - ftpMessageHandlerSpecCustomizer.customize(handlerSpec); - } - - return integrationFlowBuilder - .handle(handlerSpec) - .get(); - } - - private interface MessageConsumer extends Consumer> { - - } - -} diff --git a/functions/consumer/ftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerProperties.java b/functions/consumer/ftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerProperties.java deleted file mode 100644 index b99ff3eb..00000000 --- a/functions/consumer/ftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerProperties.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.ftp; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.integration.file.support.FileExistsMode; -import org.springframework.validation.annotation.Validated; - -@ConfigurationProperties("ftp.consumer") -@Validated -public class FtpConsumerProperties { - - /** - * The remote FTP directory. - */ - private String remoteDir = "/"; - - /** - * The suffix to use while the transfer is in progress. - */ - private String tmpFileSuffix = ".tmp"; - - /** - * The remote file separator. - */ - private String remoteFileSeparator = "/"; - - /** - * A temporary directory where the file will be written if '#isUseTemporaryFilename()' - * is true. - */ - private String temporaryRemoteDir = "/"; - - /** - * Whether or not to create the remote directory. - */ - private boolean autoCreateDir = true; - - /** - * Action to take if the remote file already exists. - */ - private FileExistsMode mode = FileExistsMode.REPLACE; - - /** - * Whether or not to write to a temporary file and rename. - */ - private boolean useTemporaryFilename = true; - - /** - * A SpEL expression to generate the remote file name. - */ - private String filenameExpression; - - @NotBlank - public String getTemporaryRemoteDir() { - return this.temporaryRemoteDir; - } - - public void setTemporaryRemoteDir(String temporaryRemoteDir) { - this.temporaryRemoteDir = temporaryRemoteDir; - } - - public boolean isAutoCreateDir() { - return this.autoCreateDir; - } - - public void setAutoCreateDir(boolean autoCreateDir) { - this.autoCreateDir = autoCreateDir; - } - - @NotNull - public FileExistsMode getMode() { - return this.mode; - } - - public void setMode(FileExistsMode mode) { - this.mode = mode; - } - - public boolean isUseTemporaryFilename() { - return this.useTemporaryFilename; - } - - public void setUseTemporaryFilename(boolean useTemporaryFilename) { - this.useTemporaryFilename = useTemporaryFilename; - } - - public String getFilenameExpression() { - return this.filenameExpression; - } - - public void setFilenameExpression(String filenameExpression) { - this.filenameExpression = filenameExpression; - } - - @NotBlank - public String getRemoteDir() { - return this.remoteDir; - } - - public final void setRemoteDir(String remoteDir) { - this.remoteDir = remoteDir; - } - - @NotBlank - public String getTmpFileSuffix() { - return this.tmpFileSuffix; - } - - public void setTmpFileSuffix(String tmpFileSuffix) { - this.tmpFileSuffix = tmpFileSuffix; - } - - @NotBlank - public String getRemoteFileSeparator() { - return this.remoteFileSeparator; - } - - public void setRemoteFileSeparator(String remoteFileSeparator) { - this.remoteFileSeparator = remoteFileSeparator; - } -} diff --git a/functions/consumer/ftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerPropertiesTests.java b/functions/consumer/ftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerPropertiesTests.java deleted file mode 100644 index 4d449a9c..00000000 --- a/functions/consumer/ftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerPropertiesTests.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.ftp; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.file.support.FileExistsMode; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author David Turanski - * @author Gary Russell - * @author Artem Bilan - */ -public class FtpConsumerPropertiesTests { - - @Test - public void remoteDirCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.consumer.remoteDir:/remote") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpConsumerProperties properties = context.getBean(FtpConsumerProperties.class); - assertThat(properties.getRemoteDir()).isEqualTo("/remote"); - context.close(); - } - - @Test - public void autoCreateDirCanBeDisabled() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.consumer.autoCreateDir:false") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpConsumerProperties properties = context.getBean(FtpConsumerProperties.class); - assertThat(!properties.isAutoCreateDir()).isTrue(); - context.close(); - } - - @Test - public void tmpFileSuffixCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.consumer.tmpFileSuffix:.foo") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpConsumerProperties properties = context.getBean(FtpConsumerProperties.class); - assertThat(properties.getTmpFileSuffix()).isEqualTo(".foo"); - context.close(); - } - - @Test - public void tmpFileRemoteDirCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.consumer.temporaryRemoteDir:/foo") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpConsumerProperties properties = context.getBean(FtpConsumerProperties.class); - assertThat(properties.getTemporaryRemoteDir()).isEqualTo("/foo"); - context.close(); - } - - @Test - public void remoteFileSeparatorCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.consumer.remoteFileSeparator:\\") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpConsumerProperties properties = context.getBean(FtpConsumerProperties.class); - assertThat(properties.getRemoteFileSeparator()).isEqualTo("\\"); - context.close(); - } - - @Test - public void useTemporaryFileNameCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.consumer.useTemporaryFilename:false") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpConsumerProperties properties = context.getBean(FtpConsumerProperties.class); - assertThat(properties.isUseTemporaryFilename()).isFalse(); - context.close(); - } - - @Test - public void fileExistsModeCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.consumer.mode:FAIL") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpConsumerProperties properties = context.getBean(FtpConsumerProperties.class); - assertThat(properties.getMode()).isEqualTo(FileExistsMode.FAIL); - context.close(); - } - - @Configuration - @EnableConfigurationProperties(FtpConsumerProperties.class) - static class Conf { - - } -} diff --git a/functions/consumer/ftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerTests.java b/functions/consumer/ftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerTests.java deleted file mode 100644 index e7815d31..00000000 --- a/functions/consumer/ftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/ftp/FtpConsumerTests.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.ftp; - -import java.io.File; -import java.util.function.Consumer; - -import org.junit.jupiter.api.Test; - -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.test.support.ftp.FtpTestSupport; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -@DirtiesContext -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { - "ftp.consumer.remoteDir = ftpTarget", - "ftp.factory.username = foo", - "ftp.factory.password = foo", - "ftp.consumer.mode = FAIL", - "ftp.consumer.filenameExpression = payload.name.toUpperCase()" - }) -public class FtpConsumerTests extends FtpTestSupport { - - @Autowired - Consumer> ftpConsumer; - - @Test - public void sendFiles() { - for (int i = 1; i <= 2; i++) { - String pathname = "/localSource" + i + ".txt"; - String upperPathname = pathname.toUpperCase(); - new File(getTargetRemoteDirectory() + upperPathname).delete(); - assertThat(new File(getTargetRemoteDirectory() + upperPathname).exists()).isFalse(); - ftpConsumer.accept(new GenericMessage<>(new File(getSourceLocalDirectory() + pathname))); - File expected = new File(getTargetRemoteDirectory() + upperPathname); - assertThat(expected.exists()).isTrue(); - // verify the uppercase on a case-insensitive file system - File[] files = getTargetRemoteDirectory().listFiles(); - for (File file : files) { - assertThat(file.getName().startsWith("LOCALSOURCE")).isTrue(); - } - } - } - - @Test - public void serverRefreshed() { // noop test to test the dirs are refreshed properly - String pathname = "/LOCALSOURCE1.TXT"; - assertThat(getTargetRemoteDirectory().exists()).isTrue(); - assertThat(new File(getTargetRemoteDirectory() + pathname).exists()).isFalse(); - } - - @SpringBootApplication - static class FtpConsumerTestApplication { - } -} diff --git a/functions/consumer/jdbc-consumer/README.adoc b/functions/consumer/jdbc-consumer/README.adoc deleted file mode 100644 index 14a3decf..00000000 --- a/functions/consumer/jdbc-consumer/README.adoc +++ /dev/null @@ -1,26 +0,0 @@ -# Jdbc Consumer - -A consumer that allows you to insert records into a relational database. -The consumer uses the `JdbcMessageHandler` from Spring Integration. - -## Beans for injection - -You can import `JdbcConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> jdbcConsumer` - -You can use `jdbcConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `jdbc.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerProperties.java[JdbcConsumerProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/jdbc[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/jdbc-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a Jdbc sink. \ No newline at end of file diff --git a/functions/consumer/jdbc-consumer/pom.xml b/functions/consumer/jdbc-consumer/pom.xml deleted file mode 100644 index 837712cd..00000000 --- a/functions/consumer/jdbc-consumer/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/DefaultInitializationScriptResource.java b/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/DefaultInitializationScriptResource.java deleted file mode 100644 index df838db3..00000000 --- a/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/DefaultInitializationScriptResource.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import java.nio.charset.StandardCharsets; -import java.util.Collection; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.core.io.ByteArrayResource; - -/** - * An in-memory script crafted for dropping-creating the table we're working with. - * All columns are created as VARCHAR(2000). - * - * @author Eric Bottard - * @author Thomas Risberg - */ -public class DefaultInitializationScriptResource extends ByteArrayResource { - - private static final Log logger = LogFactory.getLog(DefaultInitializationScriptResource.class); - - public DefaultInitializationScriptResource(String tableName, Collection columns) { - super(scriptFor(tableName, columns).getBytes(StandardCharsets.UTF_8)); - } - - private static String scriptFor(String tableName, Collection columns) { - StringBuilder result = new StringBuilder("DROP TABLE "); - result.append(tableName).append(";\n\n"); - - result.append("CREATE TABLE ").append(tableName).append('('); - int i = 0; - for (String column : columns) { - if (i++ > 0) { - result.append(", "); - } - result.append(column).append(" VARCHAR(2000)"); - } - result.append(");\n"); - logger.debug(String.format("Generated the following initializing script for table %s:\n%s", tableName, - result.toString())); - return result.toString(); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerConfiguration.java b/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerConfiguration.java deleted file mode 100644 index 80ed1046..00000000 --- a/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerConfiguration.java +++ /dev/null @@ -1,288 +0,0 @@ -/* - * Copyright 2020-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Consumer; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -import javax.sql.DataSource; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.io.ResourceLoader; -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.EvaluationException; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.SpelParseException; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.expression.spel.support.StandardEvaluationContext; -import org.springframework.integration.aggregator.DefaultAggregatingMessageGroupProcessor; -import org.springframework.integration.aggregator.MessageCountReleaseStrategy; -import org.springframework.integration.config.AggregatorFactoryBean; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlowBuilder; -import org.springframework.integration.expression.ExpressionUtils; -import org.springframework.integration.expression.ValueExpression; -import org.springframework.integration.jdbc.JdbcMessageHandler; -import org.springframework.integration.jdbc.SqlParameterSourceFactory; -import org.springframework.integration.json.JsonPropertyAccessor; -import org.springframework.integration.store.MessageGroupStore; -import org.springframework.integration.store.SimpleMessageStore; -import org.springframework.integration.support.MutableMessage; -import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; -import org.springframework.jdbc.core.namedparam.SqlParameterSource; -import org.springframework.jdbc.datasource.init.DataSourceInitializer; -import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHandler; -import org.springframework.messaging.MessageHeaders; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MimeTypeUtils; -import org.springframework.util.MultiValueMap; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Robert St. John - * @author Oliver Flasch - * @author Artem Bilan - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@Configuration -@EnableConfigurationProperties(JdbcConsumerProperties.class) -public class JdbcConsumerConfiguration { - - private static final Log logger = LogFactory.getLog(JdbcConsumerConfiguration.class); - - private static final Object NOT_SET = new Object(); - - private final JdbcConsumerProperties properties; - - private SpelExpressionParser spelExpressionParser = new SpelExpressionParser(); - - private EvaluationContext evaluationContext; - - public JdbcConsumerConfiguration(JdbcConsumerProperties properties, BeanFactory beanFactory) { - this.properties = properties; - this.evaluationContext = ExpressionUtils.createStandardEvaluationContext(beanFactory); - StandardEvaluationContext standardEvaluationContext = (StandardEvaluationContext) this.evaluationContext; - standardEvaluationContext.addPropertyAccessor(new JsonPropertyAccessor()); - } - - @Bean - public static ShorthandMapConverter shorthandMapConverter() { - return new ShorthandMapConverter(); - } - - private static boolean convertibleContentType(String contentType) { - return contentType.contains("text") || contentType.contains("json") || contentType.contains("x-spring-tuple"); - } - - private static String generateSql(String tableName, Set columns) { - StringBuilder builder = new StringBuilder("INSERT INTO "); - StringBuilder questionMarks = new StringBuilder(") VALUES ("); - builder.append(tableName).append("("); - int i = 0; - - for (String column : columns) { - if (i++ > 0) { - builder.append(", "); - questionMarks.append(", "); - } - builder.append(column); - questionMarks.append(':').append(column); - } - builder.append(questionMarks).append(")"); - return builder.toString(); - } - - @Bean - IntegrationFlow jdbcConsumerFlow(@Qualifier("aggregator") MessageHandler aggregator, - JdbcMessageHandler jdbcMessageHandler) { - - final IntegrationFlowBuilder builder = - IntegrationFlow.from(Consumer.class, gateway -> gateway.beanName("jdbcConsumer")); - if (properties.getBatchSize() > 1 || properties.getIdleTimeout() > 0) { - builder.handle(aggregator); - } - return builder.handle(jdbcMessageHandler).get(); - } - - @Bean - FactoryBean aggregator(MessageGroupStore messageGroupStore) { - AggregatorFactoryBean aggregatorFactoryBean = new AggregatorFactoryBean(); - aggregatorFactoryBean.setCorrelationStrategy(message -> message.getPayload().getClass().getName()); - aggregatorFactoryBean.setReleaseStrategy(new MessageCountReleaseStrategy(this.properties.getBatchSize())); - if (this.properties.getIdleTimeout() >= 0) { - aggregatorFactoryBean.setGroupTimeoutExpression(new ValueExpression<>(this.properties.getIdleTimeout())); - } - aggregatorFactoryBean.setMessageStore(messageGroupStore); - aggregatorFactoryBean.setProcessorBean(new DefaultAggregatingMessageGroupProcessor()); - aggregatorFactoryBean.setExpireGroupsUponCompletion(true); - aggregatorFactoryBean.setSendPartialResultOnExpiry(true); - return aggregatorFactoryBean; - } - - @Bean - MessageGroupStore messageGroupStore() { - SimpleMessageStore messageGroupStore = new SimpleMessageStore(); - messageGroupStore.setTimeoutOnIdle(true); - messageGroupStore.setCopyOnGet(false); - return messageGroupStore; - } - - @Bean - public JdbcMessageHandler jdbcMessageHandler(DataSource dataSource) { - final MultiValueMap columnExpressionVariations = new LinkedMultiValueMap<>(); - for (Map.Entry entry : this.properties.getColumnsMap().entrySet()) { - String value = entry.getValue(); - columnExpressionVariations.add(entry.getKey(), this.spelExpressionParser.parseExpression(value)); - if (!value.startsWith("payload")) { - String qualified = "payload." + value; - try { - columnExpressionVariations.add(entry.getKey(), - this.spelExpressionParser.parseExpression(qualified)); - } - catch (SpelParseException e) { - logger.info("failed to parse qualified fallback expression " + qualified + - "; be sure your expression uses the 'payload.' prefix where necessary"); - } - } - } - JdbcMessageHandler jdbcMessageHandler = new JdbcMessageHandler(dataSource, - generateSql(this.properties.getTableName(), columnExpressionVariations.keySet())) { - - @Override - protected void handleMessageInternal(final Message message) { - Message convertedMessage = message; - if (message.getPayload() instanceof byte[] || message.getPayload() instanceof Iterable) { - - final String contentType = message.getHeaders().containsKey(MessageHeaders.CONTENT_TYPE) - ? message.getHeaders().get(MessageHeaders.CONTENT_TYPE).toString() - : MimeTypeUtils.APPLICATION_JSON_VALUE; - if (message.getPayload() instanceof Iterable) { - Stream messageStream = - StreamSupport.stream(((Iterable) message.getPayload()).spliterator(), false) - .map(payload -> { - if (payload instanceof byte[]) { - return convertibleContentType(contentType) ? - new String(((byte[]) payload)) : payload; - } - else { - return payload; - } - }); - convertedMessage = new MutableMessage<>(messageStream.collect(Collectors.toList()), - message.getHeaders()); - } - else { - if (convertibleContentType(contentType)) { - convertedMessage = new MutableMessage<>(new String(((byte[]) message.getPayload())), - message.getHeaders()); - } - } - } - super.handleMessageInternal(convertedMessage); - } - }; - SqlParameterSourceFactory parameterSourceFactory = - new ParameterFactory(columnExpressionVariations, this.evaluationContext); - jdbcMessageHandler.setSqlParameterSourceFactory(parameterSourceFactory); - return jdbcMessageHandler; - } - - @ConditionalOnProperty("jdbc.consumer.initialize") - @Bean - public DataSourceInitializer nonBootDataSourceInitializer(DataSource dataSource, ResourceLoader resourceLoader) { - DataSourceInitializer dataSourceInitializer = new DataSourceInitializer(); - dataSourceInitializer.setDataSource(dataSource); - ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(); - databasePopulator.setIgnoreFailedDrops(true); - dataSourceInitializer.setDatabasePopulator(databasePopulator); - if ("true".equals(properties.getInitialize())) { - databasePopulator.addScript( - new DefaultInitializationScriptResource(this.properties.getTableName(), - this.properties.getColumnsMap().keySet())); - } - else { - databasePopulator.addScript(resourceLoader.getResource(this.properties.getInitialize())); - } - return dataSourceInitializer; - } - - private static final class ParameterFactory implements SqlParameterSourceFactory { - - private final MultiValueMap columnExpressions; - - private final EvaluationContext context; - - ParameterFactory(MultiValueMap columnExpressions, EvaluationContext context) { - this.columnExpressions = columnExpressions; - this.context = context; - } - - @Override - public SqlParameterSource createParameterSource(Object o) { - if (!(o instanceof Message)) { - throw new IllegalArgumentException("Unable to handle type " + o.getClass().getName()); - } - Message message = (Message) o; - MapSqlParameterSource parameterSource = new MapSqlParameterSource(); - for (Map.Entry> entry : this.columnExpressions.entrySet()) { - String key = entry.getKey(); - List spels = entry.getValue(); - Object value = NOT_SET; - EvaluationException lastException = null; - for (Expression spel : spels) { - try { - value = spel.getValue(context, message); - break; - } - catch (EvaluationException e) { - lastException = e; - } - } - if (value == NOT_SET) { - if (lastException != null) { - logger.info("Could not find value for column '" + key + "': " + lastException.getMessage()); - } - parameterSource.addValue(key, null); - } - else { - parameterSource.addValue(key, value); - } - } - return parameterSource; - } - - } - -} diff --git a/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerProperties.java b/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerProperties.java deleted file mode 100644 index a3c5d3f1..00000000 --- a/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerProperties.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * @author Eric Bottard - * @author Artem Bilan - * @author Oliver Flasch - */ -@ConfigurationProperties("jdbc.consumer") -public class JdbcConsumerProperties { - - @Autowired - private ShorthandMapConverter shorthandMapConverter; - - /** - * The name of the table to write into. - */ - private String tableName = "messages"; - - /** - * The comma separated colon-based pairs of column names and SpEL expressions for values to insert/update. - * Names are used at initialization time to issue the DDL. - */ - private String columns = "payload:payload.toString()"; - - /** - * 'true', 'false' or the location of a custom initialization script for the table. - */ - private String initialize = "false"; - - /** - * Threshold in number of messages when data will be flushed to database table. - */ - private int batchSize = 1; - - /** - * Idle timeout in milliseconds when data is automatically flushed to database table. - */ - private long idleTimeout = -1L; - - private Map columnsMap; - - public String getTableName() { - return this.tableName; - } - - public void setTableName(String tableName) { - this.tableName = tableName; - } - - public String getColumns() { - return this.columns; - } - - public void setColumns(String columns) { - this.columns = columns; - } - - public String getInitialize() { - return this.initialize; - } - - public void setInitialize(String initialize) { - this.initialize = initialize; - } - - public int getBatchSize() { - return this.batchSize; - } - - public void setBatchSize(int batchSize) { - this.batchSize = batchSize; - } - - public long getIdleTimeout() { - return this.idleTimeout; - } - - public void setIdleTimeout(long idleTimeout) { - this.idleTimeout = idleTimeout; - } - - Map getColumnsMap() { - if (this.columnsMap == null) { - this.columnsMap = this.shorthandMapConverter.convert(this.columns); - } - return this.columnsMap; - } -} diff --git a/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/ShorthandMapConverter.java b/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/ShorthandMapConverter.java deleted file mode 100644 index 78534e99..00000000 --- a/functions/consumer/jdbc-consumer/src/main/java/org/springframework/cloud/fn/consumer/jdbc/ShorthandMapConverter.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import java.util.LinkedHashMap; -import java.util.Map; - -import org.springframework.core.convert.converter.Converter; -import org.springframework.util.Assert; - -/** - * A Converter from String to Map that accepts csv {@literal key:value} pairs - * (similar to what comes out of the box in Spring Core) but also simple - * {@literal key} items, in which case the value is assumed to be equal to the key. - *

- *

Additionally, commas and colons can be escaped by using a backslash, which is - * useful if said mappings are to be used for SpEL for example.

- * - * @author Eric Bottard - * @author Artem Bilan - */ -public class ShorthandMapConverter implements Converter> { - - @Override - public Map convert(String source) { - Map result = new LinkedHashMap<>(); - - // Split on comma if not preceded by backslash - String[] mappings = source.split("(? message = MessageBuilder.withPayload(sent).build(); - jdbcConsumer.accept(message); - } - Awaitility.await().until(() -> jdbcOperations - .queryForObject("select count(*) from messages", Integer.class), value -> value == numberOfInserts); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/DataReceivedAsByteArrayTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/DataReceivedAsByteArrayTests.java deleted file mode 100644 index e4e9b9df..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/DataReceivedAsByteArrayTests.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@TestPropertySource(properties = "jdbc.consumer.columns=a") -public class DataReceivedAsByteArrayTests extends JdbcConsumerApplicationTests { - - @Test - public void testInsertionWhenDataReceivedAsByteArray() { - String hello = "{\"a\": \"hello\"}"; - final Message message = MessageBuilder.withPayload(hello.getBytes()).build(); - jdbcConsumer.accept(message); - final Integer count = - jdbcOperations.queryForObject("select count(*) from messages where a = ?", Integer.class, "hello"); - assertThat(count).isEqualTo(1); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ExplicitTableCreationTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ExplicitTableCreationTests.java deleted file mode 100644 index bba4fb4e..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ExplicitTableCreationTests.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@TestPropertySource(properties = {"jdbc.consumer.tableName=foobar", - "jdbc.consumer.initialize=classpath:explicit-script.sql", - "jdbc.consumer.columns=a,b"}) -public class ExplicitTableCreationTests extends JdbcConsumerApplicationTests { - - @Test - public void testInsertion() { - Payload sent = new Payload("hello", 42); - final Message message = MessageBuilder.withPayload(sent).build(); - jdbcConsumer.accept(message); - Payload result = - jdbcOperations.query("select a, b from foobar", new BeanPropertyRowMapper<>(Payload.class)) - .get(0); - assertThat(result).isEqualToComparingFieldByField(sent); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/HeaderInsertTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/HeaderInsertTests.java deleted file mode 100644 index b8c1ceaf..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/HeaderInsertTests.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@TestPropertySource(properties = "jdbc.consumer.columns=a: headers[foo]") -public class HeaderInsertTests extends JdbcConsumerApplicationTests { - - @Test - public void testHeaderInsertion() { - Payload sent = new Payload("hello", 42); - final Message message = MessageBuilder.withPayload(sent) - .setHeader("foo", "bar").build(); - jdbcConsumer.accept(message); - assertThat(jdbcOperations.queryForObject("select count(*) from messages where a = ?", - Integer.class, "bar")).isEqualTo(1); - } -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ImplicitTableCreationTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ImplicitTableCreationTests.java deleted file mode 100644 index 0d79c476..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/ImplicitTableCreationTests.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@TestPropertySource(properties = { - "jdbc.consumer.tableName=no_script", - "jdbc.consumer.initialize=true", - "jdbc.consumer.columns=a,b"}) -public class ImplicitTableCreationTests extends JdbcConsumerApplicationTests { - - @Test - public void testInsertion() { - Payload sent = new Payload("hello", 42); - final Message message = MessageBuilder.withPayload(sent).build(); - jdbcConsumer.accept(message); - Payload result = jdbcOperations - .query("select a, b from no_script", new BeanPropertyRowMapper<>(Payload.class)).get(0); - assertThat(result).isEqualToComparingFieldByField(sent); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerApplicationTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerApplicationTests.java deleted file mode 100644 index c069ca3b..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/JdbcConsumerApplicationTests.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import java.util.function.Consumer; - -import org.junit.jupiter.api.AfterEach; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.jdbc.core.JdbcOperations; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; - -/** - * @author Soby Chacko - */ -@SpringBootTest -@DirtiesContext -public class JdbcConsumerApplicationTests { - - @Autowired - Consumer> jdbcConsumer; - - @Autowired - JdbcOperations jdbcOperations; - - @Autowired - JdbcTemplate jdbcTemplate; - - @AfterEach - public void cleanup() { - jdbcOperations.execute("DROP TABLE MESSAGES IF EXISTS"); - } - - static class Payload { - - private String a; - - private Integer b; - - Payload() { - } - - Payload(String a, Integer b) { - this.a = a; - this.b = b; - } - - public String getA() { - return a; - } - - public void setA(String a) { - this.a = a; - } - - public Integer getB() { - return b; - } - - public void setB(Integer b) { - this.b = b; - } - - @Override - public String toString() { - return a + b; - } - - } - - @SpringBootApplication - static class JdbcConsumerTestApplication { - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/JsonStringPayloadInsertTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/JsonStringPayloadInsertTests.java deleted file mode 100644 index c167e70e..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/JsonStringPayloadInsertTests.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@TestPropertySource(properties = "jdbc.consumer.columns=a,b") -public class JsonStringPayloadInsertTests extends JdbcConsumerApplicationTests { - - @Test - public void testInsertion() { - String stringA = "{\"a\": \"hello1\", \"b\": 42}"; - String stringB = "{\"a\": \"hello2\", \"b\": null}"; - String stringC = "{\"a\": \"hello3\"}"; - final Message message1 = MessageBuilder.withPayload(stringA).build(); - jdbcConsumer.accept(message1); - final Message message2 = MessageBuilder.withPayload(stringB).build(); - jdbcConsumer.accept(message2); - final Message message3 = MessageBuilder.withPayload(stringC).build(); - jdbcConsumer.accept(message3); - assertThat(jdbcOperations.queryForObject( - "select count(*) from messages where a = ? and b = ?", - Integer.class, "hello1", 42)).isEqualTo(1); - assertThat(jdbcOperations.queryForObject( - "select count(*) from messages where a = ? and b IS NULL", - Integer.class, "hello2")).isEqualTo(1); - assertThat(jdbcOperations.queryForObject( - "select count(*) from messages where a = ? and b IS NULL", - Integer.class, "hello3")).isEqualTo(1); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/MapPayloadInsertTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/MapPayloadInsertTests.java deleted file mode 100644 index 9ecce9cf..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/MapPayloadInsertTests.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import java.util.HashMap; -import java.util.Map; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; -import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@TestPropertySource(properties = "jdbc.consumer.columns=a,b") -public class MapPayloadInsertTests extends JdbcConsumerApplicationTests { - - @Test - public void testInsertion() { - NamedParameterJdbcOperations namedParameterJdbcOperations = new NamedParameterJdbcTemplate(jdbcOperations); - Map mapA = new HashMap<>(); - mapA.put("a", "hello1"); - mapA.put("b", 42); - Map mapB = new HashMap<>(); - mapB.put("a", "hello2"); - mapB.put("b", null); - Map mapC = new HashMap<>(); - mapC.put("a", "hello3"); - final Message> message1 = MessageBuilder.withPayload(mapA).build(); - jdbcConsumer.accept(message1); - final Message> message2 = MessageBuilder.withPayload(mapB).build(); - jdbcConsumer.accept(message2); - final Message> message3 = MessageBuilder.withPayload(mapC).build(); - jdbcConsumer.accept(message3); - assertThat(namedParameterJdbcOperations.queryForObject( - "select count(*) from messages where a = :a and b = :b", mapA, Integer.class)).isEqualTo(1); - assertThat(namedParameterJdbcOperations.queryForObject( - "select count(*) from messages where a = :a and b IS NULL", mapB, Integer.class)).isEqualTo(1); - assertThat(namedParameterJdbcOperations.queryForObject( - "select count(*) from messages where a = :a and b IS NULL", mapC, Integer.class)).isEqualTo(1); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleBatchInsertTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleBatchInsertTests.java deleted file mode 100644 index 29d52b6f..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleBatchInsertTests.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@TestPropertySource(properties = "jdbc.consumer.batchSize=1000") -public class SimpleBatchInsertTests extends JdbcConsumerApplicationTests { - - @Test - public void testBatchInsertion() { - final int numberOfInserts = 5000; - Payload sent = new Payload("hello", 42); - for (int i = 0; i < numberOfInserts; i++) { - final Message message = MessageBuilder.withPayload(sent).build(); - jdbcConsumer.accept(message); - } - int result = jdbcOperations.queryForObject("select count(*) from messages", Integer.class); - assertThat(result).isEqualTo(numberOfInserts); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleInsertTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleInsertTests.java deleted file mode 100644 index 66566f96..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleInsertTests.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -public class SimpleInsertTests extends JdbcConsumerApplicationTests { - - @Test - public void testSimpleInsert() { - Payload sent = new Payload("hello", 42); - final Message message = MessageBuilder.withPayload(sent).build(); - jdbcConsumer.accept(message); - String result = jdbcOperations.queryForObject("select payload from messages", String.class); - assertThat(result).isEqualTo(("hello42")); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleMappingTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleMappingTests.java deleted file mode 100644 index 3efbe4b4..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SimpleMappingTests.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@TestPropertySource(properties = "jdbc.consumer.columns=a,b") -public class SimpleMappingTests extends JdbcConsumerApplicationTests { - - @Test - public void testInsertion() { - Payload sent = new Payload("hello", 42); - final Message message = MessageBuilder.withPayload(sent).build(); - jdbcConsumer.accept(message); - Payload result = jdbcOperations - .query("select a, b from messages", new BeanPropertyRowMapper<>(Payload.class)).get(0); - assertThat(result).isEqualToComparingFieldByField(sent); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SpELTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SpELTests.java deleted file mode 100644 index 8ec1ddf0..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/SpELTests.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -// annotation below relies on java.util.Properties so backslash needs to be doubled -@TestPropertySource(properties = "jdbc.consumer.columns=a: a.substring(0\\\\, 4), b: b + 624") -public class SpELTests extends JdbcConsumerApplicationTests { - - @Test - public void testInsertion() { - Payload sent = new Payload("hello", 42); - final Message message = MessageBuilder.withPayload(sent).build(); - jdbcConsumer.accept(message); - 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); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/UnqualifiableColumnExpressionTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/UnqualifiableColumnExpressionTests.java deleted file mode 100644 index 3f5f829a..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/UnqualifiableColumnExpressionTests.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@TestPropertySource(properties = "jdbc.consumer.columns=a: new StringBuilder(payload.a).reverse().toString(), b") -public class UnqualifiableColumnExpressionTests extends JdbcConsumerApplicationTests { - - @Test - public void doesNotFailParsingUnqualifiableExpression() { - // if the app initializes, the test condition passes, but go ahead and apply the column expression anyway - jdbcConsumer.accept(MessageBuilder.withPayload(new Payload("desrever", 123)).build()); - assertThat(jdbcOperations.queryForObject("select count(*) from messages where a = ? and b = ?", - Integer.class, "reversed", 123)).isEqualTo(1); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/VaryingInsertTests.java b/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/VaryingInsertTests.java deleted file mode 100644 index 8fafda2b..00000000 --- a/functions/consumer/jdbc-consumer/src/test/java/org/springframework/cloud/fn/consumer/jdbc/VaryingInsertTests.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.jdbc; - -import java.util.List; - -import org.assertj.core.api.Assertions; -import org.junit.jupiter.api.Test; - -import org.springframework.integration.support.MessageBuilder; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -/** - * @author Eric Bottard - * @author Thomas Risberg - * @author Artem Bilan - * @author Robert St. John - * @author Oliver Flasch - * @author Soby Chacko - * @author Szabolcs Stremler - */ -@TestPropertySource(properties = "jdbc.consumer.columns=a,b") -public class VaryingInsertTests extends JdbcConsumerApplicationTests { - - @Test - public void testInsertion() { - Payload a = new Payload("hello", 42); - Payload b = new Payload("world", 12); - Payload c = new Payload("bonjour", null); - Payload d = new Payload(null, 22); - final Message message1 = MessageBuilder.withPayload(a).build(); - jdbcConsumer.accept(message1); - final Message message2 = MessageBuilder.withPayload(b).build(); - jdbcConsumer.accept(message2); - final Message message3 = MessageBuilder.withPayload(c).build(); - jdbcConsumer.accept(message3); - final Message message4 = MessageBuilder.withPayload(d).build(); - jdbcConsumer.accept(message4); - List result = jdbcOperations - .query("select a, b from messages", new BeanPropertyRowMapper<>(Payload.class)); - Assertions.assertThat(result).extracting("a").containsExactly("hello", "world", "bonjour", null); - Assertions.assertThat(result).extracting("b").contains(42, 12, 22, null); - } - -} diff --git a/functions/consumer/jdbc-consumer/src/test/resources/explicit-script.sql b/functions/consumer/jdbc-consumer/src/test/resources/explicit-script.sql deleted file mode 100644 index ac07d2d0..00000000 --- a/functions/consumer/jdbc-consumer/src/test/resources/explicit-script.sql +++ /dev/null @@ -1,6 +0,0 @@ --- Used in test for explicit script - -create table foobar( - a varchar(2000), - b VARCHAR (2000) -); diff --git a/functions/consumer/jdbc-consumer/src/test/resources/schema.sql b/functions/consumer/jdbc-consumer/src/test/resources/schema.sql deleted file mode 100644 index 65e85283..00000000 --- a/functions/consumer/jdbc-consumer/src/test/resources/schema.sql +++ /dev/null @@ -1,7 +0,0 @@ --- Run by default by Boot infrastructure - -create table messages( - a varchar(2000), - b VARCHAR (2000), - payload VARCHAR (2000) -); diff --git a/functions/consumer/kafka-publisher/README.adoc b/functions/consumer/kafka-publisher/README.adoc deleted file mode 100644 index de8027cd..00000000 --- a/functions/consumer/kafka-publisher/README.adoc +++ /dev/null @@ -1,31 +0,0 @@ -# Apache Kafka Publisher (Consumer function) - -A `Consumer>` that allows to publish messages to Apache Kafka topic. - - -## Beans for injection - -The `KafkaPublisherConfiguration` is an auto-configuration, so no need to import anything. - -The `Consumer> kafkaPublisher` bean can be injected into the target service for producing data into Kafka topic. - -## Configuration Options - -All configuration properties are prefixed with `kafka.publisher`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherProperties.java[KafkaPublisherProperties]. -Also, this artifact fully depends on Spring for Apache Kafka auto-configuration and injects a `KafkaTemplate` from there. - -A `ComponentCustomizer>` bean can be added in the target project to provide any custom options for the `KafkaProducerMessageHandlerSpec` configuration used by the `kafkaPublisher`. - -The `KafkaPublisherConfiguration` also exposes 3 `PublishSubscribeChannel`: `kafkaPublisherSuccessChannel`, `kafkaPublisherFailureChannel`, `kafkaPublisherFuturesChannel`. -They are mapped to respective options of the `KafkaProducerMessageHandler`. -They may be subscribed in the target project any possible Spring Integration way. -See more information about `KafkaProducerMessageHandler` configuration and behavior in Spring Integration https://docs.spring.io/spring-integration/docs/current/reference/html/kafka.html#kafka-outbound[documentation]. - -## Tests - - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/kafka-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes an Apache Kafka sink. diff --git a/functions/consumer/kafka-publisher/pom.xml b/functions/consumer/kafka-publisher/pom.xml deleted file mode 100644 index fa3c2a74..00000000 --- a/functions/consumer/kafka-publisher/pom.xml +++ /dev/null @@ -1,34 +0,0 @@ - - 4.0.0 - - - spring-functions-parent - org.springframework.cloud.fn - 5.0.0-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/functions/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfiguration.java b/functions/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfiguration.java deleted file mode 100644 index 6138f10b..00000000 --- a/functions/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfiguration.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.kafka; - -import java.time.Duration; -import java.util.function.Consumer; - -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.context.properties.PropertyMapper; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.integration.channel.PublishSubscribeChannel; -import org.springframework.integration.expression.ValueExpression; -import org.springframework.integration.kafka.dsl.Kafka; -import org.springframework.integration.kafka.dsl.KafkaProducerMessageHandlerSpec; -import org.springframework.integration.kafka.outbound.KafkaProducerMessageHandler; -import org.springframework.kafka.core.KafkaTemplate; -import org.springframework.kafka.support.DefaultKafkaHeaderMapper; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageChannel; - -/** - * A configuration for Apache Kafka Publisher (Consumer function). - * Uses a {@link KafkaProducerMessageHandlerSpec} to publish a message to Kafka topic. - * - * @author Artem Bilan - * - * @since 4.0 - */ -@AutoConfiguration(after = KafkaAutoConfiguration.class) -@EnableConfigurationProperties(KafkaPublisherProperties.class) -public class KafkaPublisherConfiguration { - - /** - * The function to produce messages to the Kafka topic. - * @param kafkaProducerMessageHandler the handler to publish messages to Kafka. - * @return the consumer for accepting message for producing to Kafka. - */ - @Bean - public Consumer> kafkaPublisher(KafkaProducerMessageHandler kafkaProducerMessageHandler) { - return kafkaProducerMessageHandler::handleMessage; - } - - @Bean - public KafkaProducerMessageHandler kafkaProducerMessageHandlerSpec(KafkaTemplate kafkaTemplate, - KafkaPublisherProperties kafkaPublisherProperties, - PublishSubscribeChannel kafkaPublisherSuccessChannel, - PublishSubscribeChannel kafkaPublisherFailureChannel, - PublishSubscribeChannel kafkaPublisherFuturesChannel, - @Nullable ComponentCustomizer> kafkaProducerSpecComponentCustomizer) { - - var kafkaProducerMessageHandlerSpec = Kafka.outboundChannelAdapter(kafkaTemplate); - - PropertyMapper mapper = PropertyMapper.get().alwaysApplyingWhenNonNull(); - - mapper.from(kafkaPublisherProperties.getTopic()).to(kafkaProducerMessageHandlerSpec::topic); - mapper.from(kafkaPublisherProperties.getTopicExpression()).to(kafkaProducerMessageHandlerSpec::topicExpression); - mapper.from(kafkaPublisherProperties.getKey()).to(kafkaProducerMessageHandlerSpec::messageKey); - mapper.from(kafkaPublisherProperties.getKeyExpression()).to(kafkaProducerMessageHandlerSpec::messageKeyExpression); - mapper.from(kafkaPublisherProperties.getPartition()).to(kafkaProducerMessageHandlerSpec::partitionId); - mapper.from(kafkaPublisherProperties.getPartitionExpression()).to(kafkaProducerMessageHandlerSpec::partitionIdExpression); - mapper.from(kafkaPublisherProperties.getTimestamp()).as(ValueExpression::new).to(kafkaProducerMessageHandlerSpec::timestampExpression); - mapper.from(kafkaPublisherProperties.getTimestampExpression()).to(kafkaProducerMessageHandlerSpec::timestampExpression); - mapper.from(kafkaPublisherProperties.getSendTimeout()).as(Duration::toMillis).to(kafkaProducerMessageHandlerSpec::sendTimeout); - mapper.from(kafkaPublisherProperties.isUseTemplateConverter()).to(kafkaProducerMessageHandlerSpec::useTemplateConverter); - - kafkaProducerMessageHandlerSpec.headerMapper(new DefaultKafkaHeaderMapper(kafkaPublisherProperties.getMappedHeaders())); - - kafkaProducerMessageHandlerSpec.sendSuccessChannel(kafkaPublisherSuccessChannel); - kafkaProducerMessageHandlerSpec.sendFailureChannel(kafkaPublisherFailureChannel); - kafkaProducerMessageHandlerSpec.futuresChannel(kafkaPublisherFuturesChannel); - - if (kafkaProducerSpecComponentCustomizer != null) { - kafkaProducerSpecComponentCustomizer.customize(kafkaProducerMessageHandlerSpec); - } - - return kafkaProducerMessageHandlerSpec.get(); - } - - /** - * @see KafkaProducerMessageHandler#setSendSuccessChannel(MessageChannel) - */ - @Bean - public PublishSubscribeChannel kafkaPublisherSuccessChannel() { - return new PublishSubscribeChannel(); - } - - /** - * @see KafkaProducerMessageHandler#setSendFailureChannel(MessageChannel) - */ - @Bean - public PublishSubscribeChannel kafkaPublisherFailureChannel() { - return new PublishSubscribeChannel(); - } - - /** - * @see KafkaProducerMessageHandler#setFuturesChannel(MessageChannel) - */ - @Bean - public PublishSubscribeChannel kafkaPublisherFuturesChannel() { - return new PublishSubscribeChannel(); - } - -} diff --git a/functions/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherProperties.java b/functions/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherProperties.java deleted file mode 100644 index 4994cab6..00000000 --- a/functions/consumer/kafka-publisher/src/main/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherProperties.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.kafka; - -import java.time.Duration; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; - -/** - * Properties for the Kafka Publisher (Consumer function). - * - * @author Artem Bilan - * - * @since 4.0 - */ -@ConfigurationProperties("kafka.publisher") -public class KafkaPublisherProperties { - - /** - * Kafka topic - overridden by topicExpression, if supplied. Defaults to KafkaTemplate.getDefaultTopic() - */ - private String topic; - - /** - * A SpEL expression that evaluates to a Kafka topic. - */ - private Expression topicExpression; - - /** - * Kafka record key - overridden by keyExpression, if supplied. - */ - private String key; - - /** - * A SpEL expression that evaluates to a Kafka record key. - */ - private Expression keyExpression; - - /** - * Kafka topic partition - overridden by partitionExpression, if supplied. - */ - private Integer partition; - - /** - * A SpEL expression that evaluates to a Kafka topic partition. - */ - private Expression partitionExpression; - - /** - * Kafka record timestamp - overridden by timestampExpression, if supplied. - */ - private Long timestamp; - - /** - * A SpEL expression that evaluates to a Kafka record timestamp. - */ - private Expression timestampExpression; - - /** - * True if Kafka producer handler should operation in a sync mode. - */ - private boolean sync; - - /** - * How long Kafka producer handler should wait for send operation results. Defaults to 10 seconds. - */ - private Duration sendTimeout = Duration.ofSeconds(10); - - /** - * Headers that will be mapped. - */ - private String[] mappedHeaders = { "*" }; - - /** - * Whether to use the template's message converter to create a Kafka record. - */ - private boolean useTemplateConverter; - - public String getTopic() { - return this.topic; - } - - public void setTopic(String topic) { - this.topic = topic; - } - - public Expression getTopicExpression() { - return this.topicExpression; - } - - public void setTopicExpression(Expression topicExpression) { - this.topicExpression = topicExpression; - } - - public String getKey() { - return this.key; - } - - public void setKey(String key) { - this.key = key; - } - - public Expression getKeyExpression() { - return this.keyExpression; - } - - public void setKeyExpression(Expression keyExpression) { - this.keyExpression = keyExpression; - } - - public Integer getPartition() { - return this.partition; - } - - public void setPartition(Integer partition) { - this.partition = partition; - } - - public Expression getPartitionExpression() { - return this.partitionExpression; - } - - public void setPartitionExpression(Expression partitionExpression) { - this.partitionExpression = partitionExpression; - } - - public Long getTimestamp() { - return this.timestamp; - } - - public void setTimestamp(Long timestamp) { - this.timestamp = timestamp; - } - - public Expression getTimestampExpression() { - return this.timestampExpression; - } - - public void setTimestampExpression(Expression timestampExpression) { - this.timestampExpression = timestampExpression; - } - - public boolean isSync() { - return this.sync; - } - - public void setSync(boolean sync) { - this.sync = sync; - } - - public Duration getSendTimeout() { - return this.sendTimeout; - } - - public void setSendTimeout(Duration sendTimeout) { - this.sendTimeout = sendTimeout; - } - - public String[] getMappedHeaders() { - return this.mappedHeaders; - } - - public void setMappedHeaders(String[] mappedHeaders) { - this.mappedHeaders = mappedHeaders; - } - - public boolean isUseTemplateConverter() { - return this.useTemplateConverter; - } - - public void setUseTemplateConverter(boolean useTemplateConverter) { - this.useTemplateConverter = useTemplateConverter; - } - -} diff --git a/functions/consumer/kafka-publisher/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/consumer/kafka-publisher/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 9be4c43d..00000000 --- a/functions/consumer/kafka-publisher/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.consumer.kafka.KafkaPublisherConfiguration diff --git a/functions/consumer/kafka-publisher/src/test/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfigurationTests.java b/functions/consumer/kafka-publisher/src/test/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfigurationTests.java deleted file mode 100644 index 124af477..00000000 --- a/functions/consumer/kafka-publisher/src/test/java/org/springframework/cloud/fn/consumer/kafka/KafkaPublisherConfigurationTests.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.kafka; - -import java.time.Duration; -import java.util.Arrays; -import java.util.Map; -import java.util.function.Consumer; -import java.util.stream.Collectors; - -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; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.cloud.fn.common.config.SpelExpressionConverterConfiguration; -import org.springframework.context.ApplicationContext; -import org.springframework.integration.channel.PublishSubscribeChannel; -import org.springframework.integration.support.MessageBuilder; -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 static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatExceptionOfType; - -/** - * @author Artem Bilan - * - * @since 4.0 - */ -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"; - this.contextRunner.withPropertyValues("spring.kafka.template.defaultTopic=" + defaultTopic) - .run((context) -> { - KafkaTemplate kafkaTemplate = obtainKafkaTemplate(context); - Consumer> kafkaPublisher = getKafkaPublisher(context); - String testData = "test data"; - kafkaPublisher.accept(new GenericMessage<>(testData)); - ConsumerRecord receive = kafkaTemplate.receive(defaultTopic, 0, 0, Duration.ofSeconds(10)); - assertThat(receive).extracting(ConsumerRecord::value).isEqualTo(testData); - }); - } - - @Test - void wrongPartitionViaProperties() { - this.contextRunner.withPropertyValues( - "spring.kafka.producer.properties[max.block.ms]=1000", - "kafka.publisher.topic=topic1", - "kafka.publisher.partition=1", // Our broker allows only one partition for auto-created topic - "kafka.publisher.sync=true") - .run((context) -> { - Consumer> kafkaConsumer = getKafkaPublisher(context); - assertThatExceptionOfType(MessageHandlingException.class) - .isThrownBy(() -> kafkaConsumer.accept(new GenericMessage<>("test data"))) - .withCauseInstanceOf(KafkaException.class) - .withStackTraceContaining("Topic topic1 not present in metadata after 1000 ms."); - }); - } - - @Test - void successChannelInteractionAndMappedHeaders() { - this.contextRunner.withPropertyValues("kafka.publisher.topicExpression=headers.topic", - "kafka.publisher.mappedHeaders=mapped") - .run((context) -> { - KafkaTemplate kafkaTemplate = obtainKafkaTemplate(context); - Consumer> kafkaConsumer = getKafkaPublisher(context); - - PublishSubscribeChannel kafkaConsumerSuccessChannel = - context.getBean("kafkaPublisherSuccessChannel", PublishSubscribeChannel.class); - - Sinks.One> successSend = Sinks.one(); - - kafkaConsumerSuccessChannel.subscribe(successSend::tryEmitValue); - - String testTopic = "topic2"; - String testData = "some other data"; - Message testMessage = - MessageBuilder.withPayload(testData) - .setHeader("topic", testTopic) - .setHeader("mapped", "mapped value") - .setHeader("not mapped", "not mapped") - .build(); - - kafkaConsumer.accept(testMessage); - - ConsumerRecord receive = kafkaTemplate.receive(testTopic, 0, 0, Duration.ofSeconds(10)); - assertThat(receive).extracting(ConsumerRecord::value).isEqualTo(testData); - Map headers = - Arrays.stream(receive.headers().toArray()) - .collect(Collectors.toMap(Header::key, (header) -> new String(header.value()))); - assertThat(headers) - .containsEntry("mapped", "mapped value") - .doesNotContainKeys("topic", "not mapped"); - - Message successMessage = successSend.asMono().block(Duration.ofSeconds(10)); - - assertThat(successMessage) - .satisfies(message -> { - assertThat(message.getPayload()).isEqualTo(testData); - MessageHeaders messageHeaders = message.getHeaders(); - assertThat(messageHeaders) - .containsKeys("topic", "mapped", "not mapped", KafkaHeaders.RECORD_METADATA); - assertThat(messageHeaders.get(KafkaHeaders.RECORD_METADATA)) - .isInstanceOf(RecordMetadata.class) - .extracting("topicPartition") - .isEqualTo(new TopicPartition(testTopic, 0)); - }); - }); - } - - @SuppressWarnings("unchecked") - private static KafkaTemplate obtainKafkaTemplate(ApplicationContext applicationContext) { - KafkaTemplate kafkaTemplate = applicationContext.getBean(KafkaTemplate.class); - kafkaTemplate.setConsumerFactory(applicationContext.getBean(ConsumerFactory.class)); - return kafkaTemplate; - } - - @SuppressWarnings("unchecked") - private static Consumer> getKafkaPublisher(ApplicationContext applicationContext) { - return (Consumer>) applicationContext.getBean("kafkaPublisher"); - } - -} diff --git a/functions/consumer/log-consumer/README.adoc b/functions/consumer/log-consumer/README.adoc deleted file mode 100644 index 2f3bd9ec..00000000 --- a/functions/consumer/log-consumer/README.adoc +++ /dev/null @@ -1,26 +0,0 @@ -# Log Consumer - -A consumer that allows you to log the data -The consumer uses the `LoggingMessageHandler` from Spring Integration. - -## Beans for injection - -You can import `LogConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> logConsumer` - -You can use `logConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `log`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/log/LogConsumerProperties.java[LogConsumerProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/log/LogConsumerApplicationTests.java[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/log-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a Log sink. \ No newline at end of file diff --git a/functions/consumer/log-consumer/pom.xml b/functions/consumer/log-consumer/pom.xml deleted file mode 100644 index e2346ab5..00000000 --- a/functions/consumer/log-consumer/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/log-consumer/src/main/java/org/springframework/cloud/fn/consumer/log/LogConsumerConfiguration.java b/functions/consumer/log-consumer/src/main/java/org/springframework/cloud/fn/consumer/log/LogConsumerConfiguration.java deleted file mode 100644 index ede6abaf..00000000 --- a/functions/consumer/log-consumer/src/main/java/org/springframework/cloud/fn/consumer/log/LogConsumerConfiguration.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2020-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.log; - -import java.util.function.Consumer; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.messaging.Message; - -/** - * The Configuration class for {@link Consumer} which logs incoming data. - * For the logging logic a Spring Integration {@link org.springframework.integration.handler.LoggingHandler} - * is used. - * If incoming payload is a {@code byte[]} and incoming message {@code contentType} header is text-compatible - * (e.g. {@code application/json}), it is converted into a {@link String}. - * Otherwise the payload is passed to logger as is. - * - * @author Artem Bilan - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(LogConsumerProperties.class) -public class LogConsumerConfiguration { - - @Bean - IntegrationFlow logConsumerFlow(LogConsumerProperties logSinkProperties) { - return IntegrationFlow.from(MessageConsumer.class, (gateway) -> gateway.beanName("logConsumer")) - .log(logSinkProperties.getLevel(), logSinkProperties.getName(), logSinkProperties.getExpression()) - .nullChannel(); - } - - private interface MessageConsumer extends Consumer> { - - } - -} diff --git a/functions/consumer/log-consumer/src/main/java/org/springframework/cloud/fn/consumer/log/LogConsumerProperties.java b/functions/consumer/log-consumer/src/main/java/org/springframework/cloud/fn/consumer/log/LogConsumerProperties.java deleted file mode 100644 index ffb54929..00000000 --- a/functions/consumer/log-consumer/src/main/java/org/springframework/cloud/fn/consumer/log/LogConsumerProperties.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.log; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.integration.handler.LoggingHandler; -import org.springframework.validation.annotation.Validated; - -import static org.springframework.integration.handler.LoggingHandler.Level.INFO; - -/** - * Configuration properties for the Log Sink app. - * - * @author Gary Russell - * @author Eric Bottard - * @author Chris Schaefer - * @author Artem Bilan - */ -@ConfigurationProperties("log") -@Validated -public class LogConsumerProperties { - - /** - * The name of the logger to use. - */ - @Value("${spring.application.name:log.consumer}") - private String name; - - /** - * A SpEL expression (against the incoming message) to evaluate as the logged message. - */ - private String expression = "payload"; - - /** - * The level at which to log messages. - */ - private LoggingHandler.Level level = INFO; - - @NotBlank - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - @NotBlank - public String getExpression() { - return expression; - } - - public void setExpression(String expression) { - this.expression = expression; - } - - @NotNull - public LoggingHandler.Level getLevel() { - return level; - } - - public void setLevel(LoggingHandler.Level level) { - this.level = level; - } - -} diff --git a/functions/consumer/log-consumer/src/test/java/org/springframework/cloud/fn/consumer/log/LogConsumerApplicationTests.java b/functions/consumer/log-consumer/src/test/java/org/springframework/cloud/fn/consumer/log/LogConsumerApplicationTests.java deleted file mode 100644 index 5b990a01..00000000 --- a/functions/consumer/log-consumer/src/test/java/org/springframework/cloud/fn/consumer/log/LogConsumerApplicationTests.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2020-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.log; - -import java.util.function.Consumer; -import java.util.function.Supplier; - -import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; - -import org.springframework.beans.DirectFieldAccessor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.core.log.LogAccessor; -import org.springframework.integration.handler.LoggingHandler; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.util.MimeType; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; - -/** - * @author Artem Bilan - */ -@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) -@SpringBootTest({ "log.name=foo", "log.level=warn", "log.expression=payload.toUpperCase()" }) -class LogConsumerApplicationTests { - - @Autowired - private Consumer> logConsumer; - - @Autowired - @Qualifier("logConsumerFlow.logging-channel-adapter#0") - private LoggingHandler loggingHandler; - - @Test - public void testJsonContentType() { - Message message = MessageBuilder.withPayload("{\"foo\":\"bar\"}") - .setHeader("contentType", new MimeType("json")) - .build(); - testMessage(message, "{\"foo\":\"bar\"}"); - } - - private void testMessage(Message message, String expectedPayload) { - assertThat(this.loggingHandler.getLevel()).isEqualTo(LoggingHandler.Level.WARN); - LogAccessor logger = TestUtils.getPropertyValue(this.loggingHandler, "messageLogger", LogAccessor.class); - assertThat(TestUtils.getPropertyValue(logger.getLog(), "logger.name")).isEqualTo("foo"); - logger = spy(logger); - new DirectFieldAccessor(this.loggingHandler).setPropertyValue("messageLogger", logger); - this.logConsumer.accept(message); - ArgumentCaptor> captor = ArgumentCaptor.forClass(Supplier.class); - verify(logger).warn(captor.capture()); - assertThat(captor.getValue().get()).isEqualTo(expectedPayload.toUpperCase()); - this.loggingHandler.setLogExpressionString("#this"); - this.logConsumer.accept(message); - verify(logger, times(2)).warn(captor.capture()); - -// Message captorMessage = (Message) captor.getAllValues().get(2); -// assertThat(captorMessage.getPayload()).isEqualTo(expectedPayload); -// -// MessageHeaders messageHeaders = captorMessage.getHeaders(); -// assertThat(messageHeaders).hasSize(4); -// -// assertThat(messageHeaders) -// .containsEntry(MessageHeaders.CONTENT_TYPE, message.getHeaders().get(MessageHeaders.CONTENT_TYPE)); - } - - @SpringBootApplication - static class LogConsumerTestApplication { - } -} diff --git a/functions/consumer/mongodb-consumer/README.adoc b/functions/consumer/mongodb-consumer/README.adoc deleted file mode 100644 index 236cf009..00000000 --- a/functions/consumer/mongodb-consumer/README.adoc +++ /dev/null @@ -1,31 +0,0 @@ -# MongoDB Consumer - -A consumer that allows you to insert records into MongoDB. - -## Beans for injection - -You can import `MongoDbConsumerConfiguration` in the application and then inject one of the following beans. - -`Function, Mono> mongodbConsumerFunction` - Allows you to subscribe. - -`Consumer> mongodbConsumer` - Wraps the function as a Consumer with no-op subscriber. - -You can use `mongodbConsumer` or `mongodbConsumerFunction` as a qualifier when injecting. - -The return value from the function can be ignored as this is used as a consumer to send records to MongoDB. - -## Configuration Options - -All configuration properties are prefixed with `mongodb.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/mongo/MongoDBConsumerProperties.java[MongoDBConsumerProperties]. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `ReactiveMongoDbStoringMessageHandler` configuration used by the `mongodbConsumer`. - -## Examples - -See this link:src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDBConsumerApplicationTests.java[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/mongodb-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a MongoDB sink. diff --git a/functions/consumer/mongodb-consumer/pom.xml b/functions/consumer/mongodb-consumer/pom.xml deleted file mode 100644 index 3e663799..00000000 --- a/functions/consumer/mongodb-consumer/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/mongodb-consumer/src/main/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerConfiguration.java b/functions/consumer/mongodb-consumer/src/main/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerConfiguration.java deleted file mode 100644 index e50d3528..00000000 --- a/functions/consumer/mongodb-consumer/src/main/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerConfiguration.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2017-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.mongo; - -import java.util.function.Consumer; -import java.util.function.Function; - -import reactor.core.publisher.Mono; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.mongodb.core.ReactiveMongoTemplate; -import org.springframework.expression.Expression; -import org.springframework.expression.common.LiteralExpression; -import org.springframework.integration.mongodb.outbound.ReactiveMongoDbStoringMessageHandler; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.messaging.ReactiveMessageHandler; - -/** - * A configuration for MongoDB Consumer function. Uses a - * {@link ReactiveMongoDbStoringMessageHandler} to save payload contents to Mongo DB. - * - * @author Artem Bilan - * @author David Turanski - * - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties({ MongoDbConsumerProperties.class }) -public class MongoDbConsumerConfiguration { - - private final MongoDbConsumerProperties properties; - - private final ReactiveMongoTemplate mongoTemplate; - - public MongoDbConsumerConfiguration(MongoDbConsumerProperties properties, ReactiveMongoTemplate mongoTemplate) { - this.properties = properties; - this.mongoTemplate = mongoTemplate; - } - - @Bean - public Consumer> mongodbConsumer(Function, Mono> mongodbConsumerFunction) { - return message -> mongodbConsumerFunction.apply(message).subscribe(); - } - - @Bean - public Function, Mono> mongodbConsumerFunction( - ReactiveMessageHandler mongoConsumerMessageHandler) { - - return mongoConsumerMessageHandler::handleMessage; - } - - @Bean - public ReactiveMessageHandler mongoConsumerMessageHandler( - @Nullable ComponentCustomizer mongoDbMessageHandlerCustomizer) { - - ReactiveMongoDbStoringMessageHandler mongoDbMessageHandler = new ReactiveMongoDbStoringMessageHandler( - this.mongoTemplate); - Expression collectionExpression = this.properties.getCollectionExpression(); - if (collectionExpression == null) { - collectionExpression = new LiteralExpression(this.properties.getCollection()); - } - mongoDbMessageHandler.setCollectionNameExpression(collectionExpression); - if (mongoDbMessageHandlerCustomizer != null) { - mongoDbMessageHandlerCustomizer.customize(mongoDbMessageHandler); - } - return mongoDbMessageHandler; - } - -} diff --git a/functions/consumer/mongodb-consumer/src/main/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerProperties.java b/functions/consumer/mongodb-consumer/src/main/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerProperties.java deleted file mode 100644 index 8986ce92..00000000 --- a/functions/consumer/mongodb-consumer/src/main/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerProperties.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2019-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.mongo; - -import jakarta.validation.constraints.AssertTrue; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.util.StringUtils; -import org.springframework.validation.annotation.Validated; -/** - * @author Artem Bilan - * @author David Turanski - * - */ -@ConfigurationProperties("mongodb.consumer") -@Validated -public class MongoDbConsumerProperties { - - /** - * The MongoDB collection to store data. - */ - private String collection; - - /** - * The SpEL expression to evaluate MongoDB collection. - */ - private Expression collectionExpression; - - public void setCollection(String collection) { - this.collection = collection; - } - - public String getCollection() { - return this.collection; - } - - public void setCollectionExpression(Expression collectionExpression) { - this.collectionExpression = collectionExpression; - } - - public Expression getCollectionExpression() { - return collectionExpression; - } - - @AssertTrue(message = "One of 'collection' or 'collectionExpression' is required") - private boolean isValid() { - return StringUtils.hasText(this.collection) || this.collectionExpression != null; - } -} diff --git a/functions/consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerApplicationTests.java b/functions/consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerApplicationTests.java deleted file mode 100644 index b5f43bfc..00000000 --- a/functions/consumer/mongodb-consumer/src/test/java/org/springframework/cloud/fn/consumer/mongo/MongoDbConsumerApplicationTests.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.mongo; - -import java.time.Duration; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Map; -import java.util.function.Consumer; - -import org.bson.Document; -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -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; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.awaitility.Awaitility.await; - -/** - * @author David Turanski - * @author Chris Bono - */ -@SpringBootTest(properties = { - "mongodb.consumer.collection=testing" -}) -class MongoDbConsumerApplicationTests implements MongoDbTestContainerSupport { - - @DynamicPropertySource - static void mongoDbProperties(DynamicPropertyRegistry registry) { - registry.add("spring.data.mongodb.port", MONGO_CONTAINER::getFirstMappedPort); - registry.add("spring.data.mongodb.database", () -> "test"); - } - - @Autowired - private MongoDbConsumerProperties properties; - - @Autowired - private Consumer> mongodbConsumer; - - @Autowired - private ReactiveMongoTemplate mongoTemplate; - - @Test - void testMongodbConsumer() { - Map data1 = new HashMap<>(); - data1.put("foo", "bar"); - - Map data2 = new HashMap<>(); - data2.put("firstName", "Foo"); - data2.put("lastName", "Bar"); - - Flux> messages = Flux.just( - new GenericMessage<>(data1), - new GenericMessage<>(data2), - new GenericMessage<>("{\"my_data\": \"THE DATA\"}")); - - messages.map(message -> { - mongodbConsumer.accept(message); - return message; - - }).subscribe(); - - await().timeout(Duration.ofSeconds(10)) - .until(() -> mongoTemplate.findAll(Document.class, properties.getCollection()).count().block() == 3L); - - StepVerifier.create(this.mongoTemplate.findAll(Document.class, properties.getCollection()) - .sort(Comparator.comparing(d -> d.get("_id").toString()))) - .assertNext(document -> { - assertThat(document.get("foo")).isEqualTo("bar"); - }) - .assertNext(document -> { - assertThat(document.get("firstName")).isEqualTo("Foo"); - assertThat(document.get("lastName")).isEqualTo("Bar"); - }) - .assertNext(document -> { - assertThat(document.get("my_data")).isEqualTo("THE DATA"); - }) - .verifyComplete(); - } - - @SpringBootApplication - static class MongoDbConsumerTestApplication { - } -} diff --git a/functions/consumer/mongodb-consumer/src/test/resources/logback-test.xml b/functions/consumer/mongodb-consumer/src/test/resources/logback-test.xml deleted file mode 100644 index 1378a823..00000000 --- a/functions/consumer/mongodb-consumer/src/test/resources/logback-test.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n - - - - - - - - - - diff --git a/functions/consumer/mqtt-consumer/README.adoc b/functions/consumer/mqtt-consumer/README.adoc deleted file mode 100644 index 2bc79d88..00000000 --- a/functions/consumer/mqtt-consumer/README.adoc +++ /dev/null @@ -1,33 +0,0 @@ -# MQTT Consumer - -A consumer that allows you to send messages using the MQTT protocol. - -## Beans for injection - -You can import `MqttConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> mqttConsumer` - -You can use `mqttConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `mqtt.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerProperties.java[MqttConsumerProperties]. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `MqttPahoMessageHandler` configuration used by the `mqttConsumer`. - -## SSL Configuration - -The MQTT Paho client can accept an SSL configuration via `MqttConnectOptions.setSSLProperties()`. -These properties are exposed on the `MqttProperties.sslProperties` map. -The keys for these SSL properties should be taken from the `org.eclipse.paho.client.mqttv3.internal.security.SSLSocketFactoryFactory` constants, which all start with the `com.ibm.ssl.` prefix. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerTests.java[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/mqtt-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a MQTT sink. diff --git a/functions/consumer/mqtt-consumer/pom.xml b/functions/consumer/mqtt-consumer/pom.xml deleted file mode 100644 index eb38c25e..00000000 --- a/functions/consumer/mqtt-consumer/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - mqtt-consumer - mqtt-consumer - mqtt consumer - - - - org.springframework.cloud.fn - mqtt-common - ${project.version} - - - diff --git a/functions/consumer/mqtt-consumer/src/main/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerConfiguration.java b/functions/consumer/mqtt-consumer/src/main/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerConfiguration.java deleted file mode 100644 index cd8d8a0d..00000000 --- a/functions/consumer/mqtt-consumer/src/main/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerConfiguration.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2017-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.mqtt; - -import java.util.function.Consumer; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.cloud.fn.common.mqtt.MqttConfiguration; -import org.springframework.cloud.fn.common.mqtt.MqttProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.integration.mqtt.core.MqttPahoClientFactory; -import org.springframework.integration.mqtt.outbound.MqttPahoMessageHandler; -import org.springframework.integration.mqtt.support.DefaultPahoMessageConverter; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHandler; - -/** - * A consumer that sends data to Mqtt. - * - * @author Janne Valkealahti - * - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties({ MqttProperties.class, MqttConsumerProperties.class }) -@Import(MqttConfiguration.class) -public class MqttConsumerConfiguration { - - @Autowired - private MqttConsumerProperties properties; - - @Autowired - private MqttPahoClientFactory mqttClientFactory; - - @Autowired - private BeanFactory beanFactory; - - @Bean - public Consumer> mqttConsumer(MessageHandler mqttOutbound) { - return mqttOutbound::handleMessage; - } - - @Bean - public MessageHandler mqttOutbound( - @Nullable ComponentCustomizer mqttMessageHandlerCustomizer) { - - MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler(properties.getClientId(), mqttClientFactory); - messageHandler.setAsync(properties.isAsync()); - messageHandler.setDefaultTopic(properties.getTopic()); - messageHandler.setConverter(pahoMessageConverter()); - if (mqttMessageHandlerCustomizer != null) { - mqttMessageHandlerCustomizer.customize(messageHandler); - } - return messageHandler; - } - - public DefaultPahoMessageConverter pahoMessageConverter() { - DefaultPahoMessageConverter converter = new DefaultPahoMessageConverter(properties.getQos(), - properties.isRetained(), properties.getCharset()); - converter.setBeanFactory(beanFactory); - return converter; - } - -} diff --git a/functions/consumer/mqtt-consumer/src/main/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerProperties.java b/functions/consumer/mqtt-consumer/src/main/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerProperties.java deleted file mode 100644 index 439bd89e..00000000 --- a/functions/consumer/mqtt-consumer/src/main/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerProperties.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2017-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.mqtt; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Size; -import org.hibernate.validator.constraints.Range; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * Properties for the Mqtt Consumer. - * - * @author Janne Valkealahti - * - */ -@Validated -@ConfigurationProperties("mqtt.consumer") -public class MqttConsumerProperties { - - /** - * identifies the client. - */ - private String clientId = "stream.client.id.sink"; - - /** - * the topic to which the sink will publish. - */ - private String topic = "stream.mqtt"; - - /** - * the quality of service to use. - */ - private int qos = 1; - - /** - * whether to set the 'retained' flag. - */ - private boolean retained = false; - - /** - * the charset used to convert a String payload to byte[]. - */ - private String charset = "UTF-8"; - - /** - * whether or not to use async sends. - */ - private boolean async = false; - - @Range(min = 0, max = 2) - public int getQos() { - return this.qos; - } - - public boolean isRetained() { - return this.retained; - } - - public void setQos(int qos) { - this.qos = qos; - } - - public void setRetained(boolean retained) { - this.retained = retained; - } - - @NotBlank - @Size(min = 1, max = 23) - public String getClientId() { - return this.clientId; - } - - public void setClientId(String clientId) { - this.clientId = clientId; - } - - @NotBlank - public String getTopic() { - return this.topic; - } - - public void setTopic(String topic) { - this.topic = topic; - } - - public String getCharset() { - return this.charset; - } - - public void setCharset(String charset) { - this.charset = charset; - } - - public boolean isAsync() { - return this.async; - } - - public void setAsync(boolean async) { - this.async = async; - } -} diff --git a/functions/consumer/mqtt-consumer/src/test/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerTests.java b/functions/consumer/mqtt-consumer/src/test/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerTests.java deleted file mode 100644 index c572a045..00000000 --- a/functions/consumer/mqtt-consumer/src/test/java/org/springframework/cloud/fn/consumer/mqtt/MqttConsumerTests.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright 2017-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.mqtt; - -import java.time.Duration; -import java.util.Properties; -import java.util.function.Consumer; - -import org.eclipse.paho.client.mqttv3.MqttConnectOptions; -import org.eclipse.paho.client.mqttv3.internal.security.SSLSocketFactoryFactory; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; -import org.testcontainers.containers.GenericContainer; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Bean; -import org.springframework.integration.channel.QueueChannel; -import org.springframework.integration.mqtt.core.MqttPahoClientFactory; -import org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter; -import org.springframework.integration.mqtt.support.DefaultPahoMessageConverter; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest(properties = { - "mqtt.consumer.topic=test", - "mqtt.ssl-properties.com.ibm.ssl.protocol=TLS", - "mqtt.ssl-properties.com.ibm.ssl.keyStoreType=TEST" }) -@DirtiesContext -@Tag("integration") -public class MqttConsumerTests { - - static { - GenericContainer mosquitto = - new GenericContainer<>("eclipse-mosquitto:2.0.13") - .withCommand("mosquitto -c /mosquitto-no-auth.conf") - .withReuse(true) - .withExposedPorts(1883) - .withStartupTimeout(Duration.ofSeconds(120)) - .withStartupAttempts(3); - mosquitto.start(); - final Integer mappedPort = mosquitto.getMappedPort(1883); - System.setProperty("mqtt.url", "tcp://localhost:" + mappedPort); - } - - @Autowired - private MqttPahoMessageDrivenChannelAdapter mqttPahoMessageDrivenChannelAdapter; - - @Autowired - private Consumer> mqttConsumer; - - @Autowired - protected QueueChannel queue; - - @AfterAll - public static void cleanup() { - System.clearProperty("mqtt.url"); - } - - @Test - public void testMqttConsumer() { - MqttConnectOptions connectionInfo = this.mqttPahoMessageDrivenChannelAdapter.getConnectionInfo(); - Properties sslProperties = connectionInfo.getSSLProperties(); - assertThat(sslProperties) - .containsEntry(SSLSocketFactoryFactory.SSLPROTOCOL, SSLSocketFactoryFactory.DEFAULT_PROTOCOL) - .containsEntry(SSLSocketFactoryFactory.KEYSTORETYPE, "TEST"); - - this.mqttConsumer.accept(MessageBuilder.withPayload("hello").build()); - Message in = this.queue.receive(10000); - assertThat(in).isNotNull(); - assertThat(in.getPayload()).isEqualTo("hello"); - } - - @SpringBootApplication - static class MqttConsumerTestApplication { - - @Autowired - private MqttPahoClientFactory mqttClientFactory; - - @Bean - public MqttPahoMessageDrivenChannelAdapter mqttInbound(BeanFactory beanFactory) { - MqttPahoMessageDrivenChannelAdapter adapter = new MqttPahoMessageDrivenChannelAdapter("test", - mqttClientFactory, "test"); - adapter.setQos(0); - adapter.setConverter(pahoMessageConverter(beanFactory)); - adapter.setOutputChannelName("queue"); - return adapter; - } - - public DefaultPahoMessageConverter pahoMessageConverter(BeanFactory beanFactory) { - DefaultPahoMessageConverter converter = new DefaultPahoMessageConverter(1, true, "UTF-8"); - converter.setPayloadAsBytes(false); - converter.setBeanFactory(beanFactory); - return converter; - } - - @Bean - public QueueChannel queue() { - return new QueueChannel(); - } - - } - -} diff --git a/functions/consumer/mqtt-consumer/src/test/resources/logback.xml b/functions/consumer/mqtt-consumer/src/test/resources/logback.xml deleted file mode 100644 index 984967b8..00000000 --- a/functions/consumer/mqtt-consumer/src/test/resources/logback.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - - diff --git a/functions/consumer/pom.xml b/functions/consumer/pom.xml deleted file mode 100644 index bd58ca31..00000000 --- a/functions/consumer/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud.fn - java-functions-consumer - 5.0.0-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/functions/consumer/rabbit-consumer/README.adoc b/functions/consumer/rabbit-consumer/README.adoc deleted file mode 100644 index c0531b36..00000000 --- a/functions/consumer/rabbit-consumer/README.adoc +++ /dev/null @@ -1,26 +0,0 @@ -# RabbitMQ Consumer - -A consumer that allows you to send messages to RabbitMQ. - -## Beans for injection - -You can import `RabbitConsumerConfiguration` in the application and then inject the following bean. - -`Function, Object> rabbitConsumer` - -You can use `rabbitConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `rabbit`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/rabbit/RabbitConsumerProperties.java[RabbitConsumerProperties]. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `AmqpOutboundChannelAdapterSpec` configuration used by the `rabbitConsumer`. - -## Tests - - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/rabbit-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a RabbitMQ sink. diff --git a/functions/consumer/rabbit-consumer/pom.xml b/functions/consumer/rabbit-consumer/pom.xml deleted file mode 100644 index 900612a0..00000000 --- a/functions/consumer/rabbit-consumer/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/rabbit-consumer/src/main/java/org/springframework/cloud/fn/consumer/rabbit/RabbitConsumerConfiguration.java b/functions/consumer/rabbit-consumer/src/main/java/org/springframework/cloud/fn/consumer/rabbit/RabbitConsumerConfiguration.java deleted file mode 100644 index ad92019c..00000000 --- a/functions/consumer/rabbit-consumer/src/main/java/org/springframework/cloud/fn/consumer/rabbit/RabbitConsumerConfiguration.java +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.rabbit; - -import java.util.function.Function; - -import com.rabbitmq.client.impl.CredentialsProvider; -import com.rabbitmq.client.impl.CredentialsRefreshService; - -import org.springframework.amqp.core.MessageDeliveryMode; -import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; -import org.springframework.amqp.rabbit.connection.ConnectionFactory; -import org.springframework.amqp.rabbit.connection.RabbitConnectionFactoryBean; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; -import org.springframework.amqp.support.converter.MessageConverter; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.amqp.CachingConnectionFactoryConfigurer; -import org.springframework.boot.autoconfigure.amqp.ConnectionFactoryCustomizer; -import org.springframework.boot.autoconfigure.amqp.RabbitConnectionFactoryBeanConfigurer; -import org.springframework.boot.autoconfigure.amqp.RabbitProperties; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.io.ResourceLoader; -import org.springframework.expression.Expression; -import org.springframework.integration.amqp.dsl.Amqp; -import org.springframework.integration.amqp.dsl.AmqpOutboundChannelAdapterSpec; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHandler; - -/** - * A configuration for RabbitMQ Consumer function. Uses a - * {@link AmqpOutboundChannelAdapterSpec} to save payload contents to RabbitMQ. - * - * @author Soby Chako - * @author Nicolas Labrot - * @author Chris Bono - */ -@EnableConfigurationProperties(RabbitConsumerProperties.class) -@Configuration -public class RabbitConsumerConfiguration implements DisposableBean { - - @Autowired - private RabbitProperties bootProperties; - - @Autowired - private ResourceLoader resourceLoader; - - @Autowired - private ObjectProvider credentialsProvider; - - @Autowired - private ObjectProvider credentialsRefreshService; - - @Autowired - private ObjectProvider connectionFactoryCustomizers; - - @Autowired - private RabbitConsumerProperties properties; - - @Value("#{${rabbit.converterBeanName:null}}") - private MessageConverter messageConverter; - - private CachingConnectionFactory ownConnectionFactory; - - @Bean - public Function, Object> rabbitConsumer(@Qualifier("amqpChannelAdapter") MessageHandler messageHandler) { - return o -> { - messageHandler.handleMessage(o); - return ""; - }; - } - - @Bean - public AmqpOutboundChannelAdapterSpec amqpChannelAdapter(ConnectionFactory rabbitConnectionFactory, - @Nullable ComponentCustomizer amqpOutboundChannelAdapterSpecCustomizer) - throws Exception { - - AmqpOutboundChannelAdapterSpec handler = Amqp - .outboundAdapter(rabbitTemplate(this.properties.isOwnConnection() - ? buildLocalConnectionFactory() : rabbitConnectionFactory)) - .mappedRequestHeaders(properties.getMappedRequestHeaders()) - .defaultDeliveryMode(properties.getPersistentDeliveryMode() - ? MessageDeliveryMode.PERSISTENT - : MessageDeliveryMode.NON_PERSISTENT) - .headersMappedLast(this.properties.isHeadersMappedLast()); - - Expression exchangeExpression = this.properties.getExchangeExpression(); - if (exchangeExpression != null) { - handler.exchangeNameExpression(exchangeExpression); - } - else { - handler.exchangeName(this.properties.getExchange()); - } - - Expression routingKeyExpression = this.properties.getRoutingKeyExpression(); - if (routingKeyExpression != null) { - handler.routingKeyExpression(routingKeyExpression); - } - else { - handler.routingKey(this.properties.getRoutingKey()); - } - - if (amqpOutboundChannelAdapterSpecCustomizer != null) { - amqpOutboundChannelAdapterSpecCustomizer.customize(handler); - } - - return handler; - } - - @Bean - public RabbitTemplate rabbitTemplate(ConnectionFactory rabbitConnectionFactory) { - RabbitTemplate rabbitTemplate = new RabbitTemplate(rabbitConnectionFactory); - if (this.messageConverter != null) { - rabbitTemplate.setMessageConverter(this.messageConverter); - } - return rabbitTemplate; - } - - - @Bean - @ConditionalOnProperty(name = "rabbit.converterBeanName", - havingValue = RabbitConsumerProperties.JSON_CONVERTER) - public Jackson2JsonMessageConverter jsonConverter() { - return new Jackson2JsonMessageConverter(); - } - - @Override - public void destroy() { - if (this.ownConnectionFactory != null) { - this.ownConnectionFactory.destroy(); - } - } - - private ConnectionFactory buildLocalConnectionFactory() throws Exception { - this.ownConnectionFactory = rabbitConnectionFactory(this.bootProperties, this.resourceLoader, - this.credentialsProvider, this.credentialsRefreshService, this.connectionFactoryCustomizers); - return this.ownConnectionFactory; - } - - private CachingConnectionFactory rabbitConnectionFactory(RabbitProperties properties, ResourceLoader resourceLoader, - ObjectProvider credentialsProvider, - ObjectProvider credentialsRefreshService, - ObjectProvider connectionFactoryCustomizers) throws Exception { - - /* NOTE: This is based on RabbitAutoConfiguration.RabbitConnectionFactoryCreator - * https://github.com/spring-projects/spring-boot/blob/c820ad01a108d419d8548265b8a34ed7c5591f7c/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java#L95 - * [UPGRADE_CONSIDERATION] this should stay somewhat in sync w/ the functionality provided by its original source. - */ - RabbitConnectionFactoryBean connectionFactoryBean = new RabbitConnectionFactoryBean(); - RabbitConnectionFactoryBeanConfigurer connectionFactoryBeanConfigurer = - new RabbitConnectionFactoryBeanConfigurer(resourceLoader, properties); - connectionFactoryBeanConfigurer.setCredentialsProvider(credentialsProvider.getIfUnique()); - connectionFactoryBeanConfigurer.setCredentialsRefreshService(credentialsRefreshService.getIfUnique()); - connectionFactoryBeanConfigurer.configure(connectionFactoryBean); - connectionFactoryBean.afterPropertiesSet(); - - com.rabbitmq.client.ConnectionFactory connectionFactory = connectionFactoryBean.getObject(); - connectionFactoryCustomizers.orderedStream() - .forEach((customizer) -> customizer.customize(connectionFactory)); - - CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory(connectionFactory); - CachingConnectionFactoryConfigurer cachingConnectionFactoryConfigurer = - new CachingConnectionFactoryConfigurer(properties); - cachingConnectionFactoryConfigurer.setConnectionNameStrategy(cf -> "rabbit.sink.own.connection"); - cachingConnectionFactoryConfigurer.configure(cachingConnectionFactory); - cachingConnectionFactory.afterPropertiesSet(); - - return cachingConnectionFactory; - } - -} diff --git a/functions/consumer/rabbit-consumer/src/main/java/org/springframework/cloud/fn/consumer/rabbit/RabbitConsumerProperties.java b/functions/consumer/rabbit-consumer/src/main/java/org/springframework/cloud/fn/consumer/rabbit/RabbitConsumerProperties.java deleted file mode 100644 index 914fdc83..00000000 --- a/functions/consumer/rabbit-consumer/src/main/java/org/springframework/cloud/fn/consumer/rabbit/RabbitConsumerProperties.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright 2019-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.rabbit; - -import jakarta.validation.constraints.AssertTrue; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.validation.annotation.Validated; - -@ConfigurationProperties("rabbit") -@Validated -public class RabbitConsumerProperties { - - /** - * JSON Converter. - */ - public static final String JSON_CONVERTER = "jsonConverter"; - - /** - * Exchange name - overridden by exchangeNameExpression, if supplied. - */ - private String exchange = ""; - - /** - * A SpEL expression that evaluates to an exchange name. - */ - private Expression exchangeExpression; - - /** - * Routing key - overridden by routingKeyExpression, if supplied. - */ - private String routingKey; - - /** - * A SpEL expression that evaluates to a routing key. - */ - private Expression routingKeyExpression; - - /** - * Default delivery mode when 'amqp_deliveryMode' header is not present, - * true for PERSISTENT. - */ - private boolean persistentDeliveryMode; - - /** - * Headers that will be mapped. - */ - private String[] mappedRequestHeaders = { "*" }; - - /** - * The bean name for a custom message converter; if omitted, a SimpleMessageConverter is used. - * If 'jsonConverter', a Jackson2JsonMessageConverter bean will be created for you. - */ - private String converterBeanName; - - /** - * When true, use a separate connection based on the boot properties. - */ - private boolean ownConnection; - - /** - * When mapping headers for the outbound message, determine whether the headers are - * mapped before the message is converted, or afterwards. - */ - private boolean headersMappedLast = true; - - public String getExchange() { - return this.exchange; - } - - public void setExchange(String exchange) { - this.exchange = exchange; - } - - public Expression getExchangeExpression() { - return this.exchangeExpression; - } - - public void setExchangeExpression(Expression exchangeExpression) { - this.exchangeExpression = exchangeExpression; - } - - public String getRoutingKey() { - return this.routingKey; - } - - public void setRoutingKey(String routingKey) { - this.routingKey = routingKey; - } - - public Expression getRoutingKeyExpression() { - return this.routingKeyExpression; - } - - public void setRoutingKeyExpression(Expression routingKeyExpression) { - this.routingKeyExpression = routingKeyExpression; - } - - public boolean getPersistentDeliveryMode() { - return this.persistentDeliveryMode; - } - - public void setPersistentDeliveryMode(boolean persistentDeliveryMode) { - this.persistentDeliveryMode = persistentDeliveryMode; - } - - public String[] getMappedRequestHeaders() { - return this.mappedRequestHeaders; - } - - public void setMappedRequestHeaders(String[] mappedRequestHeaders) { - this.mappedRequestHeaders = mappedRequestHeaders; - } - - public String getConverterBeanName() { - return this.converterBeanName; - } - - public void setConverterBeanName(String converterBeanName) { - this.converterBeanName = converterBeanName; - } - - @AssertTrue(message = "routingKey or routingKeyExpression is required") - public boolean isRoutingKeyProvided() { - return this.routingKey != null || this.routingKeyExpression != null; - } - - public boolean isOwnConnection() { - return this.ownConnection; - } - - public void setOwnConnection(boolean ownConnection) { - this.ownConnection = ownConnection; - } - - public boolean isHeadersMappedLast() { - return this.headersMappedLast; - } - - public void setHeadersMappedLast(boolean headersMappedLast) { - this.headersMappedLast = headersMappedLast; - } -} diff --git a/functions/consumer/redis-consumer/README.adoc b/functions/consumer/redis-consumer/README.adoc deleted file mode 100644 index 4d3e3355..00000000 --- a/functions/consumer/redis-consumer/README.adoc +++ /dev/null @@ -1,25 +0,0 @@ -# Redis Consumer - -A consumer that allows you to write incoming messages into Redis. - -## Beans for injection - -You can import `RedisConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> redisConsumer` - -You can use `redisConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `redis.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerProperties.java[RedisConsumerProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/redis[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/redis-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a Redis sink. \ No newline at end of file diff --git a/functions/consumer/redis-consumer/pom.xml b/functions/consumer/redis-consumer/pom.xml deleted file mode 100644 index ea448835..00000000 --- a/functions/consumer/redis-consumer/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/redis-consumer/src/main/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerConfiguration.java b/functions/consumer/redis-consumer/src/main/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerConfiguration.java deleted file mode 100644 index a3ab67b0..00000000 --- a/functions/consumer/redis-consumer/src/main/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerConfiguration.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.redis; - -import java.util.function.Consumer; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.integration.redis.outbound.RedisPublishingMessageHandler; -import org.springframework.integration.redis.outbound.RedisQueueOutboundChannelAdapter; -import org.springframework.integration.redis.outbound.RedisStoreWritingMessageHandler; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHandler; - -/** - * @author Eric Bottard - * @author Mark Pollack - * @author Gary Russell - * @author Soby Chacko - * @author Artem Bilan - */ -@Configuration -@EnableConfigurationProperties(RedisConsumerProperties.class) -public class RedisConsumerConfiguration { - - @Bean - public Consumer> redisConsumer(MessageHandler redisConsumerMessageHandler) { - return redisConsumerMessageHandler::handleMessage; - } - - @Bean - public MessageHandler redisConsumerMessageHandler(RedisConnectionFactory redisConnectionFactory, - RedisConsumerProperties redisConsumerProperties) { - if (redisConsumerProperties.isKeyPresent()) { - RedisStoreWritingMessageHandler redisStoreWritingMessageHandler = new RedisStoreWritingMessageHandler( - redisConnectionFactory); - redisStoreWritingMessageHandler.setKeyExpression(redisConsumerProperties.keyExpression()); - return redisStoreWritingMessageHandler; - } - else if (redisConsumerProperties.isQueuePresent()) { - return new RedisQueueOutboundChannelAdapter(redisConsumerProperties.queueExpression(), - redisConnectionFactory); - } - else { // must be topic - RedisPublishingMessageHandler redisPublishingMessageHandler = new RedisPublishingMessageHandler( - redisConnectionFactory); - redisPublishingMessageHandler.setTopicExpression(redisConsumerProperties.topicExpression()); - return redisPublishingMessageHandler; - } - } - -} diff --git a/functions/consumer/redis-consumer/src/main/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerProperties.java b/functions/consumer/redis-consumer/src/main/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerProperties.java deleted file mode 100644 index 7a91e0aa..00000000 --- a/functions/consumer/redis-consumer/src/main/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerProperties.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.redis; - -import java.util.Arrays; -import java.util.Collections; - -import jakarta.validation.constraints.AssertTrue; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.common.LiteralExpression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.util.StringUtils; -import org.springframework.validation.annotation.Validated; - -/** - * Used to configure those Redis Sink module options that are not related to connecting to Redis. - * - * @author Eric Bottard - * @author Mark Pollack - * @author Artem Bilan - * @author Soby Chacko - */ -@ConfigurationProperties("redis.consumer") -@Validated -public class RedisConsumerProperties { - - private static final ExpressionParser EXPRESSION_PARSER = new SpelExpressionParser(); - - /** - * A SpEL expression to use for topic. - */ - private String topicExpression; - - /** - * A SpEL expression to use for queue. - */ - private String queueExpression; - - /** - * A SpEL expression to use for storing to a key. - */ - private String keyExpression; - - /** - * A literal key name to use when storing to a key. - */ - private String key; - - /** - * A literal queue name to use when storing in a queue. - */ - private String queue; - - /** - * A literal topic name to use when publishing to a topic. - */ - private String topic; - - public Expression keyExpression() { - return key != null ? new LiteralExpression(key) : EXPRESSION_PARSER.parseExpression(keyExpression); - } - - public Expression queueExpression() { - return queue != null ? new LiteralExpression(queue) : EXPRESSION_PARSER.parseExpression(queueExpression); - } - - public Expression topicExpression() { - return topic != null ? new LiteralExpression(topic) : EXPRESSION_PARSER.parseExpression(topicExpression); - } - - boolean isKeyPresent() { - return StringUtils.hasText(key) || keyExpression != null; - } - - boolean isQueuePresent() { - return StringUtils.hasText(queue) || queueExpression != null; - } - - boolean isTopicPresent() { - return StringUtils.hasText(topic) || topicExpression != null; - } - - public String getTopicExpression() { - return topicExpression; - } - - public void setTopicExpression(String topicExpression) { - this.topicExpression = topicExpression; - } - - public String getQueueExpression() { - return queueExpression; - } - - public void setQueueExpression(String queueExpression) { - this.queueExpression = queueExpression; - } - - public String getKeyExpression() { - return keyExpression; - } - - public void setKeyExpression(String keyExpression) { - this.keyExpression = keyExpression; - } - - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - - public String getQueue() { - return queue; - } - - public void setQueue(String queue) { - this.queue = queue; - } - - public String getTopic() { - return topic; - } - - public void setTopic(String topic) { - this.topic = topic; - } - - // The javabean property name is what will be reported in case of violation. Make it meaningful - @AssertTrue(message = "Exactly one of 'queue', 'queueExpression', 'key', 'keyExpression', " - + "'topic' and 'topicExpression' must be set") - public boolean isMutuallyExclusive() { - Object[] props = new Object[] { queue, queueExpression, key, keyExpression, topic, topicExpression }; - return (props.length - 1) == Collections.frequency(Arrays.asList(props), null); - } - -} diff --git a/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/AbstractRedisConsumerTests.java b/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/AbstractRedisConsumerTests.java deleted file mode 100644 index d7af0153..00000000 --- a/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/AbstractRedisConsumerTests.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -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; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; - -/** - * @author Soby Chacko - * @author Artem Bilan - */ -@SpringBootTest -@DirtiesContext -@Tag("integration") -public class AbstractRedisConsumerTests implements RedisTestContainerSupport { - - @DynamicPropertySource - static void redisProperties(DynamicPropertyRegistry registry) { - registry.add("spring.data.redis.url", RedisTestContainerSupport::getUri); - } - - @Autowired - Consumer> redisConsumer; - - @Autowired - RedisConnectionFactory redisConnectionFactory; - - @Autowired - StringRedisTemplate redisTemplate; - - @SpringBootApplication - static class RedisConsumerTestApplication { - - } -} diff --git a/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerKeyTests.java b/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerKeyTests.java deleted file mode 100644 index b6fc741d..00000000 --- a/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerKeyTests.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.redis; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.jupiter.api.Test; - -import org.springframework.data.redis.support.collections.DefaultRedisList; -import org.springframework.data.redis.support.collections.RedisList; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Mark Pollack - * @author Marius Bogoevici - * @author Gary Russell - */ -@TestPropertySource(properties = "redis.consumer.key = foo") -public class RedisConsumerKeyTests extends AbstractRedisConsumerTests { - - @Test - public void testWithKey() { - //Setup - String key = "foo"; - redisTemplate.delete(key); - - RedisList redisList = new DefaultRedisList<>(key, redisTemplate); - List list = new ArrayList<>(); - list.add("Manny"); - list.add("Moe"); - list.add("Jack"); - - //Execute - Message> message = new GenericMessage<>(list); - - redisConsumer.accept(message); - - //Assert - assertThat(redisList.size()).isEqualTo(3); - assertThat(redisList.get(0)).isEqualTo("Manny"); - assertThat(redisList.get(1)).isEqualTo("Moe"); - assertThat(redisList.get(2)).isEqualTo("Jack"); - - //Cleanup - redisTemplate.delete(key); - } -} diff --git a/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerQueueTests.java b/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerQueueTests.java deleted file mode 100644 index eecf8ca2..00000000 --- a/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerQueueTests.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.redis; - -import java.util.concurrent.TimeUnit; - -import org.junit.jupiter.api.Test; - -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Soby Chacko - */ -@TestPropertySource(properties = "redis.consumer.queue = test-queue") -public class RedisConsumerQueueTests extends AbstractRedisConsumerTests { - - @Test - public void testWithQueue() { - Message message = MessageBuilder.withPayload("hello").build(); - - redisConsumer.accept(message); - - Object result = redisTemplate.boundListOps("test-queue").rightPop(5000, TimeUnit.MILLISECONDS); - assertThat(result).isEqualTo("hello"); - } -} diff --git a/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerTopicTests.java b/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerTopicTests.java deleted file mode 100644 index d2af40dc..00000000 --- a/functions/consumer/redis-consumer/src/test/java/org/springframework/cloud/fn/consumer/redis/RedisConsumerTopicTests.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.redis; - -import java.util.Collections; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; - -import org.awaitility.Awaitility; -import org.junit.jupiter.api.Test; - -import org.springframework.data.redis.listener.ChannelTopic; -import org.springframework.data.redis.listener.RedisMessageListenerContainer; -import org.springframework.data.redis.listener.Topic; -import org.springframework.data.redis.listener.adapter.MessageListenerAdapter; -import org.springframework.data.redis.serializer.StringRedisSerializer; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Soby Chacko - * @author Corneil du Plessis - */ -@TestPropertySource(properties = "redis.consumer.topic = foo-topic") -public class RedisConsumerTopicTests extends AbstractRedisConsumerTests { - - @Test - public void testWithTopic() throws Exception { - - int numToTest = 10; - String topic = "foo-topic"; - final CountDownLatch latch = new CountDownLatch(numToTest); - - MessageListenerAdapter listener = new MessageListenerAdapter(); - listener.setDelegate(new Listener(latch)); - listener.setSerializer(new StringRedisSerializer()); - listener.afterPropertiesSet(); - - RedisMessageListenerContainer container = new RedisMessageListenerContainer(); - container.setConnectionFactory(redisTemplate.getConnectionFactory()); - container.afterPropertiesSet(); - container.addMessageListener(listener, Collections.singletonList(new ChannelTopic(topic))); - container.start(); - - Awaitility.await().until(container::isListening); - - Message message = MessageBuilder.withPayload("hello").build(); - for (int i = 0; i < numToTest; i++) { - redisConsumer.accept(message); - } - - assertThat(latch.await(10, TimeUnit.SECONDS)).isTrue(); - container.stop(); - } - - private static class Listener { - - private final CountDownLatch latch; - - Listener(CountDownLatch latch) { - this.latch = latch; - } - - @SuppressWarnings("unused") - public void handleMessage(String s) { - this.latch.countDown(); - } - } -} diff --git a/functions/consumer/redis-consumer/src/test/resources/application.properties b/functions/consumer/redis-consumer/src/test/resources/application.properties deleted file mode 100644 index b7db2541..00000000 --- a/functions/consumer/redis-consumer/src/test/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -# Empty diff --git a/functions/consumer/rsocket-consumer/README.adoc b/functions/consumer/rsocket-consumer/README.adoc deleted file mode 100644 index 1aba1e70..00000000 --- a/functions/consumer/rsocket-consumer/README.adoc +++ /dev/null @@ -1,26 +0,0 @@ -# RSocket Consumer - -A consumer that allows you to communicate to an RSocket route using its fire and forget strategy of execution. -The consumer uses the RSocket support from https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#rsocket-requester[Spring Framework]. - -## Beans for injection - -You can import `RSocketConsumerConfiguration` in the application and then inject the following bean. - -`Function>, Mono> rsocketConsumer` - -You can use `rsocketConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `rsocket.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerProperties.java[RsocketConsumerProperties]. - -## Examples - -See this link:src/test/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerTests.java[test suite] for learning more about this consumer. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/rsocket-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream based RSocket Sink application. \ No newline at end of file diff --git a/functions/consumer/rsocket-consumer/pom.xml b/functions/consumer/rsocket-consumer/pom.xml deleted file mode 100644 index 003f787c..00000000 --- a/functions/consumer/rsocket-consumer/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - rsocket-consumer - rsocket-consumer - - - - org.springframework.boot - spring-boot-starter-rsocket - - - - diff --git a/functions/consumer/rsocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerConfiguration.java b/functions/consumer/rsocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerConfiguration.java deleted file mode 100644 index 029c21ef..00000000 --- a/functions/consumer/rsocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerConfiguration.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.rsocket; - -import java.util.function.Function; - -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.messaging.Message; -import org.springframework.messaging.rsocket.RSocketRequester; - -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(RsocketConsumerProperties.class) -public class RsocketConsumerConfiguration { - - @Bean - public Function>, Mono> rsocketConsumer(RSocketRequester.Builder builder, - RsocketConsumerProperties rsocketConsumerProperties) { - RSocketRequester rSocketRequester = - rsocketConsumerProperties.getUri() != null - ? builder.websocket(rsocketConsumerProperties.getUri()) - : builder.tcp(rsocketConsumerProperties.getHost(), rsocketConsumerProperties.getPort()); - - String route = rsocketConsumerProperties.getRoute(); - - return input -> - input.flatMap(message -> - rSocketRequester.route(route) - .data(message.getPayload()) - .send()) - .ignoreElements(); - } - -} diff --git a/functions/consumer/rsocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerProperties.java b/functions/consumer/rsocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerProperties.java deleted file mode 100644 index f2f36fc7..00000000 --- a/functions/consumer/rsocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerProperties.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.rsocket; - -import java.net.URI; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -@ConfigurationProperties("rsocket.consumer") -public class RsocketConsumerProperties { - - /** - * RSocket host. - */ - private String host = "localhost"; - - /** - * RSocket port. - */ - private int port = 7000; - - /** - * URI that can be used for websocket based transport. - */ - private URI uri; - - /** - * Route used for RSocket. - */ - private String route; - - public String getHost() { - return this.host; - } - - public void setHost(String host) { - this.host = host; - } - - public int getPort() { - return this.port; - } - - public void setPort(int port) { - this.port = port; - } - - public String getRoute() { - return this.route; - } - - public void setRoute(String route) { - this.route = route; - } - - public URI getUri() { - return this.uri; - } - - public void setUri(URI uri) { - this.uri = uri; - } -} diff --git a/functions/consumer/rsocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerTests.java b/functions/consumer/rsocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerTests.java deleted file mode 100644 index 561f7134..00000000 --- a/functions/consumer/rsocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/rsocket/RsocketConsumerTests.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.rsocket; - -import java.util.function.Function; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; -import reactor.core.publisher.ReplayProcessor; -import reactor.test.StepVerifier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.rsocket.RSocketRequesterAutoConfiguration; -import org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration; -import org.springframework.boot.rsocket.context.RSocketServerBootstrap; -import org.springframework.boot.rsocket.server.RSocketServer; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.context.ApplicationContext; -import org.springframework.messaging.Message; -import org.springframework.messaging.handler.annotation.MessageMapping; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.stereotype.Controller; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.util.ReflectionTestUtils; - -@SpringBootTest(properties = {"spring.rsocket.server.port=0"}) -@DirtiesContext -public class RsocketConsumerTests { - - private static ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() - .withUserConfiguration(RsocketConsumerConfiguration.class, RSocketRequesterAutoConfiguration.class, - RSocketStrategiesAutoConfiguration.class); - - @Autowired - ApplicationContext applicationContext; - - @Test - void testRsocketConsumer() { - - RSocketServerBootstrap serverBootstrap = applicationContext.getBean(RSocketServerBootstrap.class); - RSocketServer server = (RSocketServer) ReflectionTestUtils.getField(serverBootstrap, "server"); - final int port = server.address().getPort(); - - applicationContextRunner.withPropertyValues( - "rsocket.consumer.port=" + port, - "rsocket.consumer.route=test-route") - .run(context -> { - Function>, Mono> rsocketConsumer = context.getBean("rsocketConsumer", Function.class); - rsocketConsumer.apply(Flux.just(new GenericMessage<>("Hello RSocket"))) - .subscribe(); - - StepVerifier.create(RSocketserverApplication.fireForgetPayloads) - .expectNext("Hello RSocket") - .thenCancel() - .verify(); - }); - - } - - @EnableAutoConfiguration - @SpringBootConfiguration - @Controller - static class RSocketserverApplication { - static final ReplayProcessor fireForgetPayloads = ReplayProcessor.create(); - - @MessageMapping("test-route") - void someMethod(String payload) { - this.fireForgetPayloads.onNext(payload); - } - } -} - - diff --git a/functions/consumer/s3-consumer/README.adoc b/functions/consumer/s3-consumer/README.adoc deleted file mode 100644 index 073c5b59..00000000 --- a/functions/consumer/s3-consumer/README.adoc +++ /dev/null @@ -1,27 +0,0 @@ -= AWS S3 Consumer - -A consumer that allows you to upload files to AWS S3. -The consumer uses the AWS S3 support from Spring Integration and Spring Cloud AWS. - -== Beans for injection - -You can import `AwsS3ConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> s3Consumer` - -You can use `s3Consumer` as a qualifier when injecting. - -== Configuration Options - -All configuration properties are prefixed with `s3.consumer`. -There are also properties that need to be used with the prefix `s3.common`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/s3/AwsS3ConsumerProperties.java[AwsS3ConsumerProperties] and `io.awspring.cloud.autoconfigure.s3.properties.S3Properties` & `io.awspring.cloud.autoconfigure.s3.properties.S3CrtClientProperties` from Spring Cloud AWS auto-configuration. - -== Examples - -See this link:src/test/java/org/springframework/cloud/fn/consumer/s3[test suite] for the various ways, this consumer is used. - -== Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/s3-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream based S3 Sink application. diff --git a/functions/consumer/s3-consumer/pom.xml b/functions/consumer/s3-consumer/pom.xml deleted file mode 100644 index 8fb0a38e..00000000 --- a/functions/consumer/s3-consumer/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/s3-consumer/src/main/java/org/springframework/cloud/fn/consumer/s3/AwsS3ConsumerConfiguration.java b/functions/consumer/s3-consumer/src/main/java/org/springframework/cloud/fn/consumer/s3/AwsS3ConsumerConfiguration.java deleted file mode 100644 index 8eceaab8..00000000 --- a/functions/consumer/s3-consumer/src/main/java/org/springframework/cloud/fn/consumer/s3/AwsS3ConsumerConfiguration.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.s3; - -import java.util.function.BiConsumer; -import java.util.function.Consumer; - -import software.amazon.awssdk.services.s3.model.PutObjectRequest; -import software.amazon.awssdk.transfer.s3.S3TransferManager; -import software.amazon.awssdk.transfer.s3.progress.TransferListener; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.Expression; -import org.springframework.integration.aws.outbound.S3MessageHandler; -import org.springframework.integration.aws.support.AwsHeaders; -import org.springframework.integration.context.IntegrationContextUtils; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.expression.ValueExpression; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHandler; -import org.springframework.util.Assert; - -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(AwsS3ConsumerProperties.class) -public class AwsS3ConsumerConfiguration { - - @Bean - public Consumer> s3Consumer(IntegrationFlow s3ConsumerFlow) { - return s3ConsumerFlow.getInputChannel()::send; - } - - @Bean - public IntegrationFlow s3ConsumerFlow(@Nullable TransferListener transferListener, - MessageHandler amazonS3MessageHandler) { - - return flow -> flow - .enrichHeaders(headers -> headers.header(AwsHeaders.TRANSFER_LISTENER, transferListener)) - .handle(amazonS3MessageHandler); - } - - @Bean - public MessageHandler amazonS3MessageHandler(S3TransferManager s3TransferManager, - AwsS3ConsumerProperties s3ConsumerProperties, - BeanFactory beanFactory, - @Nullable BiConsumer> uploadMetadataProvider) { - - Expression bucketExpression = s3ConsumerProperties.getBucketExpression(); - if (s3ConsumerProperties.getBucket() != null) { - bucketExpression = new ValueExpression<>(s3ConsumerProperties.getBucket()); - } - - S3MessageHandler s3MessageHandler = new S3MessageHandler(s3TransferManager, bucketExpression); - s3MessageHandler.setKeyExpression(s3ConsumerProperties.getKeyExpression()); - - Expression aclExpression; - - if (s3ConsumerProperties.getAcl() != null) { - aclExpression = new ValueExpression<>(s3ConsumerProperties.getAcl()); - } - else { - aclExpression = s3ConsumerProperties.getAclExpression(); - } - - BiConsumer> metadataProviderToUse = uploadMetadataProvider; - - if (aclExpression != null) { - EvaluationContext evaluationContext = IntegrationContextUtils.getEvaluationContext(beanFactory); - - metadataProviderToUse = - (builder, message) -> { - Object aclValue = aclExpression.getValue(evaluationContext, message); - Assert.notNull(aclValue, - () -> String.format("The expression '%s' for message '%s' returned null", - aclExpression, message)); - - builder.acl(aclValue.toString()); - - if (uploadMetadataProvider != null) { - uploadMetadataProvider.accept(builder, message); - } - }; - } - - if (metadataProviderToUse != null) { - s3MessageHandler.setUploadMetadataProvider(metadataProviderToUse); - } - return s3MessageHandler; - } - -} diff --git a/functions/consumer/s3-consumer/src/main/java/org/springframework/cloud/fn/consumer/s3/AwsS3ConsumerProperties.java b/functions/consumer/s3-consumer/src/main/java/org/springframework/cloud/fn/consumer/s3/AwsS3ConsumerProperties.java deleted file mode 100644 index 04dd3388..00000000 --- a/functions/consumer/s3-consumer/src/main/java/org/springframework/cloud/fn/consumer/s3/AwsS3ConsumerProperties.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.s3; - -import jakarta.validation.constraints.AssertTrue; -import org.hibernate.validator.constraints.Length; -import software.amazon.awssdk.services.s3.model.ObjectCannedACL; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.validation.annotation.Validated; - -/** - * @author Artem Bilan - */ -@ConfigurationProperties("s3.consumer") -@Validated -public class AwsS3ConsumerProperties { - - /** - * AWS bucket for target file(s) to store. - */ - private String bucket; - - /** - * Expression to evaluate AWS bucket name. - */ - private Expression bucketExpression; - - /** - * Expression to evaluate S3 Object key. - */ - private Expression keyExpression; - - /** - * S3 Object access control list. - */ - private ObjectCannedACL acl; - - /** - * Expression to evaluate S3 Object access control list. - */ - private Expression aclExpression; - - @Length(min = 3) - public String getBucket() { - return this.bucket; - } - - public void setBucket(String bucket) { - this.bucket = bucket; - } - - public Expression getBucketExpression() { - return this.bucketExpression; - } - - public void setBucketExpression(Expression bucketExpression) { - this.bucketExpression = bucketExpression; - } - - public Expression getKeyExpression() { - return this.keyExpression; - } - - public void setKeyExpression(Expression keyExpression) { - this.keyExpression = keyExpression; - } - - public ObjectCannedACL getAcl() { - return this.acl; - } - - public void setAcl(ObjectCannedACL acl) { - this.acl = acl; - } - - public Expression getAclExpression() { - return this.aclExpression; - } - - public void setAclExpression(Expression aclExpression) { - this.aclExpression = aclExpression; - } - - @AssertTrue(message = "Exactly one of 'bucket' or 'bucketExpression' must be set") - public boolean isMutuallyExclusiveBucketAndBucketExpression() { - return (this.bucket != null && this.bucketExpression == null) || - (this.bucket == null && this.bucketExpression != null); - } - - @AssertTrue(message = "Only one of 'acl' or 'aclExpression' must be set") - public boolean isMutuallyExclusiveAclAndAclExpression() { - return this.acl == null || this.aclExpression == null; - } -} diff --git a/functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java b/functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java deleted file mode 100644 index c209f941..00000000 --- a/functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.s3; - -import java.io.InputStream; -import java.nio.file.Path; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CountDownLatch; -import java.util.function.BiConsumer; -import java.util.function.Consumer; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.io.TempDir; -import software.amazon.awssdk.core.async.AsyncRequestBody; -import software.amazon.awssdk.services.s3.S3AsyncClient; -import software.amazon.awssdk.services.s3.model.PutObjectRequest; -import software.amazon.awssdk.services.s3.model.PutObjectResponse; -import software.amazon.awssdk.transfer.s3.S3TransferManager; -import software.amazon.awssdk.transfer.s3.progress.TransferListener; - -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.context.annotation.Bean; -import org.springframework.http.MediaType; -import org.springframework.messaging.Message; -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, - properties = { - "spring.cloud.aws.credentials.accessKey=" + AbstractAwsS3ConsumerMockTests.AWS_ACCESS_KEY, - "spring.cloud.aws.credentials.secretKey=" + AbstractAwsS3ConsumerMockTests.AWS_SECRET_KEY, - "spring.cloud.aws.region.static=" + AbstractAwsS3ConsumerMockTests.AWS_REGION, - "spring.cloud.aws.s3.endpoint=s3://foo", - "s3.consumer.bucket=" + AbstractAwsS3ConsumerMockTests.S3_BUCKET}) -public abstract class AbstractAwsS3ConsumerMockTests { - - protected static final String AWS_ACCESS_KEY = "test.accessKey"; - - protected static final String AWS_SECRET_KEY = "test.secretKey"; - - protected static final String AWS_REGION = "us-gov-west-1"; - - protected static final String S3_BUCKET = "S3_BUCKET"; - - @TempDir - protected static Path temporaryRemoteFolder; - - @Autowired - private S3AsyncClient amazonS3; - - @Autowired - protected S3TransferManager s3TransferManager; - - @Autowired - protected CountDownLatch transferCompletedLatch; - - @Autowired - protected Consumer> s3Consumer; - - @BeforeEach - public void setupTest() { - S3AsyncClient amazonS3 = spy(this.amazonS3); - - willReturn(CompletableFuture.completedFuture(PutObjectResponse.builder().build())) - .given(amazonS3) - .putObject(any(PutObjectRequest.class), any(AsyncRequestBody.class)); - - new DirectFieldAccessor(this.s3TransferManager).setPropertyValue("s3AsyncClient", amazonS3); - } - - @SpringBootApplication - public static class S3ConsumerTestApplication { - - @Bean - public CountDownLatch transferCompletedLatch() { - return new CountDownLatch(1); - } - - @Bean - public TransferListener transferListener() { - return new TransferListener() { - - - @Override - public void transferComplete(Context.TransferComplete context) { - transferCompletedLatch().countDown(); - } - - }; - } - - @Bean - public BiConsumer> uploadMetadataProvider() { - return (builder, message) -> { - if (message.getPayload() instanceof InputStream) { - builder.contentLength(1L) - .contentType(MediaType.APPLICATION_JSON_VALUE) - .contentDisposition("test.json"); - } - }; - } - - } - -} diff --git a/functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadFileTests.java b/functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadFileTests.java deleted file mode 100644 index a04a8a82..00000000 --- a/functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadFileTests.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.s3; - -import java.io.File; -import java.util.concurrent.TimeUnit; - -import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; -import reactor.test.StepVerifier; -import software.amazon.awssdk.core.async.AsyncRequestBody; -import software.amazon.awssdk.services.s3.S3AsyncClient; -import software.amazon.awssdk.services.s3.model.ObjectCannedACL; -import software.amazon.awssdk.services.s3.model.PutObjectRequest; -import software.amazon.awssdk.utils.Md5Utils; - -import org.springframework.integration.test.util.TestUtils; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.atLeastOnce; -import static org.mockito.Mockito.verify; - -@TestPropertySource(properties = "s3.consumer.acl=PUBLIC_READ_WRITE") -public class AmazonS3UploadFileTests extends AbstractAwsS3ConsumerMockTests { - - @Test - public void test() throws Exception { - S3AsyncClient amazonS3Client = - TestUtils.getPropertyValue(this.s3TransferManager, "s3AsyncClient", S3AsyncClient.class); - - File file = new File(temporaryRemoteFolder.toFile(), "foo.mp3"); - file.createNewFile(); - Message message = MessageBuilder.withPayload(file) - .build(); - - this.s3Consumer.accept(message); - - ArgumentCaptor putObjectRequestArgumentCaptor = - ArgumentCaptor.forClass(PutObjectRequest.class); - ArgumentCaptor asyncRequestBodyArgumentCaptor = - ArgumentCaptor.forClass(AsyncRequestBody.class); - verify(amazonS3Client, atLeastOnce()) - .putObject(putObjectRequestArgumentCaptor.capture(), asyncRequestBodyArgumentCaptor.capture()); - - PutObjectRequest putObjectRequest = putObjectRequestArgumentCaptor.getValue(); - assertThat(putObjectRequest.bucket()).isEqualTo(S3_BUCKET); - assertThat(putObjectRequest.key()).isEqualTo("foo.mp3"); - assertThat(putObjectRequest.contentMD5()).isEqualTo(Md5Utils.md5AsBase64(file)); - assertThat(putObjectRequest.contentLength()).isEqualTo(0L); - assertThat(putObjectRequest.contentType()).isEqualTo("audio/mpeg"); - assertThat(putObjectRequest.acl()).isEqualTo(ObjectCannedACL.PUBLIC_READ_WRITE); - - AsyncRequestBody asyncRequestBody = asyncRequestBodyArgumentCaptor.getValue(); - StepVerifier.create(asyncRequestBody) - .assertNext(buffer -> assertThat(buffer.array()).isEmpty()) - .expectComplete() - .verify(); - - assertThat(this.transferCompletedLatch.await(10, TimeUnit.SECONDS)).isTrue(); - } - -} diff --git a/functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadInputStreamTests.java b/functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadInputStreamTests.java deleted file mode 100644 index 8c179965..00000000 --- a/functions/consumer/s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AmazonS3UploadInputStreamTests.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.s3; - -import java.io.InputStream; - -import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; -import reactor.test.StepVerifier; -import software.amazon.awssdk.core.async.AsyncRequestBody; -import software.amazon.awssdk.services.s3.S3AsyncClient; -import software.amazon.awssdk.services.s3.model.PutObjectRequest; -import software.amazon.awssdk.utils.Md5Utils; -import software.amazon.awssdk.utils.StringInputStream; - -import org.springframework.http.MediaType; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.atLeastOnce; -import static org.mockito.Mockito.verify; - -@TestPropertySource(properties = "s3.consumer.key-expression=headers.key") -public class AmazonS3UploadInputStreamTests extends AbstractAwsS3ConsumerMockTests { - - @Test - public void test() throws Exception { - S3AsyncClient amazonS3Client = - TestUtils.getPropertyValue(this.s3TransferManager, "s3AsyncClient", S3AsyncClient.class); - - InputStream payload = new StringInputStream("a"); - Message message = MessageBuilder.withPayload(payload) - .setHeader("key", "myInputStream") - .build(); - - this.s3Consumer.accept(message); - - ArgumentCaptor putObjectRequestArgumentCaptor = - ArgumentCaptor.forClass(PutObjectRequest.class); - ArgumentCaptor asyncRequestBodyArgumentCaptor = - ArgumentCaptor.forClass(AsyncRequestBody.class); - verify(amazonS3Client, atLeastOnce()) - .putObject(putObjectRequestArgumentCaptor.capture(), asyncRequestBodyArgumentCaptor.capture()); - - PutObjectRequest putObjectRequest = putObjectRequestArgumentCaptor.getValue(); - assertThat(putObjectRequest.bucket()).isEqualTo(S3_BUCKET); - assertThat(putObjectRequest.key()).isEqualTo("myInputStream"); - assertThat(putObjectRequest.contentMD5()).isEqualTo(Md5Utils.md5AsBase64(payload)); - assertThat(putObjectRequest.contentLength()).isEqualTo(1L); - assertThat(putObjectRequest.contentType()).isEqualTo(MediaType.APPLICATION_JSON_VALUE); - assertThat(putObjectRequest.contentDisposition()).isEqualTo("test.json"); - - - AsyncRequestBody asyncRequestBody = asyncRequestBodyArgumentCaptor.getValue(); - StepVerifier.create(asyncRequestBody.map(buffer -> new String(buffer.array()))) - .expectNext("a") - .expectComplete() - .verify(); - } - -} diff --git a/functions/consumer/sftp-consumer/README.adoc b/functions/consumer/sftp-consumer/README.adoc deleted file mode 100644 index 0baa33fb..00000000 --- a/functions/consumer/sftp-consumer/README.adoc +++ /dev/null @@ -1,27 +0,0 @@ -# SFTP Consumer - -A consumer that allows you to SFTP files. - -## Beans for injection - -You can import `SftpConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> sftpConsumer` - -You can use `sftpConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `sftp.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerProperties.java[SftpConsumerProperties]. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `SftpMessageHandlerSpec` configuration used by the `sftpConsumer`. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/sftp[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/sftp-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a SFTP sink. diff --git a/functions/consumer/sftp-consumer/pom.xml b/functions/consumer/sftp-consumer/pom.xml deleted file mode 100644 index 98bb73fd..00000000 --- a/functions/consumer/sftp-consumer/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerConfiguration.java b/functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerConfiguration.java deleted file mode 100644 index 58a4018f..00000000 --- a/functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerConfiguration.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2015-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.sftp; - -import java.util.function.Consumer; - -import org.apache.sshd.sftp.client.SftpClient; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlowBuilder; -import org.springframework.integration.file.remote.session.SessionFactory; -import org.springframework.integration.sftp.dsl.Sftp; -import org.springframework.integration.sftp.dsl.SftpMessageHandlerSpec; -import org.springframework.integration.sftp.session.SftpRemoteFileTemplate; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - -/** - * Configuration for SFTP Consumer. - * @author Soby Chacko - * @author Corneil du Plessis - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(SftpConsumerProperties.class) -@Import(SftpConsumerSessionFactoryConfiguration.class) -public class SftpConsumerConfiguration { - - @Bean - public IntegrationFlow ftpOutboundFlow(SftpConsumerProperties properties, - SessionFactory ftpSessionFactory, - @Nullable ComponentCustomizer sftpMessageHandlerSpecCustomizer) { - - IntegrationFlowBuilder integrationFlowBuilder = - IntegrationFlow.from(MessageConsumer.class, (gateway) -> gateway.beanName("sftpConsumer")); - - SftpMessageHandlerSpec handlerSpec = - Sftp.outboundAdapter(new SftpRemoteFileTemplate(ftpSessionFactory), properties.getMode()) - .remoteDirectory(properties.getRemoteDir()) - .temporaryRemoteDirectory(properties.getTemporaryRemoteDir()) - .remoteFileSeparator(properties.getRemoteFileSeparator()) - .autoCreateDirectory(properties.isAutoCreateDir()) - .useTemporaryFileName(properties.isUseTemporaryFilename()) - .temporaryFileSuffix(properties.getTmpFileSuffix()); - if (properties.getFilenameExpression() != null) { - handlerSpec.fileNameExpression(properties.getFilenameExpression()); - } - - if (sftpMessageHandlerSpecCustomizer != null) { - sftpMessageHandlerSpecCustomizer.customize(handlerSpec); - } - - return integrationFlowBuilder - .handle(handlerSpec) - .get(); - } - - private interface MessageConsumer extends Consumer> { - - } - -} diff --git a/functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerProperties.java b/functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerProperties.java deleted file mode 100644 index 57ecdcd2..00000000 --- a/functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerProperties.java +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.sftp; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import org.hibernate.validator.constraints.Range; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.core.io.Resource; -import org.springframework.expression.Expression; -import org.springframework.integration.file.support.FileExistsMode; -import org.springframework.validation.annotation.Validated; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Corneil du Plessis - */ -@ConfigurationProperties("sftp.consumer") -@Validated -public class SftpConsumerProperties { - - private final Factory factory = new Factory(); - - /** - * A temporary directory where the file will be written if 'isUseTemporaryFilename()' is true. - */ - private String temporaryRemoteDir = "/"; - - /** - * Whether to create the remote directory. - */ - private boolean autoCreateDir = true; - - /** - * Action to take if the remote file already exists. - */ - private FileExistsMode mode = FileExistsMode.REPLACE; - - /** - * Whether to write to a temporary file and rename. - */ - private boolean useTemporaryFilename = true; - - /** - * A SpEL expression to generate the remote file name. - */ - private String filenameExpression; - - /** - * The remote FTP directory. - */ - private String remoteDir = "/"; - - /** - * The suffix to use while the transfer is in progress. - */ - private String tmpFileSuffix = ".tmp"; - - /** - * The remote file separator. - */ - private String remoteFileSeparator = "/"; - - @NotBlank - public String getTemporaryRemoteDir() { - return this.temporaryRemoteDir; - } - - public void setTemporaryRemoteDir(String temporaryRemoteDir) { - this.temporaryRemoteDir = temporaryRemoteDir; - } - - public boolean isAutoCreateDir() { - return this.autoCreateDir; - } - - public void setAutoCreateDir(boolean autoCreateDir) { - this.autoCreateDir = autoCreateDir; - } - - @NotNull - public FileExistsMode getMode() { - return this.mode; - } - - public void setMode(FileExistsMode mode) { - this.mode = mode; - } - - public boolean isUseTemporaryFilename() { - return this.useTemporaryFilename; - } - - public void setUseTemporaryFilename(boolean useTemporaryFilename) { - this.useTemporaryFilename = useTemporaryFilename; - } - - public String getFilenameExpression() { - return this.filenameExpression; - } - - public void setFilenameExpression(String filenameExpression) { - this.filenameExpression = filenameExpression; - } - - @NotBlank - public String getRemoteDir() { - return remoteDir; - } - - public final void setRemoteDir(String remoteDir) { - this.remoteDir = remoteDir; - } - - @NotBlank - public String getTmpFileSuffix() { - return tmpFileSuffix; - } - - public void setTmpFileSuffix(String tmpFileSuffix) { - this.tmpFileSuffix = tmpFileSuffix; - } - - @NotBlank - public String getRemoteFileSeparator() { - return remoteFileSeparator; - } - - public void setRemoteFileSeparator(String remoteFileSeparator) { - this.remoteFileSeparator = remoteFileSeparator; - } - - public Factory getFactory() { - return this.factory; - } - - public static class Factory { - - /** - * The host name of the server. - */ - private String host = "localhost"; - - /** - * The username to use to connect to the server. - */ - - private String username; - - /** - * The password to use to connect to the server. - */ - private String password; - - /** - * Cache sessions. - */ - private Boolean cacheSessions; - - /** - * The port of the server. - */ - private int port = 22; - - /** - * Resource location of user's private key. - */ - private Resource privateKey; - - /** - * Passphrase for user's private key. - */ - private String passPhrase = ""; - - /** - * True to allow an unknown or changed key. - */ - private boolean allowUnknownKeys = false; - - /** - * A SpEL expression resolving to the location of the known hosts file. - */ - private Expression knownHostsExpression = null; - - - @NotBlank - public String getHost() { - return this.host; - } - - public void setHost(String host) { - this.host = host; - } - - @NotBlank - public String getUsername() { - return this.username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return this.password; - } - - public void setPassword(String password) { - this.password = password; - } - - public Boolean getCacheSessions() { - return this.cacheSessions; - } - - public void setCacheSessions(Boolean cacheSessions) { - this.cacheSessions = cacheSessions; - } - - @Range(min = 0, max = 65535) - public int getPort() { - return this.port; - } - - public void setPort(int port) { - this.port = port; - } - - public Resource getPrivateKey() { - return this.privateKey; - } - - public void setPrivateKey(Resource privateKey) { - this.privateKey = privateKey; - } - - public String getPassPhrase() { - return this.passPhrase; - } - - public void setPassPhrase(String passPhrase) { - this.passPhrase = passPhrase; - } - - public boolean isAllowUnknownKeys() { - return this.allowUnknownKeys; - } - - public void setAllowUnknownKeys(boolean allowUnknownKeys) { - this.allowUnknownKeys = allowUnknownKeys; - } - - public Expression getKnownHostsExpression() { - return this.knownHostsExpression; - } - - public void setKnownHostsExpression(Expression knownHosts) { - this.knownHostsExpression = knownHosts; - } - - } -} diff --git a/functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerSessionFactoryConfiguration.java b/functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerSessionFactoryConfiguration.java deleted file mode 100644 index 90b4995d..00000000 --- a/functions/consumer/sftp-consumer/src/main/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerSessionFactoryConfiguration.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.sftp; - -import org.apache.sshd.sftp.client.SftpClient; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.core.io.Resource; -import org.springframework.integration.context.IntegrationContextUtils; -import org.springframework.integration.file.remote.session.CachingSessionFactory; -import org.springframework.integration.file.remote.session.SessionFactory; -import org.springframework.integration.sftp.session.DefaultSftpSessionFactory; - -/** - * Session factory configuration. - * - * @author Gary Russell - * @author Corneil du Plessis - * @author Chris Bono - * @author Artem Bilan - */ -public class SftpConsumerSessionFactoryConfiguration { - - @Bean - @ConditionalOnMissingBean - public SessionFactory sftpSessionFactory( - SftpConsumerProperties properties, - ApplicationContext applicationContext) { - - DefaultSftpSessionFactory sftpSessionFactory = new DefaultSftpSessionFactory(); - SftpConsumerProperties.Factory factory = properties.getFactory(); - sftpSessionFactory.setHost(factory.getHost()); - sftpSessionFactory.setPort(factory.getPort()); - sftpSessionFactory.setUser(factory.getUsername()); - sftpSessionFactory.setPassword(factory.getPassword()); - sftpSessionFactory.setPrivateKey(factory.getPrivateKey()); - sftpSessionFactory.setPrivateKeyPassphrase(factory.getPassPhrase()); - sftpSessionFactory.setAllowUnknownKeys(factory.isAllowUnknownKeys()); - if (factory.getKnownHostsExpression() != null) { - String knownHostsLocation = factory.getKnownHostsExpression() - .getValue(IntegrationContextUtils.getEvaluationContext(applicationContext), String.class); - Resource knownHostsResource = applicationContext.getResource(knownHostsLocation); - sftpSessionFactory.setKnownHostsResource(knownHostsResource); - } - if (factory.getCacheSessions() != null) { - return new CachingSessionFactory<>(sftpSessionFactory); - } - else { - return sftpSessionFactory; - } - } -} diff --git a/functions/consumer/sftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerPropertiesTests.java b/functions/consumer/sftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerPropertiesTests.java deleted file mode 100644 index c70912ac..00000000 --- a/functions/consumer/sftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerPropertiesTests.java +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.sftp; - -import java.io.File; - -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.context.properties.ConfigurationPropertiesBinding; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Lazy; -import org.springframework.core.convert.converter.Converter; -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.Expression; -import org.springframework.expression.ParseException; -import org.springframework.expression.spel.standard.SpelExpression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.integration.config.EnableIntegration; -import org.springframework.integration.config.IntegrationConverter; -import org.springframework.integration.context.IntegrationContextUtils; -import org.springframework.integration.file.remote.session.SessionFactory; -import org.springframework.integration.file.support.FileExistsMode; -import org.springframework.integration.test.util.TestUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author David Turanski - * @author Gary Russell - * @author Artem Bilan - * @author Chris Schaefer - */ -public class SftpConsumerPropertiesTests { - - @Test - public void remoteDirCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - testPropertyValues(context, "sftp.consumer.remoteDir:/remote"); - context.register(Conf.class); - context.refresh(); - SftpConsumerProperties properties = context.getBean(SftpConsumerProperties.class); - assertThat(properties.getRemoteDir()).isEqualTo("/remote"); - context.close(); - } - - @Test - public void autoCreateDirCanBeDisabled() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - testPropertyValues(context, "sftp.consumer.autoCreateDir:false"); - context.register(Conf.class); - context.refresh(); - SftpConsumerProperties properties = context.getBean(SftpConsumerProperties.class); - assertThat(!properties.isAutoCreateDir()).isTrue(); - context.close(); - } - - @Test - public void tmpFileSuffixCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - testPropertyValues(context, "sftp.consumer.tmpFileSuffix:.foo"); - context.register(Conf.class); - context.refresh(); - SftpConsumerProperties properties = context.getBean(SftpConsumerProperties.class); - assertThat(properties.getTmpFileSuffix()).isEqualTo(".foo"); - context.close(); - } - - @Test - public void tmpFileRemoteDirCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - testPropertyValues(context, "sftp.consumer.temporaryRemoteDir:/foo"); - context.register(Conf.class); - context.refresh(); - SftpConsumerProperties properties = context.getBean(SftpConsumerProperties.class); - assertThat(properties.getTemporaryRemoteDir()).isEqualTo("/foo"); - context.close(); - } - - @Test - public void remoteFileSeparatorCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - testPropertyValues(context, "sftp.consumer.remoteFileSeparator:\\"); - context.register(Conf.class); - context.refresh(); - SftpConsumerProperties properties = context.getBean(SftpConsumerProperties.class); - assertThat(properties.getRemoteFileSeparator()).isEqualTo("\\"); - context.close(); - } - - @Test - public void useTemporaryFileNameCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - testPropertyValues(context, "sftp.consumer.useTemporaryFilename:false"); - context.register(Conf.class); - context.refresh(); - SftpConsumerProperties properties = context.getBean(SftpConsumerProperties.class); - assertThat(properties.isUseTemporaryFilename()).isFalse(); - context.close(); - } - - @Test - public void fileExistsModeCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - testPropertyValues(context, "sftp.consumer.mode:FAIL"); - context.register(Conf.class); - context.refresh(); - SftpConsumerProperties properties = context.getBean(SftpConsumerProperties.class); - assertThat(properties.getMode()).isEqualTo(FileExistsMode.FAIL); - context.close(); - } - - @Test - public void knownHostsExpression() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - testPropertyValues(context, - "sftp.consumer.factory.known-hosts-expression = @systemProperties[\"user.home\"] + \"/.ssh/known_hosts\"", - "sftp.consumer.factory.cache-sessions = true"); - context.register(Factory.class); - context.refresh(); - SessionFactory sessionFactory = context.getBean(SessionFactory.class); - assertThat(TestUtils.getPropertyValue(sessionFactory, "sessionFactory.knownHosts") - .toString().replaceAll(java.util.regex.Matcher.quoteReplacement(File.separator), "/") - .endsWith("/.ssh/known_hosts]")).isTrue(); - context.close(); - } - - private void testPropertyValues(ConfigurableApplicationContext context, String... props) { - TestPropertyValues.of("sftp.consumer.factory.username=foo").and(props).applyTo(context); - } - - @Configuration - @EnableConfigurationProperties(SftpConsumerProperties.class) - static class Conf { - - } - - @Configuration - @EnableConfigurationProperties(SftpConsumerProperties.class) - @EnableIntegration - @Import(SftpConsumerSessionFactoryConfiguration.class) - static class Factory { - - @Bean - @ConfigurationPropertiesBinding - @IntegrationConverter - public Converter spelConverter() { - return new SpelConverter(); - } - - /** - * TODO: This needs to be refactored into a generic place for any functions to use. - * - * A simple converter from String to Expression. - * - * @author Eric Bottard - */ - public static class SpelConverter implements Converter { - - private SpelExpressionParser parser = new SpelExpressionParser(); - - @Autowired - @Qualifier(IntegrationContextUtils.INTEGRATION_EVALUATION_CONTEXT_BEAN_NAME) - @Lazy - private EvaluationContext evaluationContext; - - @Override - public Expression convert(String source) { - try { - Expression expression = this.parser.parseExpression(source); - if (expression instanceof SpelExpression) { - ((SpelExpression) expression) - .setEvaluationContext(this.evaluationContext); - } - return expression; - } - catch (ParseException e) { - throw new IllegalArgumentException(String.format( - "Could not convert '%s' into a SpEL expression", source), e); - } - } - - } - - } - -} diff --git a/functions/consumer/sftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerTests.java b/functions/consumer/sftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerTests.java deleted file mode 100644 index 07225706..00000000 --- a/functions/consumer/sftp-consumer/src/test/java/org/springframework/cloud/fn/consumer/sftp/SftpConsumerTests.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.sftp; - -import java.io.File; -import java.util.function.Consumer; - -import org.junit.jupiter.api.Test; - -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.test.support.sftp.SftpTestSupport; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -@DirtiesContext -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { - "sftp.consumer.remoteDir = sftpTarget", - "sftp.consumer.factory.username = foo", - "sftp.consumer.factory.password = foo", - "sftp.consumer.mode = FAIL", - "sftp.consumer.factory.port = ${sftp.factory.port}", - "sftp.consumer.filenameExpression = payload.name.toUpperCase()", - "sftp.consumer.factory.allowUnknownKeys = true" - }) -public class SftpConsumerTests extends SftpTestSupport { - - @Autowired - Consumer> sftpConsumer; - - @Test - public void sendFiles() { - for (int i = 1; i <= 2; i++) { - String pathname = "/localSource" + i + ".txt"; - String upperPathname = pathname.toUpperCase(); - new File(getTargetRemoteDirectory() + upperPathname).delete(); - assertThat(new File(getTargetRemoteDirectory() + upperPathname).exists()).isFalse(); - sftpConsumer.accept(new GenericMessage<>(new File(getSourceLocalDirectory() + pathname))); - File expected = new File(getTargetRemoteDirectory() + upperPathname); - assertThat(expected.exists()).isTrue(); - // verify the uppercase on a case-insensitive file system - File[] files = getTargetRemoteDirectory().listFiles(); - for (File file : files) { - assertThat(file.getName().startsWith("LOCALSOURCE")).isTrue(); - } - } - } - - @Test - public void serverRefreshed() { // noop test to test the dirs are refreshed properly - String pathname = "/LOCALSOURCE1.TXT"; - assertThat(getTargetRemoteDirectory().exists()).isTrue(); - assertThat(new File(getTargetRemoteDirectory() + pathname).exists()).isFalse(); - } - - @SpringBootApplication - static class SftpConsumerTestApplication { - } -} - diff --git a/functions/consumer/tcp-consumer/README.adoc b/functions/consumer/tcp-consumer/README.adoc deleted file mode 100644 index 4d8ff29e..00000000 --- a/functions/consumer/tcp-consumer/README.adoc +++ /dev/null @@ -1,25 +0,0 @@ -# TCP Consumer - -A consumer that allows you to send TCP messages. - -## Beans for injection - -You can import `TcpConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> tcpConsumer` - -You can use `tcpConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `tcp.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/tcp/TCPConsumerProperties.java[TcpConsumerProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/tcp[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/tcp-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a TCP sink. \ No newline at end of file diff --git a/functions/consumer/tcp-consumer/pom.xml b/functions/consumer/tcp-consumer/pom.xml deleted file mode 100644 index 7d24ba65..00000000 --- a/functions/consumer/tcp-consumer/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - tcp-consumer - tcp-consumer - tcp consumer - - - - org.springframework.cloud.fn - tcp-common - ${project.version} - - - - diff --git a/functions/consumer/tcp-consumer/src/main/java/org/springframework/cloud/fn/consumer/tcp/TcpConsumerConfiguration.java b/functions/consumer/tcp-consumer/src/main/java/org/springframework/cloud/fn/consumer/tcp/TcpConsumerConfiguration.java deleted file mode 100644 index 25caf7a8..00000000 --- a/functions/consumer/tcp-consumer/src/main/java/org/springframework/cloud/fn/consumer/tcp/TcpConsumerConfiguration.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import java.util.function.Consumer; - -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.tcp.EncoderDecoderFactoryBean; -import org.springframework.cloud.fn.common.tcp.TcpConnectionFactoryProperties; -import org.springframework.context.SmartLifecycle; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.ip.config.TcpConnectionFactoryFactoryBean; -import org.springframework.integration.ip.tcp.TcpSendingMessageHandler; -import org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory; -import org.springframework.integration.ip.tcp.connection.TcpMessageMapper; -import org.springframework.integration.ip.tcp.serializer.AbstractByteArraySerializer; -import org.springframework.messaging.Message; - -/** - * A consumer that sends data over TCP. - * - * @author Gary Russell - * @author Christian Tzolov - * @author Chris Bono - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties({TcpConsumerProperties.class, TcpConnectionFactoryProperties.class}) -public class TcpConsumerConfiguration { - - private TcpConsumerProperties properties; - private TcpConnectionFactoryProperties tcpConnectionProperties; - - public TcpConsumerConfiguration(TcpConsumerProperties properties, - TcpConnectionFactoryProperties tcpConnectionProperties) { - this.properties = properties; - this.tcpConnectionProperties = tcpConnectionProperties; - } - - @Bean - public Consumer> tcpConsumer(TcpSendingMessageHandlerSmartLifeCycle handler) { - return handler::handleMessage; - } - - @Bean - public TcpSendingMessageHandlerSmartLifeCycle handler(@Qualifier("tcpSinkConnectionFactory") AbstractConnectionFactory connectionFactory) { - TcpSendingMessageHandlerSmartLifeCycle tcpMessageHandler = new TcpSendingMessageHandlerSmartLifeCycle(); - tcpMessageHandler.setConnectionFactory(connectionFactory); - return tcpMessageHandler; - } - - @Bean - public TcpConnectionFactoryFactoryBean tcpSinkConnectionFactory( - @Qualifier("tcpSinkEncoder") AbstractByteArraySerializer encoder, - @Qualifier("tcpSinkMapper") TcpMessageMapper mapper) throws Exception { - TcpConnectionFactoryFactoryBean factoryBean = new TcpConnectionFactoryFactoryBean(); - factoryBean.setType("client"); - factoryBean.setHost(this.properties.getHost()); - factoryBean.setPort(this.tcpConnectionProperties.getPort()); - factoryBean.setUsingNio(this.tcpConnectionProperties.isNio()); - factoryBean.setUsingDirectBuffers(this.tcpConnectionProperties.isUseDirectBuffers()); - factoryBean.setLookupHost(this.tcpConnectionProperties.isReverseLookup()); - factoryBean.setSerializer(encoder); - factoryBean.setSoTimeout(this.tcpConnectionProperties.getSocketTimeout()); - factoryBean.setMapper(mapper); - factoryBean.setSingleUse(this.properties.isClose()); - return factoryBean; - } - - @Bean - public EncoderDecoderFactoryBean tcpSinkEncoder() { - return new EncoderDecoderFactoryBean(this.properties.getEncoder()); - } - - @Bean - public TcpMessageMapper tcpSinkMapper() { - TcpMessageMapper mapper = new TcpMessageMapper(); - mapper.setCharset(this.properties.getCharset()); - return mapper; - } - - static class TcpSendingMessageHandlerSmartLifeCycle extends TcpSendingMessageHandler implements SmartLifecycle { - - @Override - public boolean isAutoStartup() { - return true; - } - - @Override - public int getPhase() { - return Integer.MIN_VALUE; - } - } -} diff --git a/functions/consumer/tcp-consumer/src/main/java/org/springframework/cloud/fn/consumer/tcp/TcpConsumerProperties.java b/functions/consumer/tcp-consumer/src/main/java/org/springframework/cloud/fn/consumer/tcp/TcpConsumerProperties.java deleted file mode 100644 index 4ba112c2..00000000 --- a/functions/consumer/tcp-consumer/src/main/java/org/springframework/cloud/fn/consumer/tcp/TcpConsumerProperties.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.cloud.fn.common.tcp.Encoding; -import org.springframework.validation.annotation.Validated; - -/** - * Properties for the TCP Consumer. - * - * @author Gary Russell - * @author Christian Tzolov - * - */ -@ConfigurationProperties("tcp.consumer") -@Validated -public class TcpConsumerProperties { - - /** - * The host to which this sink will connect. - */ - private String host; - - /** - * The encoder to use when sending messages. - */ - private Encoding encoder = Encoding.CRLF; - - /** - * The charset used when converting from bytes to String. - */ - private String charset = "UTF-8"; - - /** - * Whether to close the socket after each message. - */ - private boolean close; - - @NotNull - public String getHost() { - return host; - } - - public void setHost(String host) { - this.host = host; - } - - @NotNull - public Encoding getEncoder() { - return this.encoder; - } - - public void setEncoder(Encoding encoder) { - this.encoder = encoder; - } - - @NotNull - public String getCharset() { - return charset; - } - - public void setCharset(String charset) { - this.charset = charset; - } - - public boolean isClose() { - return close; - } - - public void setClose(boolean close) { - this.close = close; - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/AbstractTcpConsumerTests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/AbstractTcpConsumerTests.java deleted file mode 100644 index f1d92a92..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/AbstractTcpConsumerTests.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import java.io.IOException; -import java.net.ServerSocket; -import java.net.Socket; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; - -import javax.net.ServerSocketFactory; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.integration.ip.tcp.connection.AbstractClientConnectionFactory; -import org.springframework.integration.ip.tcp.serializer.AbstractByteArraySerializer; -import org.springframework.integration.ip.tcp.serializer.ByteArrayCrLfSerializer; -import org.springframework.integration.ip.tcp.serializer.SoftEndOfStreamException; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for TCP Consumer. - * - * @author Gary Russell - * @author Soby Chacko - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { "tcp.consumer.host = localhost", "tcp.port = ${tcp.consumer.test.port}" }) -@DirtiesContext -public class AbstractTcpConsumerTests { - - private static TestTCPServer server; - - @Autowired - protected AbstractClientConnectionFactory connectionFactory; - - @Autowired - Consumer> tcpConsumer; - - @BeforeAll - public static void startup() { - server = new TestTCPServer(); - } - - @AfterAll - public static void shutDown() { - server.shutDown(); - } - - - /* - * Sends two messages and asserts they arrive as expected on the other side using - * the supplied decoder. - */ - protected void doTest(AbstractByteArraySerializer decoder) throws Exception { - server.setDecoder(decoder); - Message message = new GenericMessage<>("foo"); - tcpConsumer.accept(message); - String received = server.queue.poll(10, TimeUnit.SECONDS); - assertThat(received).isEqualTo("foo"); - - tcpConsumer.accept(message); - received = server.queue.poll(10, TimeUnit.SECONDS); - assertThat(received).isEqualTo("foo"); - } - - /** - * TCP server that uses the supplied {@link AbstractByteArraySerializer} - * to decode the input stream and put the resulting message in a queue. - * - */ - private static class TestTCPServer implements Runnable { - - private static final Log logger = LogFactory.getLog(TestTCPServer.class); - - private final ServerSocket serverSocket; - - private final ExecutorService executor; - - private volatile AbstractByteArraySerializer decoder; - - private final BlockingQueue queue = new LinkedBlockingQueue<>(); - - private volatile boolean stopped; - - TestTCPServer() { - ServerSocket serverSocket = null; - ExecutorService executor = null; - try { - serverSocket = ServerSocketFactory.getDefault().createServerSocket(0); - System.setProperty("tcp.consumer.test.port", Integer.toString(serverSocket.getLocalPort())); - executor = Executors.newSingleThreadExecutor(); - } - catch (IOException e) { - e.printStackTrace(); - } - this.serverSocket = serverSocket; - this.executor = executor; - this.decoder = new ByteArrayCrLfSerializer(); - executor.execute(this); - } - - private void setDecoder(AbstractByteArraySerializer decoder) { - this.decoder = decoder; - } - - @Override - public void run() { - while (true) { - Socket socket = null; - try { - logger.info("Server listening on " + this.serverSocket.getLocalPort()); - socket = this.serverSocket.accept(); - while (true) { - byte[] data = decoder.deserialize(socket.getInputStream()); - queue.offer(new String(data)); - } - } - catch (SoftEndOfStreamException e) { - // normal close - } - catch (IOException e) { - try { - if (socket != null) { - socket.close(); - } - } - catch (IOException e1) { - } - logger.error(e.getMessage()); - if (this.stopped) { - logger.info("Server stopped on " + this.serverSocket.getLocalPort()); - break; - } - } - } - } - - private void shutDown() { - try { - this.stopped = true; - this.serverSocket.close(); - this.executor.shutdownNow(); - } - catch (IOException e) { - } - } - } - - @SpringBootApplication - public static class TcpConsumerTestApplication { - - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/CRLFTests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/CRLFTests.java deleted file mode 100644 index 43dd6d42..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/CRLFTests.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.serializer.ByteArrayCrLfSerializer; - - -/** - * @author Gary Russell - */ -public class CRLFTests extends AbstractTcpConsumerTests { - - @Test - public void test() throws Exception { - doTest(new ByteArrayCrLfSerializer()); - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L1Tests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L1Tests.java deleted file mode 100644 index b55b9581..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L1Tests.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.serializer.ByteArrayLengthHeaderSerializer; -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = {"tcp.consumer.encoder = L1"}) -public class L1Tests extends AbstractTcpConsumerTests { - - @Test - public void test() throws Exception { - doTest(new ByteArrayLengthHeaderSerializer(1)); - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L2Tests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L2Tests.java deleted file mode 100644 index b1454e78..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L2Tests.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.serializer.ByteArrayLengthHeaderSerializer; -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = {"tcp.consumer.encoder = L2"}) -public class L2Tests extends AbstractTcpConsumerTests { - - @Test - public void test() throws Exception { - doTest(new ByteArrayLengthHeaderSerializer(2)); - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L4Tests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L4Tests.java deleted file mode 100644 index a909d5b1..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/L4Tests.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.serializer.ByteArrayLengthHeaderSerializer; -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = {"tcp.consumer.encoder = L4"}) -public class L4Tests extends AbstractTcpConsumerTests { - - @Test - public void test() throws Exception { - doTest(new ByteArrayLengthHeaderSerializer(4)); - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/LFTests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/LFTests.java deleted file mode 100644 index f633f18e..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/LFTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.serializer.ByteArrayLfSerializer; -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = {"tcp.consumer.encoder = LF"}) -public class LFTests extends AbstractTcpConsumerTests { - - @Test - public void test() throws Exception { - doTest(new ByteArrayLfSerializer()); - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/NULLTests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/NULLTests.java deleted file mode 100644 index f22126bb..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/NULLTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.serializer.ByteArraySingleTerminatorSerializer; -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = {"tcp.consumer.encoder = NULL"}) -public class NULLTests extends AbstractTcpConsumerTests { - - @Test - public void test() throws Exception { - doTest(new ByteArraySingleTerminatorSerializer((byte) 0)); - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/NotNioTests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/NotNioTests.java deleted file mode 100644 index aee67b2c..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/NotNioTests.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.connection.TcpNetClientConnectionFactory; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = {"tcp.consumer.host = foo"}) -public class NotNioTests extends AbstractTcpConsumerTests { - - @Test - public void test() throws Exception { - assertThat(this.connectionFactory).isInstanceOf(TcpNetClientConnectionFactory.class); - assertThat(this.connectionFactory.getHost()).isEqualTo("foo"); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "lookupHost", Boolean.class)).isFalse(); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "soTimeout")).isEqualTo(120000); - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/PropertiesPopulatedTests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/PropertiesPopulatedTests.java deleted file mode 100644 index 19a92efe..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/PropertiesPopulatedTests.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.connection.TcpNioClientConnectionFactory; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = {"tcp.consumer.host = foo", "tcp.nio = true", "tcp.reverseLookup = true", - "tcp.useDirectBuffers = true", "tcp.socketTimeout = 123", "tcp.consumer.close = true", "tcp.consumer.charset = bar"}) -public class PropertiesPopulatedTests extends AbstractTcpConsumerTests { - - @Test - public void test() throws Exception { - assertThat(this.connectionFactory).isInstanceOf(TcpNioClientConnectionFactory.class); - assertThat(this.connectionFactory.getHost()).isEqualTo("foo"); - assertThat((TestUtils.getPropertyValue(this.connectionFactory, "lookupHost", Boolean.class))).isTrue(); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "usingDirectBuffers", Boolean.class)).isTrue(); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "soTimeout")).isEqualTo(123); - assertThat(this.connectionFactory.isSingleUse()).isTrue(); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "mapper.charset")).isEqualTo("bar"); - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/RAWTests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/RAWTests.java deleted file mode 100644 index c1a6efa5..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/RAWTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.serializer.ByteArrayRawSerializer; -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = {"tcp.consumer.encoder = RAW", "tcp.consumer.close = true"}) -public class RAWTests extends AbstractTcpConsumerTests { - - @Test - public void test() throws Exception { - doTest(new ByteArrayRawSerializer()); - } -} diff --git a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/STXETXTests.java b/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/STXETXTests.java deleted file mode 100644 index 25cdddc1..00000000 --- a/functions/consumer/tcp-consumer/src/test/java/org/springframework/cloud/fn/consumer/tcp/STXETXTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.serializer.ByteArrayStxEtxSerializer; -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = { "tcp.consumer.encoder = STXETX" }) -public class STXETXTests extends AbstractTcpConsumerTests { - - @Test - public void test() throws Exception { - doTest(new ByteArrayStxEtxSerializer()); - } -} diff --git a/functions/consumer/twitter-consumer/README.adoc b/functions/consumer/twitter-consumer/README.adoc deleted file mode 100644 index 1f95e184..00000000 --- a/functions/consumer/twitter-consumer/README.adoc +++ /dev/null @@ -1,110 +0,0 @@ -# Twitter Consumers - - -## 1. Twitter Status Update Consumer. - -Updates the authenticating user's current text (e.g Tweeting). - -NOTE: For each update attempt, the update text is compared with the authenticating user's recent Tweets. -Any attempt that would result in duplication will be blocked, resulting in a 403 error. -A user cannot submit the same text twice in a row. - -While not rate limited by the API, a user is limited in the number of Tweets they can create at a time. -The update limit for standard API is 300 in 3 hours windows. -If the number of updates posted by the user reaches the current allowed limit this method will return an HTTP 403 error. - -You can find details for the Update API here: https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-update - - -### 1.1 Beans for injection - -You can import `TwitterUpdateConsumerConfiguration` in the application and then inject the following beans. - -- `Consumer updateStatus` - if you have an `StatusUpdate` instance you can use the `updateStatus` to apply it. - -- `Function, StatusUpdate> messageToStatusUpdateFunction` - function that converts a `Message` text into a `StatusUpdate` instance using the `TwitterUpdateConsumerProperties` properties. - -- `Consumer> twitterStatusUpdateConsumer` - composes `messageToStatusUpdateFunction` and `updateStatus` to update the twitter status from Message text. - -Note: the Message content is expected to be in text format. Consider using the `byteArrayTextToString` utility `Function`. - -You can use `twitterStatusUpdateConsumer` as a qualifier when injecting. - -### 1.2 Configuration Options - -All configuration properties are prefixed with `twitter.update`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateConsumerProperties.java[TwitterUpdateConsumerProperties]. - -The twitter function makes uses of link:../spel-function/README.adoc[SpEL function]. - -### 1.3 Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/twitter-update-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a Twitter Update sink. - -## 2. Twitter Message Consumer. - -Send Direct Messages to a specified user from the authenticating user. -Requires a JSON POST body and `Content-Type` header to be set to `application/json`. - -NOTE: When a message is received from a user you may send up to 5 messages in response within a 24 hour window. -Each message received resets the 24 hour window and the 5 allotted messages. -Sending a 6th message within a 24 hour window or sending a message outside of a 24 hour window will count towards rate-limiting. -This behavior only applies when using the POST direct_messages/events/new endpoint. - -SpEL expressions are used to compute the request parameters from the input message. - -### 2.1 Beans for injection - -You can import `TwitterMessageConsumerConfiguration` in the application and then inject the following bean. - -- `Consumer> sendDirectMessageConsumer` - -Note: the Message content is expected to be in text format. Consider using the `byteArrayTextToString` utility `Function`. - -You can use `twitterStatusUpdateConsumer` as a qualifier when injecting. - -### 2.2 Configuration Options - -All configuration properties are prefixed with `twitter.message.update`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/twitter/message/TwitterMessageConsumerProperties.java[TwitterMessageConsumerProperties]. - -The twitter function makes uses of link:../spel-function/README.adoc[SpEL function]. - -### 2.3 Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/twitter-message-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a Twitter Message sink. - -## 3. Twitter Friendship Consumer. - -Allows creating `follow`, `unfollow` and `update` relationships with specified `userId` or `screenName`. -The `twitter.friendships.sink.type` property allows to select the desired friendship operation. - -* https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create[Friendships Create API] - Allows the authenticating user to follow (friend) the user specified in the ID parameter. -Actions taken in this method are asynchronous. -Changes will be eventually consistent. -* https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/post-friendships-update[Friendships Update API] - Enable or disable Retweets and device notifications from the specified user. -* https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/post-friendships-destroy[Friendships Destroy API] - Allows the authenticating user to unfollow the user specified in the ID parameter. - -SpEL expressions are used to compute the request parameters from the input message. -Every operation type has its own parameters. - -### 3.1 Beans for injection - -You can import `TwitterFriendshipsConsumerConfiguration` in the application and then inject the following bean. - -- `Consumer> friendshipConsumer` - -Note: the Message content is expected to be in text format. Consider using the `byteArrayTextToString` utility `Function`. - -You can use `friendshipConsumer` as a qualifier when injecting. - -### 3.2 Configuration Options - -All configuration properties are prefixed with `twitter.friendships.update`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/twitter/friendship/TwitterFriendshipsConsumerProperties.java[TwitterFriendshipsConsumerProperties]. - -The twitter function makes uses of link:../spel-function/README.adoc[SpEL function]. - diff --git a/functions/consumer/twitter-consumer/pom.xml b/functions/consumer/twitter-consumer/pom.xml deleted file mode 100644 index d379928d..00000000 --- a/functions/consumer/twitter-consumer/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/friendship/TwitterFriendshipsConsumerConfiguration.java b/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/friendship/TwitterFriendshipsConsumerConfiguration.java deleted file mode 100644 index ae55a818..00000000 --- a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/friendship/TwitterFriendshipsConsumerConfiguration.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.twitter.friendship; - -import java.util.function.Consumer; - -import twitter4j.Twitter; -import twitter4j.TwitterException; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; - -/** - * - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(TwitterFriendshipsConsumerProperties.class) -@Import(TwitterConnectionConfiguration.class) -public class TwitterFriendshipsConsumerConfiguration { - - @Bean - @SuppressWarnings("Duplicates") - public Consumer> friendshipConsumer(TwitterFriendshipsConsumerProperties properties, Twitter twitter) { - - return message -> { - try { - TwitterFriendshipsConsumerProperties.OperationType type = - properties.getType().getValue(message, TwitterFriendshipsConsumerProperties.OperationType.class); - //TwitterFriendshipsSinkProperties.OperationType type = TwitterFriendshipsSinkProperties.OperationType.create; - if (properties.getUserId() != null) { - Long userId = properties.getUserId().getValue(message, long.class); - switch (type) { - case create: - boolean follow = properties.getCreate().getFollow().getValue(message, boolean.class); - twitter.createFriendship(userId, follow); - return; - - case update: - boolean enableDeviceNotification = properties.getUpdate().getDevice().getValue(message, boolean.class); - boolean retweets = properties.getUpdate().getRetweets().getValue(message, boolean.class); - twitter.updateFriendship(userId, enableDeviceNotification, retweets); - return; - - case destroy: - twitter.destroyFriendship(userId); - return; - } - } - else if (properties.getScreenName() != null) { - String screenName = properties.getScreenName().getValue(message, String.class); - switch (type) { - case create: - boolean follow = properties.getCreate().getFollow().getValue(message, boolean.class); - twitter.createFriendship(screenName, follow); - return; - - case update: - boolean enableDeviceNotification = properties.getUpdate().getDevice().getValue(message, boolean.class); - boolean retweets = properties.getUpdate().getRetweets().getValue(message, boolean.class); - twitter.updateFriendship(screenName, enableDeviceNotification, retweets); - return; - - case destroy: - twitter.destroyFriendship(screenName); - return; - } - } - else { - throw new IllegalStateException("Either ScreenName or UserID must be set"); - } - } - catch (TwitterException te) { - throw new IllegalStateException("Twitter API error!", te); - } - }; - } -} diff --git a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/friendship/TwitterFriendshipsConsumerProperties.java b/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/friendship/TwitterFriendshipsConsumerProperties.java deleted file mode 100644 index 7cc4b89d..00000000 --- a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/friendship/TwitterFriendshipsConsumerProperties.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.twitter.friendship; - -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.stereotype.Component; -import org.springframework.validation.annotation.Validated; - - -/** - * @author Christian Tzolov - */ -@Component -@ConfigurationProperties("twitter.friendships.update") -@Validated -public class TwitterFriendshipsConsumerProperties { - - public enum OperationType { - /** Friendship operation types. */ - create, update, destroy - } - - /** - * The screen name of the user to follow (String). - */ - private Expression screenName; - - /** - * The ID of the user to follow (Integer). - */ - private Expression userId; - - /** - * Type of Friendships request. - */ - private Expression type = new SpelExpressionParser().parseExpression("'create'"); - - /** - * Additional properties for the Friendships create requests. - */ - private Create create = new Create(); - - /** - * Additional properties for the Friendships update requests. - */ - private Update update = new Update(); - - public Expression getScreenName() { - return screenName; - } - - public void setScreenName(Expression screenName) { - this.screenName = screenName; - } - - public Expression getUserId() { - return userId; - } - - public void setUserId(Expression userId) { - this.userId = userId; - } - - public Expression getType() { - return type; - } - - public void setType(Expression type) { - this.type = type; - } - - public Create getCreate() { - return create; - } - - public Update getUpdate() { - return update; - } - - @AssertTrue(message = "Either userId or screenName must be provided") - public boolean isUserProvided() { - return this.userId != null || this.screenName != null; - } - - public static class Create { - /** - * The ID of the user to follow (boolean). - */ - @NotNull - private Expression follow = new SpelExpressionParser().parseExpression("'true'"); - - public Expression getFollow() { - return follow; - } - - public void setFollow(Expression follow) { - this.follow = follow; - } - } - - public static class Update { - /** - * Enable/disable device notifications from the target user. - */ - @NotNull - private Expression device = new SpelExpressionParser().parseExpression("'true'"); - - /** - * Enable/disable Retweets from the target user. - */ - @NotNull - private Expression retweets = new SpelExpressionParser().parseExpression("'true'"); - - public Expression getDevice() { - return device; - } - - public void setDevice(Expression device) { - this.device = device; - } - - public Expression getRetweets() { - return retweets; - } - - public void setRetweets(Expression retweets) { - this.retweets = retweets; - } - } -} diff --git a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/message/TwitterMessageConsumerConfiguration.java b/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/message/TwitterMessageConsumerConfiguration.java deleted file mode 100644 index 377d8319..00000000 --- a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/message/TwitterMessageConsumerConfiguration.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.twitter.message; - -import java.util.function.Consumer; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import twitter4j.Twitter; -import twitter4j.TwitterException; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; - -/** - * - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(TwitterMessageConsumerProperties.class) -@Import(TwitterConnectionConfiguration.class) -public class TwitterMessageConsumerConfiguration { - - private static final Log logger = LogFactory.getLog(TwitterMessageConsumerConfiguration.class); - - @Bean - public Consumer> sendDirectMessageConsumer(TwitterMessageConsumerProperties messageProperties, Twitter twitter) { - return message -> { - try { - String messageText = messageProperties.getText().getValue(message, String.class); - - if (messageProperties.getUserId() != null) { - Long userId = messageProperties.getUserId().getValue(message, long.class); - if (messageProperties.getMediaId() != null) { - Long mediaId = messageProperties.getMediaId().getValue(message, long.class); - twitter.sendDirectMessage(userId, messageText, mediaId); - } - twitter.sendDirectMessage(userId, messageText); - } - else if (messageProperties.getScreenName() != null) { - String screenName = messageProperties.getScreenName().getValue(message, String.class); - twitter.sendDirectMessage(screenName, messageText); - } - else { - throw new RuntimeException("Either the UserId or screenName must be set"); - } - } - catch (TwitterException e) { - logger.error("Failed to process message:" + message, e); - } - }; - } -} diff --git a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/message/TwitterMessageConsumerProperties.java b/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/message/TwitterMessageConsumerProperties.java deleted file mode 100644 index e37be02b..00000000 --- a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/message/TwitterMessageConsumerProperties.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.twitter.message; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.validation.annotation.Validated; - - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("twitter.message.update") -@Validated -public class TwitterMessageConsumerProperties { - - private static final Expression DEFAULT_EXPRESSION = new SpelExpressionParser().parseExpression("payload"); - - /** - * The direct message text. URL encode as necessary. Max length of 10,000 characters. - */ - private Expression text = DEFAULT_EXPRESSION; - - /** - * The screen name of the user to whom send the direct message. - */ - private Expression screenName; - - /** - * The user id of the user to whom send the direct message. - */ - private Expression userId; - - /** - * A media id to associate with the message. A Direct Message may only reference a single media id. - */ - private Expression mediaId; - - public Expression getUserId() { - return userId; - } - - public void setUserId(Expression userId) { - this.userId = userId; - } - - public void setText(Expression text) { - this.text = text; - } - - public Expression getText() { - return text; - } - - public Expression getScreenName() { - return screenName; - } - - public void setScreenName(Expression screenName) { - this.screenName = screenName; - } - - public Expression getMediaId() { - return mediaId; - } - - public void setMediaId(Expression mediaId) { - this.mediaId = mediaId; - } -} diff --git a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateConsumerConfiguration.java b/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateConsumerConfiguration.java deleted file mode 100644 index af49801d..00000000 --- a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateConsumerConfiguration.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.twitter.status.update; - -import java.util.function.Consumer; -import java.util.function.Function; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import twitter4j.GeoLocation; -import twitter4j.Status; -import twitter4j.StatusUpdate; -import twitter4j.Twitter; -import twitter4j.TwitterException; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; - -/** - * - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(TwitterUpdateConsumerProperties.class) -@Import(TwitterConnectionConfiguration.class) -public class TwitterUpdateConsumerConfiguration { - - private static final Log logger = LogFactory.getLog(TwitterUpdateConsumerConfiguration.class); - - @Bean - public Consumer updateStatus(Twitter twitter) { - return statusUpdate -> { - try { - Status status = twitter.updateStatus(statusUpdate); - - if (logger.isDebugEnabled()) { - logger.debug(status); - } - } - catch (TwitterException e) { - logger.error("Failed apply update status: " + statusUpdate, e); - } - }; - } - - @Bean - public Function, StatusUpdate> messageToStatusUpdateFunction( - TwitterUpdateConsumerProperties updateProperties) { - - return message -> { - - String updateText = updateProperties.getText().getValue(message, String.class); - - StatusUpdate statusUpdate = new StatusUpdate(updateText); - - if (updateProperties.getAttachmentUrl() != null) { - statusUpdate.setAttachmentUrl(updateProperties.getAttachmentUrl().getValue(message, String.class)); - } - - if (updateProperties.getPlaceId() != null) { - statusUpdate.setPlaceId(updateProperties.getPlaceId().getValue(message, String.class)); - } - - if (updateProperties.getInReplyToStatusId() != null) { - statusUpdate.setInReplyToStatusId(updateProperties.getInReplyToStatusId().getValue(message, int.class)); - statusUpdate.setAutoPopulateReplyMetadata(true); - } - - if (updateProperties.getDisplayCoordinates() != null) { - statusUpdate.setDisplayCoordinates( - updateProperties.getDisplayCoordinates().getValue(message, boolean.class)); - } - - if (updateProperties.getMediaIds() != null) { - long[] mediaIds = updateProperties.getMediaIds().getValue(message, long[].class); - statusUpdate.setMediaIds(mediaIds); - } - - if (updateProperties.getLocation().getLat() != null) { - double lat = updateProperties.getLocation().getLat().getValue(message, Double.class); - double lon = updateProperties.getLocation().getLon().getValue(message, Double.class); - statusUpdate.setLocation(new GeoLocation(lat, lon)); - } - - return statusUpdate; - }; - } - - @Bean - public Consumer> twitterStatusUpdateConsumer(Function, StatusUpdate> statusUpdateQuery, - Consumer updateStatus) { - return message -> updateStatus.accept(statusUpdateQuery.apply(message)); - } -} diff --git a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateConsumerProperties.java b/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateConsumerProperties.java deleted file mode 100644 index acb2dde6..00000000 --- a/functions/consumer/twitter-consumer/src/main/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateConsumerProperties.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.twitter.status.update; - -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.validation.annotation.Validated; - - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("twitter.update") -@Validated -public class TwitterUpdateConsumerProperties { - - private static final Expression DEFAULT_EXPRESSION = new SpelExpressionParser().parseExpression("payload"); - - /** - * (SpEL expression) The text of the text update. URL encode as necessary. t.co link wrapping will - * affect character counts. Defaults to message's payload - */ - @NotNull - private Expression text = DEFAULT_EXPRESSION; - - /** - * (SpEL expression) In order for a URL to not be counted in the text body of an extended Tweet, provide a URL as a Tweet attachment. - * This URL must be a Tweet permalink, or Direct Message deep link. Arbitrary, non-Twitter URLs must remain in - * the text text. URLs passed to the attachment_url parameter not matching either a Tweet permalink or Direct - * Message deep link will fail at Tweet creation and cause an exception. - */ - private Expression attachmentUrl; - - /** - * (SpEL expression) A place in the world. - */ - private Expression placeId; - - /** - * (SpEL expression) The ID of an existing text that the update is in reply to. Note: This parameter will be ignored unless the - * author of the Tweet this parameter references is mentioned within the text text. Therefore, you must - * include @username, where username is the author of the referenced Tweet, within the update. - * - * When inReplyToStatusId is set the auto_populate_reply_metadata is automatically set as well. Later ensures - * that leading @mentions will be looked up from the original Tweet, and added to the new Tweet from there. - * This wil append @mentions into the metadata of an extended Tweet as a reply chain grows, until the limit - * on @mentions is reached. In cases where the original Tweet has been deleted, - * the reply will fail. - */ - private Expression inReplyToStatusId; - - /** - * (SpEL expression) Whether or not to put a pin on the exact coordinates a Tweet has been sent from. - */ - private Expression displayCoordinates; - - /** - * (SpEL expression) A comma-delimited list of media_ids to associate with the Tweet. You may include up to 4 photos or 1 animated - * GIF or 1 video in a Tweet. See Uploading Media for further details on uploading media. - */ - private Expression mediaIds; - - /** - * (SpEL expression) The location this Tweet refers to. Ignored if geo_enabled for the user is false! - */ - private final Location location = new Location(); - - public Expression getText() { - return text; - } - - public void setText(Expression text) { - this.text = text; - } - - public Expression getAttachmentUrl() { - return attachmentUrl; - } - - public void setAttachmentUrl(Expression attachmentUrl) { - this.attachmentUrl = attachmentUrl; - } - - public Expression getPlaceId() { - return placeId; - } - - public void setPlaceId(Expression placeId) { - this.placeId = placeId; - } - - public Expression getInReplyToStatusId() { - return inReplyToStatusId; - } - - public void setInReplyToStatusId(Expression inReplyToStatusId) { - this.inReplyToStatusId = inReplyToStatusId; - } - - public Expression getDisplayCoordinates() { - return displayCoordinates; - } - - public void setDisplayCoordinates(Expression displayCoordinates) { - this.displayCoordinates = displayCoordinates; - } - - public Expression getMediaIds() { - return mediaIds; - } - - public void setMediaIds(Expression mediaIds) { - this.mediaIds = mediaIds; - } - - public Location getLocation() { - return location; - } - - @AssertTrue(message = "Lat and Long must be set together or both not being set") - public boolean validateLatLon() { - return (this.getLocation().getLat() != null && this.getLocation().getLon() != null) - || (this.getLocation().getLat() == null && this.getLocation().getLon() == null); - } - - public static class Location { - /** - * The latitude of the location this Tweet refers to. This parameter will be ignored unless it is inside the range - * -90.0 to +90.0 (North is positive) inclusive. It will also be ignored if there is no corresponding long parameter. - */ - private Expression lat; - - /** - * The longitude of the location this Tweet refers to. The valid ranges for longitude are -180.0 to +180.0 (East - * is positive) inclusive. This parameter will be ignored if outside that range, if it is not a number, - * if geo_enabled is disabled, or if there no corresponding lat parameter. - */ - private Expression lon; - - public Expression getLat() { - return lat; - } - - public void setLat(Expression lat) { - this.lat = lat; - } - - public Expression getLon() { - return lon; - } - - public void setLon(Expression lon) { - this.lon = lon; - } - } -} diff --git a/functions/consumer/twitter-consumer/src/test/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateSinkFunctionConfigurationTests.java b/functions/consumer/twitter-consumer/src/test/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateSinkFunctionConfigurationTests.java deleted file mode 100644 index 25d4e17a..00000000 --- a/functions/consumer/twitter-consumer/src/test/java/org/springframework/cloud/fn/consumer/twitter/status/update/TwitterUpdateSinkFunctionConfigurationTests.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.twitter.status.update; - -import java.util.function.Consumer; -import java.util.function.Function; - -import org.junit.jupiter.api.Test; -import twitter4j.StatusUpdate; -import twitter4j.Twitter; -import twitter4j.TwitterException; - -import org.springframework.expression.Expression; -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -/** - * @author Christian Tzolov - */ -public class TwitterUpdateSinkFunctionConfigurationTests { - - @Test - public void testStatusUpdateConsumer() throws TwitterException { - Twitter twitter = mock(Twitter.class); - - Consumer statusUpdateConsumer = - new TwitterUpdateConsumerConfiguration().updateStatus(twitter); - - StatusUpdate statusUpdateQuery = new StatusUpdate("Hello World"); - statusUpdateConsumer.accept(statusUpdateQuery); - verify(twitter).updateStatus(eq(statusUpdateQuery)); - } - - @Test - public void testMessageToStatusUpdateFunction() { - TwitterUpdateConsumerProperties properties = new TwitterUpdateConsumerProperties(); - - properties.setAttachmentUrl(expression("'attachmentUrl'")); - properties.setPlaceId(expression("'myPlaceId'")); - properties.setInReplyToStatusId(expression("'666666'")); - properties.setDisplayCoordinates(expression("'true'")); - properties.setMediaIds(expression("'471592142565957632, 471592142565957633'")); - properties.getLocation().setLat(expression("'37.78217'")); - properties.getLocation().setLon(expression("'-122.40062'")); - - Function, StatusUpdate> messageToStatusUpdateFunction = - new TwitterUpdateConsumerConfiguration().messageToStatusUpdateFunction(properties); - - StatusUpdate result = messageToStatusUpdateFunction.apply(new GenericMessage<>("Hello World")); - - assertThat(result).isNotNull(); - assertThat(result.getStatus()).isEqualTo("Hello World"); - assertThat(result.getAttachmentUrl()).isEqualTo("attachmentUrl"); - assertThat(result.getPlaceId()).isEqualTo("myPlaceId"); - assertThat(result.getInReplyToStatusId()).isEqualTo(666666L); - assertThat(result.isDisplayCoordinates()).isTrue(); - assertThat(result.getLocation().getLatitude()).isEqualTo(37.78217); - assertThat(result.getLocation().getLongitude()).isEqualTo(-122.40062); - } - - private Expression expression(String expressionString) { - ExpressionParser parser = new SpelExpressionParser(); - return parser.parseExpression(expressionString); - } -} diff --git a/functions/consumer/wavefront-consumer/README.adoc b/functions/consumer/wavefront-consumer/README.adoc deleted file mode 100644 index 3de258ce..00000000 --- a/functions/consumer/wavefront-consumer/README.adoc +++ /dev/null @@ -1,29 +0,0 @@ -# Wavefront Consumer - -This module provides a Wavefront Consumer that can be reused and composed in other applications. - -## Beans for injection - -You can import the `WavefrontConsumerConfiguration` in the application and then inject the following bean. - -`wavefrontConsumer` - -You can use `wavefrontConsumer` as a qualifier when injecting. - -Type for injection: `Consumer>` - -You can ignore the return value from the function as this is a consumer and simply will send the data to Wavefront. - -## Configuration Options - -All configuration properties are prefixed with `wavefront`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerProperties.java[WavefrontConsumerProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/wavefront[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/wavefront-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a Wavefront sink. diff --git a/functions/consumer/wavefront-consumer/pom.xml b/functions/consumer/wavefront-consumer/pom.xml deleted file mode 100644 index 22fbe755..00000000 --- a/functions/consumer/wavefront-consumer/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerConfiguration.java b/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerConfiguration.java deleted file mode 100644 index bcd35214..00000000 --- a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerConfiguration.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront; - -import java.util.function.Consumer; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.web.client.RestTemplateBuilder; -import org.springframework.cloud.fn.consumer.wavefront.service.DirectConnectionWavefrontService; -import org.springframework.cloud.fn.consumer.wavefront.service.ProxyConnectionWavefrontService; -import org.springframework.cloud.fn.consumer.wavefront.service.WavefrontService; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; -import org.springframework.util.StringUtils; - -/** - * @author Timo Salm - */ -@Configuration -@EnableConfigurationProperties(WavefrontConsumerProperties.class) -@Import(RestTemplateAutoConfiguration.class) -public class WavefrontConsumerConfiguration { - - private static final Log logger = LogFactory.getLog(WavefrontConsumerConfiguration.class); - - @Bean - public Consumer> wavefrontConsumer(final WavefrontConsumerProperties properties, - final WavefrontService service) { - - return message -> { - final WavefrontFormat wavefrontFormat = new WavefrontFormat(properties, message); - final String formattedString = wavefrontFormat.getFormattedString(); - service.send(formattedString); - if (logger.isDebugEnabled()) { - logger.debug(formattedString); - } - }; - } - - @Bean - public WavefrontService wavefrontService(final WavefrontConsumerProperties properties, - final RestTemplateBuilder restTemplateBuilder) { - - if (!StringUtils.isEmpty(properties.getProxyUri())) { - return new ProxyConnectionWavefrontService(restTemplateBuilder, properties.getProxyUri()); - } - else { - return new DirectConnectionWavefrontService(restTemplateBuilder, properties.getUri(), - properties.getApiToken()); - } - } -} diff --git a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerProperties.java b/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerProperties.java deleted file mode 100644 index f5b28ce9..00000000 --- a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerProperties.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront; - -import java.util.Map; - -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; -import jakarta.validation.constraints.Size; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.util.StringUtils; -import org.springframework.validation.annotation.Validated; - -/** - * @author Timo Salm - */ -@ConfigurationProperties("wavefront") -@Validated -public class WavefrontConsumerProperties { - - /** - * The name of the metric.Defaults to the application name. - */ - @Value("${spring.application.name:wavefront.consumer}") - private String metricName; - - /** - * Unique application, host, container, or instance that emits metrics. - */ - private String source; - - /** - * A SpEL expression that evaluates to a metric value. - */ - private Expression metricExpression; - - /** - * A SpEL expression that evaluates to a timestamp of the metric (optional). - */ - private Expression timestampExpression; - - /** - * Collection of custom metadata associated with the metric.Point tags cannot be empty. - * Valid characters for keys: alphanumeric, hyphen ('-'), underscore ('_'), dot ('.'). - * For values any character is allowed, including spaces. To include a double quote, escape it with a backslash, - * A backslash cannot be the last character in the tag value. - * Maximum allowed length for a combination of a point tag key and value is 254 characters - * (255 including the '=' separating key and value). - * If the value is longer, the point is rejected and logged - */ - private Map tagExpression; - - /** - * The URL of the Wavefront environment. - */ - private String uri; - - /** - * Wavefront API access token. - */ - private String apiToken; - - /** - * The URL of the Wavefront proxy. - */ - private String proxyUri; - - public WavefrontConsumerProperties() { - } - - WavefrontConsumerProperties(final String metricName, final String source, final Expression metricExpression, - final Expression timestampExpression, final Map pointTagExpressions, - final String wavefrontServerUri, final String wavefrontApiToken, final String wavefrontProxyUrl) { - - setMetricName(metricName); - setSource(source); - setMetricExpression(metricExpression); - setTimestampExpression(timestampExpression); - setTagExpression(pointTagExpressions); - setUri(wavefrontServerUri); - setApiToken(wavefrontApiToken); - setProxyUri(wavefrontProxyUrl); - } - - @NotEmpty - @Pattern(regexp = "^[a-zA-Z0-9./_,-]+") - public String getMetricName() { - return metricName; - } - - public void setMetricName(String metricName) { - this.metricName = metricName; - } - - @NotEmpty - @Size(max = 128) - @Pattern(regexp = "^[a-zA-Z0-9._-]+") - public String getSource() { - return source; - } - - public void setSource(String source) { - this.source = source; - } - - @NotNull - public Expression getMetricExpression() { - return metricExpression; - } - - public void setMetricExpression(Expression metricExpression) { - this.metricExpression = metricExpression; - } - - public Expression getTimestampExpression() { - return timestampExpression; - } - - public void setTimestampExpression(Expression timestampExpression) { - this.timestampExpression = timestampExpression; - } - - public Map getTagExpression() { - return tagExpression; - } - - public void setTagExpression(Map tagExpression) { - this.tagExpression = tagExpression; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public String getApiToken() { - return apiToken; - } - - public void setApiToken(String apiToken) { - this.apiToken = apiToken; - } - - public String getProxyUri() { - return proxyUri; - } - - public void setProxyUri(String proxyUri) { - this.proxyUri = proxyUri; - } - - @AssertTrue(message = "Exactly one of 'proxy-uri' or the pair of ('uri' and 'api-token') must be set!") - public boolean isMutuallyExclusiveProxyAndDirectAccessWavefrontConfiguration() { - return StringUtils.isEmpty(getProxyUri()) ^ (StringUtils.isEmpty(getUri()) || StringUtils.isEmpty(getApiToken())); - } -} diff --git a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontFormat.java b/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontFormat.java deleted file mode 100644 index 51944c0a..00000000 --- a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontFormat.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront; - -import java.util.AbstractMap; -import java.util.Map; -import java.util.Objects; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -import jakarta.validation.ValidationException; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.expression.EvaluationException; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.SpelEvaluationException; -import org.springframework.messaging.Message; - -/** - * @author Timo Salm - */ -public class WavefrontFormat { - - private static final Log logger = LogFactory.getLog(WavefrontFormat.class); - - private final WavefrontConsumerProperties properties; - private final Message message; - - public WavefrontFormat(final WavefrontConsumerProperties properties, Message message) { - this.properties = properties; - this.message = message; - } - - public String getFormattedString() { - final Number metricValue = extractMetricValueFromPayload(); - - final Map pointTagsMap = extractPointTagsMapFromPayload( - properties.getTagExpression(), message); - validatePointTagsKeyValuePairs(pointTagsMap); - final String formattedPointTagsPart = getFormattedPointTags(pointTagsMap); - - if (properties.getTimestampExpression() == null) { - return String.format("\"%s\" %s source=%s %s", properties.getMetricName(), metricValue, - properties.getSource(), formattedPointTagsPart).trim(); - } - - final Long timestamp = extractTimestampFromPayload(); - return String.format("\"%s\" %s %d source=%s %s", properties.getMetricName(), metricValue, timestamp, - properties.getSource(), formattedPointTagsPart).trim(); - } - - private Long extractTimestampFromPayload() { - try { - return properties.getTimestampExpression().getValue(message, Long.class); - } - catch (SpelEvaluationException e) { - throw new ValidationException("The timestamp value has to be a number that reflects the epoch seconds of the " + - "metric (e.g. 1382754475).", e); - } - } - - private Number extractMetricValueFromPayload() { - try { - return properties.getMetricExpression().getValue(message, Number.class); - } - catch (SpelEvaluationException e) { - throw new ValidationException("The metric value has to be a double-precision floating point number or a " + - "long integer. It can be positive, negative, or 0.", e); - } - } - - private String getFormattedPointTags(Map pointTagsMap) { - return pointTagsMap.entrySet().stream() - .map(it -> String.format("%s=\"%s\"", it.getKey(), it.getValue())) - .collect(Collectors.joining(" ")); - } - - private Map extractPointTagsMapFromPayload(Map pointTagsExpressionsPointValue, Message message) { - return pointTagsExpressionsPointValue.entrySet().stream() - .map(it -> { - try { - final Object pointValue = it.getValue().getValue(message); - return new AbstractMap.SimpleEntry<>(it.getKey(), pointValue); - } - catch (EvaluationException e) { - logger.warn("Unable to extract point tag for key " + it.getKey() + " from payload", e); - return null; - } - }) - .filter(Objects::nonNull) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - } - - private void validatePointTagsKeyValuePairs(Map pointTagsMap) { - pointTagsMap.forEach((key, value) -> { - if (!Pattern.matches("^[a-zA-Z0-9._-]+", key)) { - throw new ValidationException("Point tag key \"" + key + "\" contains invalid characters: Valid " + - "characters are alphanumeric, hyphen (\"-\"), underscore (\"_\"), dot (\".\")"); - } - - final int keyValueCombinationLength = key.length() + value.toString().length(); - if (keyValueCombinationLength > 254) { - logger.warn("Maximum allowed length for a combination of a point tag key and value " + - "is 254 characters. The length of combination for key " + key + " is " + - keyValueCombinationLength + "."); - } - }); - } -} diff --git a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/DirectConnectionWavefrontService.java b/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/DirectConnectionWavefrontService.java deleted file mode 100644 index d2860d3a..00000000 --- a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/DirectConnectionWavefrontService.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront.service; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.boot.web.client.RestTemplateBuilder; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.web.client.RestTemplate; - -/** - * @author Timo Salm - */ -public class DirectConnectionWavefrontService implements WavefrontService { - - private static final Log logger = LogFactory.getLog(DirectConnectionWavefrontService.class); - - private final RestTemplate restTemplate; - private final String wavefrontDomain; - private final String wavefrontToken; - - public DirectConnectionWavefrontService(final RestTemplateBuilder restTemplateBuilder, - final String wavefrontServerUri, final String wavefrontApiToken) { - this.restTemplate = restTemplateBuilder.build(); - this.wavefrontDomain = wavefrontServerUri; - this.wavefrontToken = wavefrontApiToken; - } - - @Override - public void send(String metricInWavefrontFormat) { - if (logger.isDebugEnabled()) { - logger.debug("Send metric directly to Wavefront"); - } - final HttpHeaders headers = new HttpHeaders(); - headers.setBearerAuth(wavefrontToken); - final HttpEntity httpEntity = new HttpEntity<>(metricInWavefrontFormat, headers); - restTemplate.exchange(wavefrontDomain + "/report", HttpMethod.POST, httpEntity, Void.class); - } -} diff --git a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/ProxyConnectionWavefrontService.java b/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/ProxyConnectionWavefrontService.java deleted file mode 100644 index 1b61aebb..00000000 --- a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/ProxyConnectionWavefrontService.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront.service; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.boot.web.client.RestTemplateBuilder; -import org.springframework.web.client.RestTemplate; - -/** - * @author Timo Salm - */ -public class ProxyConnectionWavefrontService implements WavefrontService { - - private static final Log logger = LogFactory.getLog(ProxyConnectionWavefrontService.class); - - private final RestTemplate restTemplate; - private final String wavefrontProxyUrl; - - public ProxyConnectionWavefrontService(final RestTemplateBuilder restTemplateBuilder, - final String wavefrontProxyUri) { - this.restTemplate = restTemplateBuilder.build(); - this.wavefrontProxyUrl = wavefrontProxyUri; - } - - @Override - public void send(String metricInWavefrontFormat) { - if (logger.isDebugEnabled()) { - logger.debug("Send metric to Wavefront proxy"); - } - restTemplate.postForEntity(wavefrontProxyUrl, metricInWavefrontFormat, Void.class); - } -} diff --git a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/WavefrontService.java b/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/WavefrontService.java deleted file mode 100644 index 2d75f1d9..00000000 --- a/functions/consumer/wavefront-consumer/src/main/java/org/springframework/cloud/fn/consumer/wavefront/service/WavefrontService.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront.service; - -/** - * @author Timo Salm - */ -public interface WavefrontService { - void send(String metricInWavefrontFormat); -} diff --git a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerConfigurationTest.java b/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerConfigurationTest.java deleted file mode 100644 index 10e32b8a..00000000 --- a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerConfigurationTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront; - -import java.util.Date; -import java.util.Locale; -import java.util.function.Consumer; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; - -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.cloud.fn.consumer.wavefront.service.WavefrontService; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; - -/** - * @author Timo Salm - */ -@SpringBootTest(properties = { - "wavefront.metric-name=vehicle-location", - "wavefront.source=vehicle-api", - "wavefront.metric-expression=#jsonPath(payload,'$.mileage')", - "wavefront.timestamp-expression=#jsonPath(payload,'$.receivedAt')", - "wavefront.tag-expression.vin=#jsonPath(payload,'$.vin')", - "wavefront.tag-expression.latitude=#jsonPath(payload,'$.location.latitude')", - "wavefront.proxy-uri=testUrl" -}) -public class WavefrontConsumerConfigurationTest { - - @Autowired - private Consumer> wavefrontConsumer; - - @MockBean - private WavefrontService wavefrontServiceMock; - - @BeforeEach - public void init() { - Locale.setDefault(Locale.US); - } - - @Test - void testWavefrontConsumer() { - final long timestamp = new Date().getTime(); - final String dataJsonString = "{ \"mileage\": 1.5, \"receivedAt\": " + timestamp + ", \"vin\": \"test-vin\", " + - "\"location\": {\"latitude\": 4.53, \"longitude\": 2.89 }}"; - - wavefrontConsumer.accept(new GenericMessage(dataJsonString.getBytes())); - - final String formattedString = "\"vehicle-location\" 1.5 " + timestamp + " source=vehicle-api " + - "latitude=\"4.53\" vin=\"test-vin\""; - Mockito.verify(wavefrontServiceMock, Mockito.times(1)).send(formattedString); - } - - @SpringBootApplication - static class WavefrontConsumerTestApplication { - } -} diff --git a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerPropertiesTest.java b/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerPropertiesTest.java deleted file mode 100644 index ac7e52b4..00000000 --- a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontConsumerPropertiesTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront; - -import java.util.Arrays; -import java.util.List; - -import jakarta.validation.Validation; -import jakarta.validation.Validator; -import jakarta.validation.ValidatorFactory; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import org.springframework.expression.Expression; -import org.springframework.expression.spel.standard.SpelExpressionParser; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Timo Salm - */ -public class WavefrontConsumerPropertiesTest { - - private final Expression testExpression = new SpelExpressionParser().parseExpression("#jsonPath(payload,'$')"); - private Validator validator; - - @BeforeEach - public void setUp() { - ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); - validator = factory.getValidator(); - } - - @Test - void testRequiredProperties() { - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("v", "v", testExpression, null, null, null, null, "proxy"); - final List emptyValues = Arrays.asList(null, ""); - - emptyValues.forEach(emptyValue -> { - assertThat(validator.validate(properties).isEmpty()).isTrue(); - properties.setMetricName(emptyValue); - assertThat(validator.validate(properties).isEmpty()).isFalse(); - properties.setMetricName("v"); - - assertThat(validator.validate(properties).isEmpty()).isTrue(); - properties.setSource(emptyValue); - assertThat(validator.validate(properties).isEmpty()).isFalse(); - properties.setSource("v"); - }); - assertThat(validator.validate(properties).isEmpty()).isTrue(); - properties.setMetricExpression(null); - assertThat(validator.validate(properties).isEmpty()).isFalse(); - properties.setMetricExpression(testExpression); - } - - @Test - void testValidMetricNameValues() { - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("v", "v", testExpression, null, null, null, null, "proxy"); - final List validMetricNameValues = Arrays.asList("b", "B", "2", ".", "/", "_", ",", "-", "c.8W-2h_dE_,J-h/"); - assertThat(validator.validate(properties).isEmpty()).isTrue(); - - validMetricNameValues.forEach(validMetricNameValue -> { - properties.setMetricName(validMetricNameValue); - assertThat(validator.validate(properties).isEmpty()).isTrue(); - }); - - final List invalidMetricNameValues = Arrays.asList(" ", ":", "a B", "#"); - invalidMetricNameValues.forEach(invalidMetricNameValue -> { - properties.setMetricName(invalidMetricNameValue); - assertThat(validator.validate(properties).isEmpty()).isFalse(); - }); - } - - @Test - void testValidSourceValues() { - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("v", "v", testExpression, null, null, null, null, "proxy"); - final List validSourceValues = Arrays.asList("b", "B", "2", ".", "_", "-", "c.8W-2h_dE_J-h", - createStringOfLength(128)); - assertThat(validator.validate(properties).isEmpty()).isTrue(); - - validSourceValues.forEach(validSourceValue -> { - properties.setSource(validSourceValue); - assertThat(validator.validate(properties).isEmpty()).isTrue(); - }); - - final List invalidSourceValues = Arrays.asList(" ", ":", "a B", "#", "/", ",", createStringOfLength(129)); - invalidSourceValues.forEach(invalidSourceValue -> { - properties.setSource(invalidSourceValue); - assertThat(validator.validate(properties).isEmpty()).isFalse(); - }); - } - - private String createStringOfLength(int length) { - char[] chars = new char[length]; - Arrays.fill(chars, 'a'); - return new String(chars); - } -} diff --git a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontFormatTest.java b/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontFormatTest.java deleted file mode 100644 index 8983f267..00000000 --- a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/WavefrontFormatTest.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront; - -import java.util.AbstractMap; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import ch.qos.logback.classic.Level; -import ch.qos.logback.classic.Logger; -import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.read.ListAppender; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.slf4j.LoggerFactory; - -import org.springframework.beans.BeanUtils; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.standard.SpelExpression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.expression.spel.support.StandardEvaluationContext; -import org.springframework.integration.json.JsonPathUtils; -import org.springframework.messaging.support.GenericMessage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Timo Salm - */ -public class WavefrontFormatTest { - - private final SpelExpressionParser parser = new SpelExpressionParser(); - - @BeforeEach - public void init() { - Locale.setDefault(Locale.US); - } - - @Test - void testGetFormattedString() { - final long timestamp = new Date().getTime(); - final String dataJsonString = "{ \"value\": 1.5, \"timestamp\": " + timestamp + ", " - + "\"testProp1\": \"testvalue1\", \"testProp2\": \"testvalue2\" }"; - - final Map pointTagsExpressionsPointValueMap = Stream.of( - new AbstractMap.SimpleEntry<>("testpoint1", expression("$.testProp1")), - new AbstractMap.SimpleEntry<>("testpoint2", expression("$.testProp2")) - ).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("testMetricName", "testSource", - expression("$.value"), expression("$.timestamp"), pointTagsExpressionsPointValueMap, null, null, null); - - final String result = new WavefrontFormat(properties, new GenericMessage<>(dataJsonString)).getFormattedString(); - assertThat(result).isEqualTo("\"testMetricName\" 1.5 " + timestamp + " source=testSource testpoint2=\"testvalue2\"" - + " testpoint1=\"testvalue1\"", result); - } - - @Test - void testGetFormattedStringWithoutTimeStamp() { - final String dataJsonString = "{ \"value\": 1.5, \"testProp1\": \"testvalue1\", \"testProp2\": \"testvalue2\" }"; - - final Map pointTagsExpressionsPointValueMap = - Stream.of(new AbstractMap.SimpleEntry<>("testpoint1", expression("$.testProp1"))) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("testMetricName", "testSource", - expression("$.value"), null, pointTagsExpressionsPointValueMap, null, null, null); - - final String result = new WavefrontFormat(properties, new GenericMessage<>(dataJsonString)).getFormattedString(); - assertThat(result).isEqualTo("\"testMetricName\" 1.5 source=testSource testpoint1=\"testvalue1\""); - } - - @Test - void testGetFormattedStringWithoutPointTags() { - final long timestamp = new Date().getTime(); - final String dataJsonString = "{ \"value\": 1.5, \"timestamp\": " + timestamp + "}"; - - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("testMetricName", "testSource", - expression("$.value"), expression("$.timestamp"), Collections.emptyMap(), null, null, null); - - final String result = new WavefrontFormat(properties, new GenericMessage<>(dataJsonString)).getFormattedString(); - assertThat(result).isEqualTo("\"testMetricName\" 1.5 " + timestamp + " source=testSource"); - } - - @Test - void testInvalidMetricValue() { - final String dataJsonString = "{ \"value\": a}"; - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("testMetricName", "testSource", - expression("$.value"), null, Collections.emptyMap(), null, null, null); - final Exception exception = Assertions.assertThrows(RuntimeException.class, () -> - new WavefrontFormat(properties, new GenericMessage<>(dataJsonString)).getFormattedString()); - assertThat(exception.getLocalizedMessage().startsWith("The metric value has to be a double-precision floating")) - .isTrue(); - } - - @Test - void testInvalidTimestampValue() { - final String dataJsonString = "{ \"value\": 1.5, \"timestamp\": 2020-06-02T13:53:18+0000}"; - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("testMetricName", "testSource", - expression("$.value"), expression("$.timestamp"), Collections.emptyMap(), null, null, null); - final Exception exception = Assertions.assertThrows(RuntimeException.class, - () -> new WavefrontFormat(properties, new GenericMessage<>(dataJsonString)).getFormattedString()); - assertThat(exception.getLocalizedMessage().startsWith("The timestamp value has to be a number")).isTrue(); - } - - @Test - void testInvalidPointTagsLengthWarning() { - final Logger logger = (Logger) LoggerFactory.getLogger(WavefrontFormat.class); - final ListAppender listAppender = new ListAppender<>(); - listAppender.start(); - logger.addAppender(listAppender); - - final String testPointTagKey = createStringOfLength(127); - - final Map pointTagsExpressionsPointValueMap = - Stream.of(new AbstractMap.SimpleEntry<>(testPointTagKey, expression("$.testPoint1"))) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("testMetricName", "testSource", - expression("$.value"), null, pointTagsExpressionsPointValueMap, null, null, null); - - final String dataJsonString = "{ \"value\": 1.5, \"testPoint1\": \"" + - createStringOfLength(254 - testPointTagKey.length()) + "\" }"; - new WavefrontFormat(properties, new GenericMessage<>(dataJsonString)).getFormattedString(); - assertThat(listAppender.list.stream() - .filter(event -> event.getMessage().startsWith("Maximum allowed length for a combination")) - .count()).isEqualTo(0); - - final String dataJsonStringWithTooLongValue = "{ \"value\": 1.5, \"testPoint1\": \"" + - createStringOfLength(255 - testPointTagKey.length()) + "\" }"; - new WavefrontFormat(properties, new GenericMessage<>(dataJsonStringWithTooLongValue)).getFormattedString(); - - assertThat(listAppender.list.stream() - .filter(event -> event.getMessage().startsWith("Maximum allowed length for a combination") - && event.getLevel().equals(Level.WARN)) - .count()).isEqualTo(1); - } - - @Test - void testInvalidPointTagKeys() { - final String dataJsonString = "{ \"value\": 1.5, \"testPoint1\": \"testvalue1\" }"; - - final List validPointTagKeys = Arrays.asList("b", "B", "2", ".", "_", "-", "c.8W-2h_dE_J-h"); - for (String validPointTagKey : validPointTagKeys) { - final Map pointTagsExpressionsPointValueMap = - Stream.of(new AbstractMap.SimpleEntry<>(validPointTagKey, expression("$.testPoint1"))) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("testMetricName", "testSource", - expression("$.value"), null, pointTagsExpressionsPointValueMap, null, null, null); - new WavefrontFormat(properties, new GenericMessage<>(dataJsonString)).getFormattedString(); - } - - final List invalidPointTagKeys = Arrays.asList(" ", ":", "a B", "#", "/", ","); - - invalidPointTagKeys.forEach(invalidPointTagKey -> { - final Map pointTagsExpressionsPointValueMap = - Stream.of(new AbstractMap.SimpleEntry<>(invalidPointTagKey, expression("$.testPoint1"))) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - final WavefrontConsumerProperties properties = new WavefrontConsumerProperties("testMetricName", "testSource", - expression("$.value"), null, pointTagsExpressionsPointValueMap, null, null, null); - - final Exception exception = Assertions.assertThrows(RuntimeException.class, - () -> new WavefrontFormat(properties, new GenericMessage<>(dataJsonString)).getFormattedString()); - assertThat(exception.getLocalizedMessage() - .startsWith("Point tag key \"" + invalidPointTagKey + "\" contains invalid characters")).isTrue(); - }); - } - - private String createStringOfLength(int length) { - char[] chars = new char[length]; - Arrays.fill(chars, 'a'); - return new String(chars); - } - - private Expression expression(final String jsonPathExpression) { - final Expression expression = parser.parseExpression("#jsonPath(payload,'" + jsonPathExpression + "')"); - final StandardEvaluationContext evaluationContext = (StandardEvaluationContext) ((SpelExpression) expression).getEvaluationContext(); - evaluationContext.registerFunction("jsonPath", Objects.requireNonNull(BeanUtils.resolveSignature("evaluate", JsonPathUtils.class))); - return expression; - } -} diff --git a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/DirectConnectionWavefrontServiceTest.java b/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/DirectConnectionWavefrontServiceTest.java deleted file mode 100644 index 968ccd58..00000000 --- a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/DirectConnectionWavefrontServiceTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront.service; - -import java.util.Objects; - -import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mockito; - -import org.springframework.boot.web.client.RestTemplateBuilder; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpMethod; -import org.springframework.web.client.RestTemplate; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - - -/** - * @author Timo Salm - */ -public class DirectConnectionWavefrontServiceTest { - - @Test - void testSendMetricInWavefrontFormat() { - final RestTemplateBuilder restTemplateBuilderMock = mock(RestTemplateBuilder.class); - final RestTemplate restTemplateMock = mock(RestTemplate.class); - when(restTemplateBuilderMock.build()).thenReturn(restTemplateMock); - - final String metricInWavefrontFormat = "testMetric"; - final String wavefrontServerUri = "testWavefrontDomain"; - final String wavefrontApiToken = "testWavefrontToken"; - - final WavefrontService service = new DirectConnectionWavefrontService(restTemplateBuilderMock, - wavefrontServerUri, wavefrontApiToken); - service.send(metricInWavefrontFormat); - - final ArgumentCaptor argument = ArgumentCaptor.forClass(HttpEntity.class); - verify(restTemplateMock, Mockito.times(1)) - .exchange(eq(wavefrontServerUri + "/report"), eq(HttpMethod.POST), argument.capture(), - eq(Void.class)); - assertThat(Objects.requireNonNull(argument.getValue().getHeaders().get("Authorization")).get(0)) - .isEqualTo("Bearer " + wavefrontApiToken); - assertThat(Objects.requireNonNull(argument.getValue().getBody())).isEqualTo(metricInWavefrontFormat); - } -} diff --git a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/ProxyConnectionWavefrontServiceTest.java b/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/ProxyConnectionWavefrontServiceTest.java deleted file mode 100644 index 3f8f60bd..00000000 --- a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/ProxyConnectionWavefrontServiceTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront.service; - -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; - -import org.springframework.boot.web.client.RestTemplateBuilder; -import org.springframework.web.client.RestTemplate; - -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -/** - * @author Timo Salm - */ -public class ProxyConnectionWavefrontServiceTest { - - @Test - void testSendMetricInWavefrontFormat() { - final RestTemplateBuilder restTemplateBuilderMock = mock(RestTemplateBuilder.class); - final RestTemplate restTemplateMock = mock(RestTemplate.class); - when(restTemplateBuilderMock.build()).thenReturn(restTemplateMock); - - final String metricInWavefrontFormat = "testMetric"; - final String wavefrontProxyUrl = "testWavefrontProxyUrl"; - - final WavefrontService service = new ProxyConnectionWavefrontService(restTemplateBuilderMock, wavefrontProxyUrl); - service.send(metricInWavefrontFormat); - - verify(restTemplateMock, Mockito.times(1)) - .postForEntity(eq(wavefrontProxyUrl), eq(metricInWavefrontFormat), eq(Void.class)); - } -} diff --git a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/WavefrontServiceConditionTest.java b/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/WavefrontServiceConditionTest.java deleted file mode 100644 index 7cbb224e..00000000 --- a/functions/consumer/wavefront-consumer/src/test/java/org/springframework/cloud/fn/consumer/wavefront/service/WavefrontServiceConditionTest.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.wavefront.service; - -import java.util.Objects; -import java.util.UUID; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.context.annotation.UserConfigurations; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.cloud.fn.common.config.SpelExpressionConverterConfiguration; -import org.springframework.cloud.fn.consumer.wavefront.WavefrontConsumerConfiguration; -import org.springframework.core.NestedExceptionUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Timo Salm - */ -public class WavefrontServiceConditionTest { - - private final ApplicationContextRunner runner = new ApplicationContextRunner() - .withConfiguration(UserConfigurations.of(WavefrontConsumerConfiguration.class, - SpelExpressionConverterConfiguration.class)); - - @Test - public void proxyConnectionShouldBeUsedIfWavefrontProxyAddressSet() { - runner.withPropertyValues( - "wavefront.metric-name=vehicle-location", - "wavefront.source=vehicle-api", - "wavefront.metric-expression=#jsonPath(payload,'$.mileage')", - "wavefront.proxy-uri=http://wavefront-proxy.internal:2878", - "wavefront.uri=", - "wavefront.api-token=" - ).run(context -> { - assertThat(context).hasSingleBean(ProxyConnectionWavefrontService.class); - assertThat(context).doesNotHaveBean(DirectConnectionWavefrontService.class); - }); - } - - @Test - public void proxyConnectionShouldBeUsedIfWavefrontProxyAddressAndDomainAndTokenSet() { - runner.withPropertyValues( - "wavefront.metric-name=vehicle-location", - "wavefront.source=vehicle-api", - "wavefront.metric-expression=#jsonPath(payload,'$.mileage')", - "wavefront.proxy-uri=http://wavefront-proxy.internal:2878", - "wavefront.uri=https://my.wavefront.com", - "wavefront.api-token=" + UUID.randomUUID() - ).run(context -> { - assertThat(context).hasFailed(); - final Throwable rootCause = NestedExceptionUtils.getRootCause(context.getStartupFailure()); - assertThat(Objects.requireNonNull(rootCause).getLocalizedMessage()) - .contains("Exactly one of 'proxy-uri' or the pair of ('uri' and 'api-token') must be set!"); - }); - } - - @Test - public void directConnectionShouldBeUsedIfWavefrontDomainAndTokenSet() { - runner.withPropertyValues( - "wavefront.metric-name=vehicle-location", - "wavefront.source=vehicle-api", - "wavefront.metric-expression=#jsonPath(payload,'$.mileage')", - "wavefront.proxy-uri=", - "wavefront.uri=https://my.wavefront.com", - "wavefront.api-token=" + UUID.randomUUID() - ).run(context -> { - assertThat(context).hasSingleBean(DirectConnectionWavefrontService.class); - assertThat(context).doesNotHaveBean(ProxyConnectionWavefrontService.class); - }); - } - - @Test - public void applicationStartupShouldFailWithMeaningfulErrorMessageIfWavefrontProxyAddressOrDomainAndTokenNotSet() { - runner.withPropertyValues( - "wavefront.metric-name=vehicle-location", - "wavefront.source=vehicle-api", - "wavefront.metric-expression=#jsonPath(payload,'$.mileage')", - "wavefront.proxy-uri=", - "wavefront.uri=", - "wavefront.api-token=" - ).run(context -> { - assertThat(context).hasFailed(); - final Throwable rootCause = NestedExceptionUtils.getRootCause(context.getStartupFailure()); - assertThat(Objects.requireNonNull(rootCause).getLocalizedMessage()) - .contains("Exactly one of 'proxy-uri' or the pair of ('uri' and 'api-token') must be set!"); - }); - } -} diff --git a/functions/consumer/websocket-consumer/README.adoc b/functions/consumer/websocket-consumer/README.adoc deleted file mode 100644 index 16669f23..00000000 --- a/functions/consumer/websocket-consumer/README.adoc +++ /dev/null @@ -1,25 +0,0 @@ -# Websocket Consumer - -A consumer that allows you to send messages using websocket. - -## Beans for injection - -You can import `WebsocketConsumerConfiguration` in the application and then inject the following bean. - -`Consumer> websocketConsumer` - -You can use `websocketConsumer` as a qualifier when injecting. - -## Configuration Options - -All configuration properties are prefixed with `websocket.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerProperties.java[WebsocketConsumerProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/websocket[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/websocket-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a TCP sink. \ No newline at end of file diff --git a/functions/consumer/websocket-consumer/pom.xml b/functions/consumer/websocket-consumer/pom.xml deleted file mode 100644 index c301e982..00000000 --- a/functions/consumer/websocket-consumer/pom.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerConfiguration.java b/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerConfiguration.java deleted file mode 100644 index 37908f5e..00000000 --- a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerConfiguration.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.websocket; - -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.function.Consumer; - -import io.netty.channel.Channel; -import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; -import jakarta.annotation.PostConstruct; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.consumer.websocket.actuator.WebsocketConsumerTraceEndpoint; -import org.springframework.cloud.fn.consumer.websocket.trace.InMemoryTraceRepository; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.messaging.Message; -import org.springframework.messaging.simp.SimpMessageHeaderAccessor; -import org.springframework.messaging.simp.SimpMessageType; - -/** - * @author Oliver Moser - * @author Gary Russell - * @author Artem Bilan - * @author Chris Bono - */ -@Configuration -@EnableConfigurationProperties(WebsocketConsumerProperties.class) -public class WebsocketConsumerConfiguration { - - private static final Log logger = LogFactory.getLog(WebsocketConsumerConfiguration.class); - - @Value("${endpoints.websocketconsumertrace.enabled:false}") - private boolean traceEndpointEnabled; - - @Autowired - private WebsocketConsumerServer websocketConsumerServer; - - @PostConstruct - public void init() throws InterruptedException { - websocketConsumerServer.run(); - } - - @Bean - @ConditionalOnProperty(value = "endpoints.websocketsinktrace.enabled", havingValue = "true") - public WebsocketConsumerTraceEndpoint websocketTraceEndpoint(InMemoryTraceRepository websocketTraceRepository) { - return new WebsocketConsumerTraceEndpoint(websocketTraceRepository); - } - - @Bean - public Consumer> websocketConsumer(InMemoryTraceRepository websocketTraceRepository) { - return message -> { - if (logger.isTraceEnabled()) { - logger.trace("Handling message: " + message); - } - SimpMessageHeaderAccessor headers = SimpMessageHeaderAccessor.wrap(message); - headers.setMessageTypeIfNotSet(SimpMessageType.MESSAGE); - String messagePayload = message.getPayload().toString(); - for (Channel channel : WebsocketConsumerServer.channels) { - if (logger.isTraceEnabled()) { - logger.trace(String.format("Writing message %s to channel %s", messagePayload, channel.localAddress())); - } - - channel.write(new TextWebSocketFrame(messagePayload)); - channel.flush(); - } - - if (this.traceEndpointEnabled) { - addMessageToTraceRepository(websocketTraceRepository, message); - } - }; - } - - private void addMessageToTraceRepository(InMemoryTraceRepository websocketTraceRepository, Message message) { - Map trace = new LinkedHashMap<>(); - trace.put("type", "text"); - trace.put("direction", "out"); - trace.put("id", message.getHeaders().getId()); - trace.put("payload", message.getPayload().toString()); - websocketTraceRepository.add(trace); - } - - @Configuration - static class WebsocketConsumerServerConfiguration { - @Bean - public InMemoryTraceRepository websocketTraceRepository() { - return new InMemoryTraceRepository(); - } - - @Bean - public WebsocketConsumerServer server(WebsocketConsumerProperties properties, WebsocketConsumerServerInitializer initializer) { - return new WebsocketConsumerServer(properties, initializer); - } - - @Bean - public WebsocketConsumerServerInitializer initializer(InMemoryTraceRepository websocketTraceRepository) { - return new WebsocketConsumerServerInitializer(websocketTraceRepository); - } - } - -} diff --git a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerProperties.java b/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerProperties.java deleted file mode 100644 index 4c881c36..00000000 --- a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerProperties.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2014-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.websocket; - -import io.netty.handler.logging.LogLevel; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * @author Oliver Moser - * @author Gary Russell - */ -@ConfigurationProperties("websocket.consumer") -public class WebsocketConsumerProperties { - - /** - * Default log level. - */ - public static final String DEFAULT_LOGLEVEL = LogLevel.WARN.toString(); - - /** - * Default path. - */ - public static final String DEFAULT_PATH = "/websocket"; - - /** - * Default number of threads. - */ - public static final int DEFAULT_THREADS = 1; - - /** - * Default port. - */ - public static final int DEFAULT_PORT = 9292; - - /** - * whether or not to create a {@link io.netty.handler.ssl.SslContext}. - */ - boolean ssl; - - /** - * the port on which the Netty server listens. Default is 9292 - */ - int port = DEFAULT_PORT; - - /** - * the number of threads for the Netty {@link io.netty.channel.EventLoopGroup}. Default is 1 - */ - int threads = DEFAULT_THREADS; - - /** - * the logLevel for netty channels. Default is WARN - */ - String logLevel = DEFAULT_LOGLEVEL; - - /** - * the path on which a WebsocketSink consumer needs to connect. Default is /websocket - */ - String path = DEFAULT_PATH; - - public boolean isSsl() { - return ssl; - } - - public void setSsl(boolean ssl) { - this.ssl = ssl; - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } - - public int getThreads() { - return threads; - } - - public void setThreads(int threads) { - this.threads = threads; - } - - public String getLogLevel() { - return logLevel; - } - - public void setLogLevel(String logLevel) { - this.logLevel = logLevel; - } - - public String getPath() { - return path; - } - - public void setPath(String path) { - this.path = path; - } -} diff --git a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServer.java b/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServer.java deleted file mode 100644 index 1ac4844d..00000000 --- a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServer.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.websocket; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import io.netty.bootstrap.ServerBootstrap; -import io.netty.channel.Channel; -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.nio.NioServerSocketChannel; -import io.netty.handler.logging.LogLevel; -import io.netty.handler.logging.LoggingHandler; -import jakarta.annotation.PostConstruct; -import jakarta.annotation.PreDestroy; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * Bootstraps a Netty server using the {@link WebsocketConsumerServerInitializer}. Also adds - * a {@link LoggingHandler} and uses the logLevel - * from {@link WebsocketConsumerProperties#logLevel}. - * - * @author Oliver Moser - * @author Gary Russell - * @author Chris Bono - */ -public class WebsocketConsumerServer { - - private static final Log logger = LogFactory.getLog(WebsocketConsumerServer.class); - - static final List channels = Collections.synchronizedList(new ArrayList()); - - private WebsocketConsumerProperties properties; - - private WebsocketConsumerServerInitializer initializer; - - private EventLoopGroup bossGroup; - - private EventLoopGroup workerGroup; - - private int port; - - public WebsocketConsumerServer(WebsocketConsumerProperties properties, WebsocketConsumerServerInitializer initializer) { - this.properties = properties; - this.initializer = initializer; - } - - public int getPort() { - return this.port; - } - - @PostConstruct - public void init() { - bossGroup = new NioEventLoopGroup(properties.getThreads()); - workerGroup = new NioEventLoopGroup(); - } - - @PreDestroy - public void shutdown() { - bossGroup.shutdownGracefully(); - workerGroup.shutdownGracefully(); - } - - public void run() throws InterruptedException { - NioServerSocketChannel channel = (NioServerSocketChannel) new ServerBootstrap().group(bossGroup, workerGroup) - .channel(NioServerSocketChannel.class) - .handler(new LoggingHandler(nettyLogLevel())) - .childHandler(initializer) - .bind(properties.getPort()) - .sync() - .channel(); - this.port = channel.localAddress().getPort(); - dumpProperties(); - } - - private void dumpProperties() { - logger.info("███████████████████████████████████████████████████████████"); - logger.info(" >> websocket-sink config << "); - logger.info(""); - logger.info(String.format("port: %s", this.port)); - logger.info(String.format("ssl: %s", this.properties.isSsl())); - logger.info(String.format("path: %s", this.properties.getPath())); - logger.info(String.format("logLevel: %s", this.properties.getLogLevel())); - logger.info(String.format("threads: %s", this.properties.getThreads())); - logger.info(""); - logger.info("████████████████████████████████████████████████████████████"); - } - - // - // HELPERS - // - private LogLevel nettyLogLevel() { - return LogLevel.valueOf(properties.getLogLevel().toUpperCase()); - } - -} diff --git a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServerHandler.java b/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServerHandler.java deleted file mode 100644 index a1856df6..00000000 --- a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServerHandler.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright 2014-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.websocket; - -import java.util.LinkedHashMap; -import java.util.Map; - -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; -import io.netty.channel.ChannelFuture; -import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.SimpleChannelInboundHandler; -import io.netty.handler.codec.http.DefaultFullHttpResponse; -import io.netty.handler.codec.http.FullHttpRequest; -import io.netty.handler.codec.http.FullHttpResponse; -import io.netty.handler.codec.http.HttpUtil; -import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; -import io.netty.handler.codec.http.websocketx.PingWebSocketFrame; -import io.netty.handler.codec.http.websocketx.PongWebSocketFrame; -import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; -import io.netty.handler.codec.http.websocketx.WebSocketFrame; -import io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker; -import io.netty.handler.codec.http.websocketx.WebSocketServerHandshakerFactory; -import io.netty.util.CharsetUtil; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.cloud.fn.consumer.websocket.trace.InMemoryTraceRepository; - -import static io.netty.handler.codec.http.HttpHeaderNames.HOST; -import static io.netty.handler.codec.http.HttpMethod.GET; -import static io.netty.handler.codec.http.HttpResponseStatus.BAD_REQUEST; -import static io.netty.handler.codec.http.HttpResponseStatus.FORBIDDEN; -import static io.netty.handler.codec.http.HttpVersion.HTTP_1_1; - -/** - * Handles handshakes and messages. Based on the Netty websocket examples. - * - * @author Netty Project - * @author Oliver Moser - * @author Gary Russell - * @author Artem Bilan - */ -public class WebsocketConsumerServerHandler extends SimpleChannelInboundHandler { - - private static final Log logger = LogFactory.getLog(WebsocketConsumerServerHandler.class); - - private final boolean traceEnabled; - - private final InMemoryTraceRepository websocketTraceRepository; - - private final WebsocketConsumerProperties properties; - - private WebSocketServerHandshaker handshaker; - - public WebsocketConsumerServerHandler(InMemoryTraceRepository websocketTraceRepository, - WebsocketConsumerProperties properties, - boolean traceEnabled) { - - this.websocketTraceRepository = websocketTraceRepository; - this.properties = properties; - this.traceEnabled = traceEnabled; - } - - @Override - public void channelRead0(ChannelHandlerContext ctx, Object msg) { - if (msg instanceof FullHttpRequest) { - handleHttpRequest(ctx, (FullHttpRequest) msg); - } - else if (msg instanceof WebSocketFrame) { - handleWebSocketFrame(ctx, (WebSocketFrame) msg); - } - } - - @Override - public void channelReadComplete(ChannelHandlerContext ctx) { - ctx.flush(); - } - - private void handleHttpRequest(ChannelHandlerContext ctx, FullHttpRequest req) { - // Handle a bad request. - if (!req.decoderResult().isSuccess()) { - logger.warn(String.format("Bad request: %s", req.uri())); - sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, BAD_REQUEST)); - return; - } - - // Allow only GET methods. - if (req.method() != GET) { - logger.warn(String.format("Unsupported HTTP method: %s", req.method())); - sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, FORBIDDEN)); - return; - } - - // enable subclasses to do additional processing - if (!additionalHttpRequestHandler(ctx, req)) { - return; - } - - // Handshake - WebSocketServerHandshakerFactory wsFactory - = new WebSocketServerHandshakerFactory(getWebSocketLocation(req), null, true); - - this.handshaker = wsFactory.newHandshaker(req); - if (this.handshaker == null) { - WebSocketServerHandshakerFactory.sendUnsupportedVersionResponse(ctx.channel()); - } - else { - this.handshaker.handshake(ctx.channel(), req); - WebsocketConsumerServer.channels.add(ctx.channel()); - } - } - - private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) { - // Check for closing frame - if (frame instanceof CloseWebSocketFrame) { - addTraceForFrame(frame, "close"); - this.handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain()); - return; - } - if (frame instanceof PingWebSocketFrame) { - addTraceForFrame(frame, "ping"); - ctx.channel().write(new PongWebSocketFrame(frame.content().retain())); - return; - } - if (!(frame instanceof TextWebSocketFrame)) { - throw new UnsupportedOperationException(String.format("%s frame types not supported", frame.getClass() - .getName())); - } - - // todo [om] think about BinaryWebsocketFrame - - handleTextWebSocketFrameInternal((TextWebSocketFrame) frame, ctx); - } - - private boolean additionalHttpRequestHandler(ChannelHandlerContext ctx, FullHttpRequest req) { - // implement other HTTP request logic - return true; // continue processing - } - - // simple echo implementation - private void handleTextWebSocketFrameInternal(TextWebSocketFrame frame, ChannelHandlerContext ctx) { - if (logger.isTraceEnabled()) { - logger.trace(String.format("%s received %s", ctx.channel(), frame.text())); - } - - addTraceForFrame(frame, "text"); - ctx.channel().write(new TextWebSocketFrame("Echo: " + frame.text())); - } - - // add trace information for received frame - private void addTraceForFrame(WebSocketFrame frame, String type) { - Map trace = new LinkedHashMap<>(); - trace.put("type", type); - trace.put("direction", "in"); - if (frame instanceof TextWebSocketFrame) { - trace.put("payload", ((TextWebSocketFrame) frame).text()); - } - - if (this.traceEnabled) { - this.websocketTraceRepository.add(trace); - } - } - - private void sendHttpResponse(ChannelHandlerContext ctx, FullHttpRequest req, FullHttpResponse res) { - // Generate an error page if response getStatus code is not OK (200). - if (res.status().code() != 200) { - ByteBuf buf = Unpooled.copiedBuffer(res.status().toString(), CharsetUtil.UTF_8); - res.content().writeBytes(buf); - buf.release(); - HttpUtil.setContentLength(res, res.content().readableBytes()); - } - - // Send the response and close the connection if necessary. - ChannelFuture f = ctx.channel().writeAndFlush(res); - if (!HttpUtil.isKeepAlive(req) || res.status().code() != 200) { - f.addListener(ChannelFutureListener.CLOSE); - } - } - - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { - logger.error("Websocket error", cause); - cause.printStackTrace(); - ctx.close(); - } - - private String getWebSocketLocation(FullHttpRequest req) { - String location = req.headers().get(HOST) + this.properties.getPath(); - if (this.properties.isSsl()) { - return "wss://" + location; - } - else { - return "ws://" + location; - } - } -} diff --git a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServerInitializer.java b/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServerInitializer.java deleted file mode 100644 index ffdefc02..00000000 --- a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerServerInitializer.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2014-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.websocket; - -import java.security.cert.CertificateException; - -import javax.net.ssl.SSLException; - -import io.netty.channel.ChannelInitializer; -import io.netty.channel.ChannelPipeline; -import io.netty.channel.socket.SocketChannel; -import io.netty.handler.codec.http.HttpObjectAggregator; -import io.netty.handler.codec.http.HttpServerCodec; -import io.netty.handler.ssl.SslContext; -import io.netty.handler.ssl.SslContextBuilder; -import io.netty.handler.ssl.util.SelfSignedCertificate; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.cloud.fn.consumer.websocket.trace.InMemoryTraceRepository; - -/** - * Does some basic initialization and setup. - * - *
    - *
  • Configure the {@link SslContext} based on {@link WebsocketConsumerProperties#ssl}
  • - *
  • add the {@link WebsocketConsumerServerHandler} to the underlying {@link ChannelPipeline}
  • - *
- * - * @author Oliver Moser - * @author Gary Russell - * @author Artem Bilan - */ -public class WebsocketConsumerServerInitializer extends ChannelInitializer { - - /** - * Max content length. - */ - public static final int MAX_CONTENT_LENGTH = 65536; - - private final InMemoryTraceRepository traceRepository; - - @Autowired - private WebsocketConsumerProperties properties; - - @Value("${endpoints.websocketsinktrace.enabled:false}") - private boolean traceEnabled; - - public WebsocketConsumerServerInitializer(InMemoryTraceRepository traceRepository) { - this.traceRepository = traceRepository; - } - - @Override - public void initChannel(SocketChannel ch) throws Exception { - ChannelPipeline pipeline = ch.pipeline(); - - final SslContext sslCtx = configureSslContext(); - if (sslCtx != null) { - pipeline.addLast(sslCtx.newHandler(ch.alloc())); - } - - pipeline.addLast(new HttpServerCodec()); - pipeline.addLast(new HttpObjectAggregator(MAX_CONTENT_LENGTH)); - pipeline.addLast(new WebsocketConsumerServerHandler(this.traceRepository, this.properties, this.traceEnabled)); - } - - private SslContext configureSslContext() throws CertificateException, SSLException { - if (this.properties.isSsl()) { - SelfSignedCertificate ssc = new SelfSignedCertificate(); - return SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build(); - } - else { - return null; - } - } -} diff --git a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/actuator/WebsocketConsumerTraceEndpoint.java b/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/actuator/WebsocketConsumerTraceEndpoint.java deleted file mode 100644 index 1609956a..00000000 --- a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/actuator/WebsocketConsumerTraceEndpoint.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2014-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.websocket.actuator; - -import java.util.List; - -import jakarta.annotation.PostConstruct; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.boot.actuate.endpoint.annotation.Endpoint; -import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.cloud.fn.consumer.websocket.trace.InMemoryTraceRepository; -import org.springframework.cloud.fn.consumer.websocket.trace.Trace; - -/** - * Simple Spring Boot Actuator {@link Endpoint} implementation that - * provides access to Websocket messages last sent/received. - * - * @author Oliver Moser - * @author Artem Bilan - */ -@ConfigurationProperties(prefix = "endpoints.websocketconsumertrace") -@Endpoint(id = "websocketconsumertrace") -public class WebsocketConsumerTraceEndpoint { - - private static final Log logger = LogFactory.getLog(WebsocketConsumerTraceEndpoint.class); - - private boolean enabled; - - private final InMemoryTraceRepository repository; - - public WebsocketConsumerTraceEndpoint(InMemoryTraceRepository repository) { - this.repository = repository; - logger.info(String.format("/websocketsinktrace enabled: %b", this.enabled)); - } - - @PostConstruct - public void init() { - - } - - @ReadOperation - public List traces() { - return this.repository.findAll(); - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - -} diff --git a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/trace/InMemoryTraceRepository.java b/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/trace/InMemoryTraceRepository.java deleted file mode 100644 index bdd47f11..00000000 --- a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/trace/InMemoryTraceRepository.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2018-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.websocket.trace; - -import java.util.Collections; -import java.util.Date; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -/** - * A repository for {@link Trace}s. - * - * It is a copy of {@code InMemoryTraceRepository} from Spring Boot 1.5.x. - * Since Spring Boot 2.0 traces are only available for HTTP. - * - * @author Dave Syer - * @author Olivier Bourgain - * @author Artem Bilan - * - * @since 2.0 - */ -public class InMemoryTraceRepository { - - private int capacity = 100; - - private boolean reverse = true; - - private final List traces = new LinkedList<>(); - - /** - * Flag to say that the repository lists traces in reverse order. - * @param reverse flag value (default true) - */ - public void setReverse(boolean reverse) { - synchronized (this.traces) { - this.reverse = reverse; - } - } - - /** - * Set the capacity of the in-memory repository. - * @param capacity the capacity - */ - public void setCapacity(int capacity) { - synchronized (this.traces) { - this.capacity = capacity; - } - } - - public List findAll() { - synchronized (this.traces) { - return Collections.unmodifiableList(this.traces); - } - } - - public void add(Map map) { - Trace trace = new Trace(new Date(), map); - synchronized (this.traces) { - while (this.traces.size() >= this.capacity) { - this.traces.remove(this.reverse ? this.capacity - 1 : 0); - } - if (this.reverse) { - this.traces.add(0, trace); - } - else { - this.traces.add(trace); - } - } - } -} diff --git a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/trace/Trace.java b/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/trace/Trace.java deleted file mode 100644 index 636fbe3f..00000000 --- a/functions/consumer/websocket-consumer/src/main/java/org/springframework/cloud/fn/consumer/websocket/trace/Trace.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2018-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.websocket.trace; - -import java.util.Date; -import java.util.Map; - -import org.springframework.util.Assert; - -/** - * A value object representing a trace event: at a particular time with a simple (map) - * information. Can be used for analyzing contextual information such as HTTP headers. - * - *

It is a copy of {@code InMemoryTraceRepository} from Spring Boot 1.5.x. - * Since Spring Boot 2.0 traces are only available for HTTP. - * - * @author Dave Syer - * @author Artem Bilan - * - * @since 2.0 - */ -public class Trace { - - private final Date timestamp; - - private final Map info; - - public Trace(Date timestamp, Map info) { - Assert.notNull(timestamp, "Timestamp must not be null"); - Assert.notNull(info, "Info must not be null"); - this.timestamp = timestamp; - this.info = info; - } - - public Date getTimestamp() { - return this.timestamp; - } - - public Map getInfo() { - return this.info; - } -} diff --git a/functions/consumer/websocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerTests.java b/functions/consumer/websocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerTests.java deleted file mode 100644 index 07bcf7c0..00000000 --- a/functions/consumer/websocket-consumer/src/test/java/org/springframework/cloud/fn/consumer/websocket/WebsocketConsumerTests.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.websocket; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.ExecutionException; -import java.util.function.Consumer; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.Timeout; - -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.test.support.websocket.WebsocketConsumerClientHandler; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.web.socket.WebSocketSession; -import org.springframework.web.socket.client.standard.StandardWebSocketClient; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Oliver Moser - * @author Gary Russell - * @author Artem Bilan - * @author Corneil du Plessis - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, - properties = { - "websocket.consumer.port=0", - "websocket.consumer.path=/some_websocket_path", - "websocket.consumer.logLevel=DEBUG", - "websocket.consumer.threads=2" - }) -@DirtiesContext -public class WebsocketConsumerTests { - - public static final int TIMEOUT = 10000; - - public static final int MESSAGE_COUNT = 100; - - public static final int CLIENT_COUNT = 10; - - @Autowired - private WebsocketConsumerProperties properties; - - @Autowired - private WebsocketConsumerServer consumerServer; - - @Autowired - Consumer> websocketConsumer; - - @Test - public void checkCmdlineArgs() { - assertThat(properties.getPath()).isEqualTo("/some_websocket_path"); - assertThat(properties.getPort()).isEqualTo((0)); - assertThat(properties.getLogLevel()).isEqualTo(("DEBUG")); - assertThat(properties.getThreads()).isEqualTo((2)); - } - - @Test - @Timeout(TIMEOUT) - public void testMultipleMessageSingleSubscriber() throws Exception { - WebsocketConsumerClientHandler handler = new WebsocketConsumerClientHandler("handler_0", MESSAGE_COUNT, TIMEOUT); - doHandshake(handler); - - List messagesToSend = submitMultipleMessages(MESSAGE_COUNT); - handler.await(); - - assertThat(handler.getReceivedMessages().size()).isEqualTo(MESSAGE_COUNT); - messagesToSend.forEach(s -> assertThat(handler.getReceivedMessages().contains(s)).isTrue()); - } - - @Test - @Timeout(TIMEOUT) - public void testSingleMessageMultipleSubscribers() throws Exception { - - // create multiple handlers - List handlers = createHandlerList(CLIENT_COUNT, 1); - - // submit a single message - String payload = UUID.randomUUID().toString(); - websocketConsumer.accept(MessageBuilder.withPayload(payload).build()); - - // await completion on each handler - for (WebsocketConsumerClientHandler handler : handlers) { - handler.await(); - assertThat(handler.getReceivedMessages().size()).isEqualTo(1); - assertThat(handler.getReceivedMessages().get(0)).isEqualTo(payload); - } - } - - @Test - @Timeout(TIMEOUT) - public void testMultipleMessagesMultipleSubscribers() throws Exception { - - // create multiple handlers - List handlers = createHandlerList(CLIENT_COUNT, MESSAGE_COUNT); - - // submit mulitple message - List messagesReceived = submitMultipleMessages(MESSAGE_COUNT); - - // wait on each handle - for (WebsocketConsumerClientHandler handler : handlers) { - handler.await(); - assertThat(handler.getReceivedMessages().size()).isEqualTo(messagesReceived.size()); - assertThat(handler.getReceivedMessages()).isEqualTo(messagesReceived); - } - } - - private WebSocketSession doHandshake(WebsocketConsumerClientHandler handler) - throws InterruptedException, ExecutionException { - String wsEndpoint = "ws://localhost:" + this.consumerServer.getPort() + this.properties.getPath(); - return new StandardWebSocketClient().doHandshake(handler, wsEndpoint).get(); - } - - private List submitMultipleMessages(int messageCount) { - List messagesToSend = new ArrayList<>(messageCount); - synchronized (websocketConsumer) { - for (int i = 0; i < messageCount; i++) { - String message = "message_" + i; - messagesToSend.add(message); - websocketConsumer.accept(MessageBuilder.withPayload(message).build()); - } - } - - return messagesToSend; - } - - private List createHandlerList(int handlerCount, int messageCount) throws - InterruptedException, - ExecutionException { - - List handlers = new ArrayList<>(handlerCount); - for (int i = 0; i < handlerCount; i++) { - WebsocketConsumerClientHandler handler = new WebsocketConsumerClientHandler("handler_" + i, messageCount, TIMEOUT); - WebSocketSession session = doHandshake(handler); - assertThat(session.isOpen()); - handlers.add(handler); - } - return handlers; - } - - @SpringBootApplication - public static class WebsocketConsumerTestApplication { - - } -} diff --git a/functions/consumer/xmpp-consumer/README.adoc b/functions/consumer/xmpp-consumer/README.adoc deleted file mode 100644 index 69fb6848..00000000 --- a/functions/consumer/xmpp-consumer/README.adoc +++ /dev/null @@ -1,30 +0,0 @@ -# XMPP Consumer - -A consumer that allows you to send messages through a XMPP server. - -## Beans for injection - -You can import the `XmppConsumerConfiguration` in the application and then inject the following bean. - -`Consumer xmppConsumer` - -You need to inject this as `Consumer xmppConsumer`. - -You can use `xmppConsumer` as a qualifier when injecting. - -**NOTE:** This is a functional endpoint. One will need to subscribe to this endpoint in order to start accepting data -on it. - -## Configuration Options - -All configuration properties are prefixed with `xmpp.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerProperties.java[XmppConsumerProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/xmpp/[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/xmpp-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a XMPP Sink. diff --git a/functions/consumer/xmpp-consumer/pom.xml b/functions/consumer/xmpp-consumer/pom.xml deleted file mode 100644 index 6c860280..00000000 --- a/functions/consumer/xmpp-consumer/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/consumer/xmpp-consumer/src/main/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfiguration.java b/functions/consumer/xmpp-consumer/src/main/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfiguration.java deleted file mode 100644 index 9827a575..00000000 --- a/functions/consumer/xmpp-consumer/src/main/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfiguration.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.xmpp; - -import java.util.function.Consumer; - -import org.jivesoftware.smack.XMPPConnection; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.xmpp.XmppConnectionFactoryConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.integration.xmpp.XmppHeaders; -import org.springframework.integration.xmpp.outbound.ChatMessageSendingMessageHandler; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; - -/** - * - * @author Daniel Frey - * @since 4.0.0 - */ -@Configuration -@EnableConfigurationProperties(XmppConsumerProperties.class) -@Import(XmppConnectionFactoryConfiguration.class) -public class XmppConsumerConfiguration { - - @Bean - public ChatMessageSendingMessageHandler chatMessageSendingMessageHandler(XMPPConnection xmppConnection) { - - return new ChatMessageSendingMessageHandler(xmppConnection); - } - - @Bean - public Consumer> xmppConsumer(ChatMessageSendingMessageHandler chatMessageSendingMessageHandler, XmppConsumerProperties properties) { - return message -> { - - var send = MessageBuilder - .fromMessage(message) - .setHeaderIfAbsent(XmppHeaders.TO, properties.getChatTo()) - .build(); - - chatMessageSendingMessageHandler.handleMessage(send); - - }; - } - -} diff --git a/functions/consumer/xmpp-consumer/src/main/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerProperties.java b/functions/consumer/xmpp-consumer/src/main/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerProperties.java deleted file mode 100644 index 32a44dfb..00000000 --- a/functions/consumer/xmpp-consumer/src/main/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerProperties.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.xmpp; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * - * @author Daniel Frey - * @since 4.0.0 - */ -@ConfigurationProperties("xmpp.consumer") -@Validated -public class XmppConsumerProperties { - - /** - * XMPP handle to send message to. - */ - private String chatTo; - - public void setChatTo(String chatTo) { - this.chatTo = chatTo; - } - - public String getChatTo() { - return chatTo; - } - -} diff --git a/functions/consumer/xmpp-consumer/src/test/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfigurationTests.java b/functions/consumer/xmpp-consumer/src/test/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfigurationTests.java deleted file mode 100644 index 6bb0b6b8..00000000 --- a/functions/consumer/xmpp-consumer/src/test/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfigurationTests.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.xmpp; - -import java.io.IOException; -import java.time.Duration; -import java.util.function.Consumer; - -import org.jivesoftware.smack.ConnectionConfiguration; -import org.jivesoftware.smack.SmackException; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smack.filter.StanzaTypeFilter; -import org.jivesoftware.smack.packet.Stanza; -import org.jivesoftware.smack.tcp.XMPPTCPConnection; -import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.jxmpp.stringprep.XmppStringprepException; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport; -import org.springframework.context.annotation.Import; -import org.springframework.integration.xmpp.XmppHeaders; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.awaitility.Awaitility.await; -import static org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport.JOHN_USER; -import static org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport.SERVICE_NAME; -import static org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport.USER_PW; - -/** - * @author Daniel Frey - * @author Chris Bono - */ -@SpringBootTest( - properties = { - "xmpp.factory.user=" + JOHN_USER, - "xmpp.factory.password=" + USER_PW, - "xmpp.factory.service-name=" + SERVICE_NAME, - "xmpp.factory.security-mode=disabled" - } -) -@DirtiesContext -public class XmppConsumerConfigurationTests implements XmppTestContainerSupport { - - @DynamicPropertySource - static void registerConfigurationProperties(DynamicPropertyRegistry registry) { - registry.add("xmpp.factory.host", () -> XmppTestContainerSupport.getXmppHost()); - registry.add("xmpp.factory.port", () -> XmppTestContainerSupport.getXmppMappedPort()); - } - - @Autowired - private Consumer> xmppConsumer; - - // A client connection is needed to receive the message from the xmpp server - // to verify it was received successfully - private XMPPTCPConnection clientConnection; - - @BeforeEach - void setup() throws IOException, SmackException, XMPPException, InterruptedException { - - var builder = XMPPTCPConnectionConfiguration.builder(); - builder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled); - builder.setHost(XmppTestContainerSupport.getXmppHost()); - builder.setPort(XmppTestContainerSupport.getXmppMappedPort()); - builder.setResource(SERVICE_NAME); - builder.setUsernameAndPassword(JANE_USER, USER_PW) - .setXmppDomain(SERVICE_NAME); - this.clientConnection = new XMPPTCPConnection(builder.build()); - this.clientConnection.connect(); - this.clientConnection.login(); - - } - - @AfterEach - void teardown() { - this.clientConnection.instantShutdown(); - } - - @Test - void messageHandlerConfiguration() { - var collector - = this.clientConnection.createStanzaCollector(StanzaTypeFilter.MESSAGE); - - var testMessage = - MessageBuilder.withPayload("test") - .setHeader(XmppHeaders.TO, JANE_USER + "@" + SERVICE_NAME) - .build(); - - await().atMost(Duration.ofSeconds(20)).pollDelay(Duration.ofMillis(100)) - .untilAsserted(() -> { - xmppConsumer.accept(testMessage); - Stanza stanza = collector.nextResult(); - assertStanza(stanza); - }); - } - - @Test - void xmppMessageHandlerConfiguration() throws XmppStringprepException { - var collector - = this.clientConnection.createStanzaCollector(StanzaTypeFilter.MESSAGE); - - var testMessage = - MessageBuilder.withPayload(org.jivesoftware.smack.packet.MessageBuilder.buildMessage().addBody("en_us", "test").to(JANE_USER + "@" + SERVICE_NAME).build()) - .build(); - - await().atMost(Duration.ofSeconds(20)).pollDelay(Duration.ofMillis(100)) - .untilAsserted(() -> { - xmppConsumer.accept(testMessage); - Stanza stanza = collector.nextResult(); - assertStanza(stanza); - }); - } - - private void assertStanza(Stanza stanza) { - assertTo(stanza); - assertFrom(stanza); - } - - private void assertTo(Stanza stanza) { - assertThat(stanza.getTo().asBareJid().asUnescapedString()).isEqualTo(JANE_USER + "@" + SERVICE_NAME); - } - - private void assertFrom(Stanza stanza) { - assertThat(stanza.getFrom().asBareJid().asUnescapedString()).isEqualTo(JOHN_USER + "@" + SERVICE_NAME); - } - - @SpringBootConfiguration - @EnableAutoConfiguration - @Import(XmppConsumerConfiguration.class) - static class XmppConsumerTestApplication { } - -} diff --git a/functions/consumer/zeromq-consumer/README.adoc b/functions/consumer/zeromq-consumer/README.adoc deleted file mode 100644 index 58976d0b..00000000 --- a/functions/consumer/zeromq-consumer/README.adoc +++ /dev/null @@ -1,30 +0,0 @@ -# ZeroMQ Consumer - -A consumer that allows you to send messages through a ZeroMQ socker. - -## Beans for injection - -You can import the `ZeroMqConsumerConfiguration` in the application and then inject the following bean. - -`Function>, Mono> zeromqConsumer` - -You need to inject this as `Function>, Mono> zeromqConsumer`. - -You can use `zeromqConsumer` as a qualifier when injecting. - -**NOTE:** This is a functional endpoint. One will need to subscribe to this endpoint in order to start accepting data -on it. - -## Configuration Options - -All configuration properties are prefixed with `zeromq.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerProperties.java[ZeroMqConsumerProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/zeromq/[test suite] for the various ways, this consumer is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/zeromq-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a ZeroMQ Sink. diff --git a/functions/consumer/zeromq-consumer/pom.xml b/functions/consumer/zeromq-consumer/pom.xml deleted file mode 100644 index 6832a3d0..00000000 --- a/functions/consumer/zeromq-consumer/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - zeromq-consumer - zeromq-consumer - ZeroMQ consumer - - - - org.springframework.integration - spring-integration-zeromq - - - - diff --git a/functions/consumer/zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfiguration.java b/functions/consumer/zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfiguration.java deleted file mode 100644 index 035ba3f7..00000000 --- a/functions/consumer/zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfiguration.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.zeromq; - -import java.util.function.Consumer; -import java.util.function.Function; - -import org.zeromq.ZContext; -import org.zeromq.ZMQ; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.mapping.OutboundMessageMapper; -import org.springframework.integration.zeromq.outbound.ZeroMqMessageHandler; -import org.springframework.messaging.Message; - -/** - * - * @author Daniel Frey - * @since 3.1.0 - */ -@Configuration -@EnableConfigurationProperties(ZeroMqConsumerProperties.class) -public class ZeroMqConsumerConfiguration { - - @Bean - public ZContext zContext() { - return new ZContext(); - } - - @Bean - public ZeroMqMessageHandler zeromqMessageHandler(ZeroMqConsumerProperties properties, ZContext zContext, - @Autowired(required = false) Consumer socketConfigurer, - @Autowired(required = false) OutboundMessageMapper messageMapper) { - ZeroMqMessageHandler zeroMqMessageHandler = new ZeroMqMessageHandler(zContext, properties.getConnectUrl(), - properties.getSocketType()); - - if (properties.getTopic() != null) { - zeroMqMessageHandler.setTopicExpression(properties.getTopic()); - } - - if (socketConfigurer != null) { - zeroMqMessageHandler.setSocketConfigurer(socketConfigurer); - } - - if (messageMapper != null) { - zeroMqMessageHandler.setMessageMapper(messageMapper); - } - - return zeroMqMessageHandler; - } - - @Bean - public Function>, Mono> zeromqConsumer(ZeroMqMessageHandler zeromqMessageHandler) { - return input -> input.flatMap(zeromqMessageHandler::handleMessage) - .ignoreElements(); - } - -} diff --git a/functions/consumer/zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerProperties.java b/functions/consumer/zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerProperties.java deleted file mode 100644 index 330968f2..00000000 --- a/functions/consumer/zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerProperties.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.zeromq; - -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import org.zeromq.SocketType; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.validation.annotation.Validated; - -/** - * - * @author Daniel Frey - * @since 3.1.0 - */ -@ConfigurationProperties("zeromq.consumer") -@Validated -public class ZeroMqConsumerProperties { - - /** - * The Socket Type the connection should establish. - */ - private SocketType socketType = SocketType.PUB; - - /** - * Connection URL for connecting to the ZeroMQ Socket. - */ - private String connectUrl; - - /** - * A Topic SpEL expression to evaluate a topic before sending messages to subscribers. - */ - private Expression topic; - - @NotNull(message = "'socketType' is required") - public SocketType getSocketType() { - return socketType; - } - - /** - * @param socketType the {@link SocketType} to establish. - */ - public void setSocketType(SocketType socketType) { - this.socketType = socketType; - } - - @NotEmpty(message = "connectUrl is required like protocol://server:port") - public String getConnectUrl() { - return connectUrl; - } - - /** - * @param connectUrl The ZeroMQ socket to expose - */ - public void setConnectUrl(String connectUrl) { - this.connectUrl = connectUrl; - } - - public Expression getTopic() { - return topic; - } - - /** - * @param topic The 'topic' SpEL expression to set - */ - public void setTopic(Expression topic) { - this.topic = topic; - } - -} diff --git a/functions/consumer/zeromq-consumer/src/test/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfigurationTests.java b/functions/consumer/zeromq-consumer/src/test/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfigurationTests.java deleted file mode 100644 index 445c3986..00000000 --- a/functions/consumer/zeromq-consumer/src/test/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfigurationTests.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2016-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.consumer.zeromq; - -import java.time.Duration; -import java.util.function.Function; - -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.zeromq.SocketType; -import org.zeromq.ZContext; -import org.zeromq.ZMQ; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.awaitility.Awaitility.await; - -/** - * @author Daniel Frey - * @author Artem Bilan - * - * @since 3.1 - */ -@SpringBootTest(properties = "zeromq.consumer.topic='test-topic'") -@DirtiesContext -public class ZeroMqConsumerConfigurationTests { - - private static final ZContext CONTEXT = new ZContext(); - - private static ZMQ.Socket socket; - - @Autowired - Function>, Mono> subject; - - @BeforeAll - static void setup() { - - socket = CONTEXT.createSocket(SocketType.SUB); - socket.setReceiveTimeOut(10_000); - int bindPort = socket.bindToRandomPort("tcp://*"); - System.setProperty("zeromq.consumer.connectUrl", "tcp://localhost:" + bindPort); - } - - @AfterAll - static void tearDown() { - socket.close(); - CONTEXT.close(); - } - - @Test - void testMessageHandlerConfiguration() { - Message testMessage = MessageBuilder.withPayload("test").setHeader("topic", "test-topic").build(); - - await().atMost(Duration.ofSeconds(20)).pollDelay(Duration.ofMillis(100)) - .untilAsserted(() -> { - socket.subscribe("test-topic"); - subject.apply(Flux.just(testMessage)).subscribe(); - String topic = socket.recvStr(); - assertThat(topic).isEqualTo("test-topic"); - assertThat(socket.recvStr()).isEmpty(); - assertThat(socket.recvStr()).isEqualTo("test"); - }); - - } - - @SpringBootApplication - public static class ZeroMqConsumerTestApplication { - - } - -} diff --git a/functions/function-dependencies/pom.xml b/functions/function-dependencies/pom.xml deleted file mode 100644 index 30b0a52d..00000000 --- a/functions/function-dependencies/pom.xml +++ /dev/null @@ -1,310 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.stream.app - stream-applications-build - 5.0.0-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/functions/function/aggregator-function/README.adoc b/functions/function/aggregator-function/README.adoc deleted file mode 100644 index 753fd1f7..00000000 --- a/functions/function/aggregator-function/README.adoc +++ /dev/null @@ -1,27 +0,0 @@ -# Aggregator Function - -This module provides an aggregation function that can be reused and composed in other applications. - -## Beans for injection - -You can import the `AggregatorFunctionConfiguration` in a Spring Boot application and then inject the following bean. - -`aggregatorFunction` - -You can use `aggregatorFunction` as a qualifier when injecting. - -Once injected, you can use the `apply` method of the `Function` to invoke it and get the result. - -## Configuration Options - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/aggregator/AggregatorFunctionProperties.java[AggregatorFunctionProperties.java] - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `AggregatorFactoryBean` configuration used by the `aggregatorFunction` definition. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/aggregator/AggregatorFunctionApplicationTests.java[test suite] for examples of how this function is used. - -## Other usage - -See this link:../../../applications/processor/aggregator-processor/README.adoc[README] where this function is used to create a Spring Cloud Stream application. diff --git a/functions/function/aggregator-function/pom.xml b/functions/function/aggregator-function/pom.xml deleted file mode 100644 index 4a038671..00000000 --- a/functions/function/aggregator-function/pom.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/AggregatorFunctionConfiguration.java b/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/AggregatorFunctionConfiguration.java deleted file mode 100644 index d8907733..00000000 --- a/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/AggregatorFunctionConfiguration.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright 2020-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.aggregator; - -import java.util.function.Function; - -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.BeanFactoryAware; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.integration.aggregator.CorrelationStrategy; -import org.springframework.integration.aggregator.DefaultAggregatingMessageGroupProcessor; -import org.springframework.integration.aggregator.ExpressionEvaluatingCorrelationStrategy; -import org.springframework.integration.aggregator.ExpressionEvaluatingMessageGroupProcessor; -import org.springframework.integration.aggregator.ExpressionEvaluatingReleaseStrategy; -import org.springframework.integration.aggregator.MessageGroupProcessor; -import org.springframework.integration.aggregator.ReleaseStrategy; -import org.springframework.integration.annotation.ServiceActivator; -import org.springframework.integration.channel.FluxMessageChannel; -import org.springframework.integration.config.AggregatorFactoryBean; -import org.springframework.integration.store.MessageGroupStore; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageChannel; - -/** - * @author Artem Bilan - * @author Corneil du Plessis - */ -@AutoConfiguration -@EnableConfigurationProperties(AggregatorFunctionProperties.class) -public class AggregatorFunctionConfiguration { - - @Autowired - private AggregatorFunctionProperties properties; - - @Autowired - private BeanFactory beanFactory; - - @Bean - public Function>, Flux>> aggregatorFunction( - FluxMessageChannel inputChannel, - FluxMessageChannel outputChannel - ) { - return input -> Flux.from(outputChannel) - .doOnRequest((request) -> - inputChannel.subscribeTo( - input.map((inputMessage) -> - MessageBuilder.fromMessage(inputMessage) - .removeHeader("kafka_consumer") - .build()))); - } - - @Bean - public FluxMessageChannel inputChannel() { - return new FluxMessageChannel(); - } - - @Bean - public FluxMessageChannel outputChannel() { - return new FluxMessageChannel(); - } - - @Bean - @ServiceActivator(inputChannel = "inputChannel") - public AggregatorFactoryBean aggregator( - @Nullable CorrelationStrategy correlationStrategy, - @Nullable ReleaseStrategy releaseStrategy, - @Nullable MessageGroupProcessor messageGroupProcessor, - @Nullable MessageGroupStore messageStore, - @Qualifier("outputChannel") MessageChannel outputChannel, - @Nullable ComponentCustomizer aggregatorCustomizer) { - - AggregatorFactoryBean aggregator = new AggregatorFactoryBean(); - aggregator.setExpireGroupsUponCompletion(true); - aggregator.setSendPartialResultOnExpiry(true); - aggregator.setGroupTimeoutExpression(this.properties.getGroupTimeout()); - - if (correlationStrategy != null) { - aggregator.setCorrelationStrategy(correlationStrategy); - } - if (releaseStrategy != null) { - aggregator.setReleaseStrategy(releaseStrategy); - } - - MessageGroupProcessor groupProcessor = messageGroupProcessor; - - if (groupProcessor == null) { - groupProcessor = new DefaultAggregatingMessageGroupProcessor(); - ((BeanFactoryAware) groupProcessor).setBeanFactory(this.beanFactory); - } - aggregator.setProcessorBean(groupProcessor); - - if (messageStore != null) { - aggregator.setMessageStore(messageStore); - } - aggregator.setOutputChannel(outputChannel); - - if (aggregatorCustomizer != null) { - aggregatorCustomizer.customize(aggregator); - } - - return aggregator; - } - - @Bean - @ConditionalOnProperty(prefix = AggregatorFunctionProperties.PREFIX, name = "correlation") - @ConditionalOnMissingBean - public CorrelationStrategy correlationStrategy() { - return new ExpressionEvaluatingCorrelationStrategy(this.properties.getCorrelation()); - } - - @Bean - @ConditionalOnProperty(prefix = AggregatorFunctionProperties.PREFIX, name = "release") - @ConditionalOnMissingBean - public ReleaseStrategy releaseStrategy() { - return new ExpressionEvaluatingReleaseStrategy(this.properties.getRelease()); - } - - @Bean - @ConditionalOnProperty(prefix = AggregatorFunctionProperties.PREFIX, name = "aggregation") - @ConditionalOnMissingBean - public MessageGroupProcessor messageGroupProcessor() { - return new ExpressionEvaluatingMessageGroupProcessor(this.properties.getAggregation().getExpressionString()); - } - - - @Configuration - @ConditionalOnMissingBean(MessageGroupStore.class) - @Import({ - MessageStoreConfiguration.Mongo.class, - MessageStoreConfiguration.Redis.class, - MessageStoreConfiguration.Jdbc.class - }) - protected static class MessageStoreAutoConfiguration { - - } - -} diff --git a/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/AggregatorFunctionProperties.java b/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/AggregatorFunctionProperties.java deleted file mode 100644 index 0f41ff62..00000000 --- a/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/AggregatorFunctionProperties.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.aggregator; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; - -/** - * Configuration properties for the Aggregator function. - * - * @author Artem Bilan - */ -@ConfigurationProperties("aggregator") -public class AggregatorFunctionProperties { - - static final String PREFIX = "aggregator"; - - /** - * SpEL expression for correlation key. Default to correlationId header. - */ - private Expression correlation; - - /** - * SpEL expression for release strategy. Default is based on the sequenceSize header. - */ - private Expression release; - - /** - * SpEL expression for aggregation strategy. Default is collection of payloads. - */ - private Expression aggregation; - - /** - * SpEL expression for timeout to expiring uncompleted groups. - */ - private Expression groupTimeout; - - /** - * Message store type. - */ - private String messageStoreType = MessageStoreType.SIMPLE; - - /** - * Persistence message store entity: table prefix in RDBMS, collection name in MongoDb, etc. - */ - private String messageStoreEntity; - - public Expression getCorrelation() { - return this.correlation; - } - - public void setCorrelation(Expression correlation) { - this.correlation = correlation; - } - - public Expression getRelease() { - return this.release; - } - - public void setRelease(Expression release) { - this.release = release; - } - - public Expression getAggregation() { - return this.aggregation; - } - - public void setAggregation(Expression aggregation) { - this.aggregation = aggregation; - } - - public Expression getGroupTimeout() { - return this.groupTimeout; - } - - public void setGroupTimeout(Expression groupTimeout) { - this.groupTimeout = groupTimeout; - } - - public String getMessageStoreEntity() { - return this.messageStoreEntity; - } - - public void setMessageStoreEntity(String messageStoreEntity) { - this.messageStoreEntity = messageStoreEntity; - } - - public String getMessageStoreType() { - return this.messageStoreType; - } - - public void setMessageStoreType(String messageStoreType) { - this.messageStoreType = messageStoreType; - } - - static final class MessageStoreType { - - static final String SIMPLE = "simple"; - - static final String JDBC = "jdbc"; - - static final String MONGODB = "mongodb"; - - static final String REDIS = "redis"; - - } - -} diff --git a/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/ExcludeStoresAutoConfigurationEnvironmentPostProcessor.java b/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/ExcludeStoresAutoConfigurationEnvironmentPostProcessor.java deleted file mode 100644 index 60614059..00000000 --- a/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/ExcludeStoresAutoConfigurationEnvironmentPostProcessor.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.aggregator; - -import java.util.Properties; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration; -import org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration; -import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; -import org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; -import org.springframework.boot.env.EnvironmentPostProcessor; -import org.springframework.core.env.ConfigurableEnvironment; -import org.springframework.core.env.MutablePropertySources; -import org.springframework.core.env.PropertiesPropertySource; - -/** - * An {@link EnvironmentPostProcessor} to add {@code spring.autoconfigure.exclude} property - * since we can't use {@code application.properties} from the library perspective. - * - * @author Artem Bilan - * @author Corneil du Plessis - */ -public class ExcludeStoresAutoConfigurationEnvironmentPostProcessor implements EnvironmentPostProcessor { - - @Override - public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { - MutablePropertySources propertySources = environment.getPropertySources(); - Properties properties = new Properties(); - - properties.setProperty("spring.autoconfigure.exclude", - DataSourceAutoConfiguration.class.getName() + ", " + - DataSourceTransactionManagerAutoConfiguration.class.getName() + ", " + - MongoAutoConfiguration.class.getName() + ", " + - MongoDataAutoConfiguration.class.getName() + ", " + - MongoRepositoriesAutoConfiguration.class.getName() + ", " + - RedisAutoConfiguration.class.getName() + ", " + - RedisRepositoriesAutoConfiguration.class.getName()); - - propertySources.addLast(new PropertiesPropertySource("aggregator.exclude.stores.auto-configuration", properties)); - } - -} diff --git a/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/MessageStoreConfiguration.java b/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/MessageStoreConfiguration.java deleted file mode 100644 index c823a8c3..00000000 --- a/functions/function/aggregator-function/src/main/java/org/springframework/cloud/fn/aggregator/MessageStoreConfiguration.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.aggregator; - -import java.util.Arrays; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration; -import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.convert.MongoCustomConversions; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.integration.jdbc.store.JdbcMessageStore; -import org.springframework.integration.mongodb.store.ConfigurableMongoDbMessageStore; -import org.springframework.integration.mongodb.support.BinaryToMessageConverter; -import org.springframework.integration.mongodb.support.MessageToBinaryConverter; -import org.springframework.integration.redis.store.RedisMessageStore; -import org.springframework.integration.store.MessageGroupStore; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.util.StringUtils; - - -/** - * A helper class containing configuration classes for particular technologies - * to expose an appropriate {@link org.springframework.integration.store.MessageStore} bean - * via matched configuration properties. - * - * @author Artem Bilan - * @author Corneil du Plessis - */ -class MessageStoreConfiguration { - - @ConditionalOnClass(ConfigurableMongoDbMessageStore.class) - @ConditionalOnProperty(prefix = AggregatorFunctionProperties.PREFIX, - name = "message-store-type", - havingValue = AggregatorFunctionProperties.MessageStoreType.MONGODB) - @Import({ MongoAutoConfiguration.class, - MongoDataAutoConfiguration.class }) - static class Mongo { - - @Bean - public MessageGroupStore messageStore(MongoTemplate mongoTemplate, AggregatorFunctionProperties properties) { - if (StringUtils.hasText(properties.getMessageStoreEntity())) { - return new ConfigurableMongoDbMessageStore(mongoTemplate, properties.getMessageStoreEntity()); - } - else { - return new ConfigurableMongoDbMessageStore(mongoTemplate); - } - } - - @Bean - @Primary - public MongoCustomConversions mongoDbCustomConversions() { - return new MongoCustomConversions(Arrays.asList( - new MessageToBinaryConverter(), new BinaryToMessageConverter())); - } - - } - - @ConditionalOnClass(RedisMessageStore.class) - @ConditionalOnProperty(prefix = AggregatorFunctionProperties.PREFIX, - name = "message-store-type", - havingValue = AggregatorFunctionProperties.MessageStoreType.REDIS) - @Import(RedisAutoConfiguration.class) - static class Redis { - - @Bean - public MessageGroupStore messageStore(RedisTemplate redisTemplate) { - return new RedisMessageStore(redisTemplate.getConnectionFactory()); - } - - } - - @ConditionalOnClass(JdbcMessageStore.class) - @ConditionalOnProperty(prefix = AggregatorFunctionProperties.PREFIX, - name = "message-store-type", - havingValue = AggregatorFunctionProperties.MessageStoreType.JDBC) - @Import({ - DataSourceAutoConfiguration.class, - DataSourceTransactionManagerAutoConfiguration.class }) - static class Jdbc { - - @Bean - public MessageGroupStore messageStore(JdbcTemplate jdbcTemplate, AggregatorFunctionProperties properties) { - JdbcMessageStore messageStore = new JdbcMessageStore(jdbcTemplate); - if (StringUtils.hasText(properties.getMessageStoreEntity())) { - messageStore.setTablePrefix(properties.getMessageStoreEntity()); - } - return messageStore; - } - - } - -} diff --git a/functions/function/aggregator-function/src/main/resources/META-INF/spring.factories b/functions/function/aggregator-function/src/main/resources/META-INF/spring.factories deleted file mode 100644 index 7211caa4..00000000 --- a/functions/function/aggregator-function/src/main/resources/META-INF/spring.factories +++ /dev/null @@ -1,2 +0,0 @@ -org.springframework.boot.env.EnvironmentPostProcessor=\ - org.springframework.cloud.fn.aggregator.ExcludeStoresAutoConfigurationEnvironmentPostProcessor diff --git a/functions/function/aggregator-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/function/aggregator-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 8c697c53..00000000 --- a/functions/function/aggregator-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.aggregator.AggregatorFunctionConfiguration diff --git a/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/AbstractAggregatorFunctionTests.java b/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/AbstractAggregatorFunctionTests.java deleted file mode 100644 index 362d7114..00000000 --- a/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/AbstractAggregatorFunctionTests.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.aggregator; - -import java.util.function.Function; - -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.integration.aggregator.AggregatingMessageHandler; -import org.springframework.integration.store.MessageGroupStore; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; - -/** - * @author Artem Bilan - * @author Corneil du Plessis - */ -@SpringBootTest -@DirtiesContext -public abstract class AbstractAggregatorFunctionTests { - - @Autowired - protected Function>, Flux>> aggregatorFunction; - - @Autowired(required = false) - protected MessageGroupStore messageGroupStore; - - @Autowired - protected AggregatingMessageHandler aggregatingMessageHandler; - - @SpringBootApplication - public static class AggregatorFunctionTestApplication { - public static void main(String[] args) { - SpringApplication.run(AggregatorFunctionTestApplication.class, args); - } - } - -} diff --git a/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/CustomPropsAndMongoMessageStoreAggregatorTests.java b/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/CustomPropsAndMongoMessageStoreAggregatorTests.java deleted file mode 100644 index abbc4b66..00000000 --- a/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/CustomPropsAndMongoMessageStoreAggregatorTests.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.aggregator; - -import java.time.Duration; -import java.util.List; - -import org.junit.jupiter.api.Test; -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.integration.mongodb.store.ConfigurableMongoDbMessageStore; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Artem Bilan - */ -@TestPropertySource(properties = { - "aggregator.correlation=T(Thread).currentThread().id", - "aggregator.release=!messages.?[payload == 'bar'].empty", - "aggregator.aggregation=#this.?[payload == 'foo'].![payload]", - "aggregator.messageStoreType=mongodb", - "aggregator.message-store-entity=aggregatorTest" -}) -@AutoConfigureDataMongo -public class CustomPropsAndMongoMessageStoreAggregatorTests extends AbstractAggregatorFunctionTests - implements MongoDbTestContainerSupport { - - @DynamicPropertySource - static void mongoDbProperties(DynamicPropertyRegistry registry) { - registry.add("spring.data.mongodb.port", MONGO_CONTAINER::getFirstMappedPort); - registry.add("spring.data.mongodb.database", () -> "test"); - } - - @Test - public void test() { - Flux> input = - Flux.just("foo", "bar") - .map(GenericMessage::new); - - Flux> output = this.aggregatorFunction.apply(input); - - output.as(StepVerifier::create) - .assertNext((message) -> - assertThat(message) - .extracting(Message::getPayload) - .isInstanceOf(List.class) - .asList() - .hasSize(1) - .element(0).isEqualTo("foo")) - .thenCancel() - .verify(Duration.ofSeconds(10)); - - assertThat(this.messageGroupStore).isInstanceOf(ConfigurableMongoDbMessageStore.class); - assertThat(TestUtils.getPropertyValue(this.messageGroupStore, "collectionName")).isEqualTo("aggregatorTest"); - assertThat(this.aggregatingMessageHandler.getMessageStore()).isSameAs(this.messageGroupStore); - } - -} diff --git a/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/DefaultAggregatorTests.java b/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/DefaultAggregatorTests.java deleted file mode 100644 index 06d36570..00000000 --- a/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/DefaultAggregatorTests.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.aggregator; - -import java.time.Duration; - -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.integration.IntegrationMessageHeaderAccessor; -import org.springframework.integration.store.SimpleMessageStore; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Artem Bilan - * @author Corneil du Plessis - */ -@Disabled("Fails on CI sporadically") -@TestPropertySource(properties = "aggregator.message-store-type=simple") -public class DefaultAggregatorTests extends AbstractAggregatorFunctionTests { - private static final Logger logger = LoggerFactory.getLogger(DefaultAggregatorTests.class); - - @Test - public void test() { - Flux> input = - Flux.just(MessageBuilder.withPayload("2") - .setHeader(IntegrationMessageHeaderAccessor.CORRELATION_ID, "my_correlation") - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER, 2) - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_SIZE, 2) - .build(), - MessageBuilder.withPayload("1") - .setHeader(IntegrationMessageHeaderAccessor.CORRELATION_ID, "my_correlation") - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER, 1) - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_SIZE, 2) - .build()); - - Flux> output = this.aggregatorFunction.apply(input.log("DefaultAggregatorTests:input")); - output.log("DefaultAggregatorTests:output") - .as(StepVerifier::create) - .assertNext((message) -> { - assertThat(message) - .extracting(Message::getPayload) - .asList() - .hasSize(2) - .contains("1", "2"); - }) - .thenCancel() - .verify(Duration.ofSeconds(30)); - - assertThat(this.messageGroupStore).isNull(); - assertThat(this.aggregatingMessageHandler.getMessageStore()).isInstanceOf(SimpleMessageStore.class); - - } -} diff --git a/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/JdbcMessageStoreAggregatorTests.java b/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/JdbcMessageStoreAggregatorTests.java deleted file mode 100644 index d009270f..00000000 --- a/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/JdbcMessageStoreAggregatorTests.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.aggregator; - -import java.time.Duration; -import java.util.List; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.integration.IntegrationMessageHeaderAccessor; -import org.springframework.integration.jdbc.store.JdbcMessageStore; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Artem Bilan - * @author Corneil du Plessis - */ -@TestPropertySource(properties = "aggregator.message-store-type=jdbc") -public class JdbcMessageStoreAggregatorTests extends AbstractAggregatorFunctionTests { - - @Test - public void test() { - Flux> input = - Flux.just(MessageBuilder.withPayload("2") - .setHeader(IntegrationMessageHeaderAccessor.CORRELATION_ID, "my_correlation") - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER, 2) - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_SIZE, 2) - .build(), - MessageBuilder.withPayload("1") - .setHeader(IntegrationMessageHeaderAccessor.CORRELATION_ID, "my_correlation") - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER, 1) - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_SIZE, 2) - .build()); - - Flux> output = this.aggregatorFunction.apply(input); - - output.as(StepVerifier::create) - .assertNext((message) -> - assertThat(message) - .extracting(Message::getPayload) - .isInstanceOf(List.class) - .asList() - .hasSize(2) - .contains("1", "2")) - .thenCancel() - .verify(Duration.ofSeconds(10)); - - assertThat(this.messageGroupStore).isInstanceOf(JdbcMessageStore.class); - - assertThat(this.aggregatingMessageHandler.getMessageStore()).isSameAs(this.messageGroupStore); - } - -} diff --git a/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/RedisMessageStoreAggregatorTests.java b/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/RedisMessageStoreAggregatorTests.java deleted file mode 100644 index feb39c26..00000000 --- a/functions/function/aggregator-function/src/test/java/org/springframework/cloud/fn/aggregator/RedisMessageStoreAggregatorTests.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2020-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.aggregator; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.time.Duration; -import java.util.List; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.aop.framework.ProxyFactory; -import org.springframework.cloud.fn.consumer.redis.RedisTestContainerSupport; -import org.springframework.integration.IntegrationMessageHeaderAccessor; -import org.springframework.integration.redis.store.RedisMessageStore; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Artem Bilan - */ -@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); - } - - @Test - public void test() { - InputStream fakeNonSerializableKafkaConsumer = new ByteArrayInputStream(new byte[0]); - - Flux> input = - Flux.just(MessageBuilder.withPayload("2") - .setHeader(IntegrationMessageHeaderAccessor.CORRELATION_ID, "my_correlation") - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER, 2) - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_SIZE, 2) - .setHeader("kafka_consumer", new ProxyFactory(fakeNonSerializableKafkaConsumer).getProxy()) - .build(), - MessageBuilder.withPayload("1") - .setHeader(IntegrationMessageHeaderAccessor.CORRELATION_ID, "my_correlation") - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER, 1) - .setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_SIZE, 2) - .build()); - - Flux> output = this.aggregatorFunction.apply(input); - - output.as(StepVerifier::create) - .assertNext((message) -> - assertThat(message) - .extracting(Message::getPayload) - .isInstanceOf(List.class) - .asList() - .hasSize(2) - .contains("1", "2")) - .thenCancel() - .verify(Duration.ofSeconds(10)); - - assertThat(this.messageGroupStore).isInstanceOf(RedisMessageStore.class); - - assertThat(this.aggregatingMessageHandler.getMessageStore()).isSameAs(this.messageGroupStore); - } - -} diff --git a/functions/function/filter-function/README.adoc b/functions/function/filter-function/README.adoc deleted file mode 100644 index 2c9917cf..00000000 --- a/functions/function/filter-function/README.adoc +++ /dev/null @@ -1,27 +0,0 @@ -# Filter Function - -This module provides a filter function that can be reused and composed in other applications. - -## Beans for injection - -You can import the `FilterFunctionConfiguration` in a Spring Boot application and then inject the following bean. - -`filterFunction` - -You can use `filterFunction` as a qualifier when injecting. - -Once injected, you can use the `apply` method of the `Function` to invoke it and get the result. - -## Configuration Options - -All configuration properties are prefixed with `filter.function`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/filter/FilterFunctionProperties.java[FilterFunctionProperties.java] - -## Examples - -See this link:src/test/java/org/springframework/cloud/fn/filter/FilterFunctionApplicationTests.java[test suite] for examples of how this function is used. - -## Other usage - -See this link:../../../applications/processor/filter-processor/README.adoc[README] where this function is used to create a Spring Cloud Stream application. \ No newline at end of file diff --git a/functions/function/filter-function/pom.xml b/functions/function/filter-function/pom.xml deleted file mode 100644 index ec8cc5d4..00000000 --- a/functions/function/filter-function/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/function/filter-function/src/main/java/org/springframework/cloud/fn/filter/FilterFunctionConfiguration.java b/functions/function/filter-function/src/main/java/org/springframework/cloud/fn/filter/FilterFunctionConfiguration.java deleted file mode 100644 index cef6f671..00000000 --- a/functions/function/filter-function/src/main/java/org/springframework/cloud/fn/filter/FilterFunctionConfiguration.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.filter; - -import java.util.function.Function; - -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.integration.transformer.ExpressionEvaluatingTransformer; -import org.springframework.messaging.Message; - -/** - * @author Artem Bilan - * @author David Turanski - */ -@AutoConfiguration -@EnableConfigurationProperties(FilterFunctionProperties.class) -public class FilterFunctionConfiguration { - - @Bean - public Function, Message> filterFunction( - ExpressionEvaluatingTransformer filterExpressionEvaluatingTransformer) { - - return message -> { - if ((Boolean) filterExpressionEvaluatingTransformer.transform(message).getPayload()) { - return message; - } - else { - return null; - } - }; - } - - @Bean - public ExpressionEvaluatingTransformer filterExpressionEvaluatingTransformer( - FilterFunctionProperties filterFunctionProperties) { - - return new ExpressionEvaluatingTransformer(filterFunctionProperties.getExpression()); - } - -} diff --git a/functions/function/filter-function/src/main/java/org/springframework/cloud/fn/filter/FilterFunctionProperties.java b/functions/function/filter-function/src/main/java/org/springframework/cloud/fn/filter/FilterFunctionProperties.java deleted file mode 100644 index ab5798d1..00000000 --- a/functions/function/filter-function/src/main/java/org/springframework/cloud/fn/filter/FilterFunctionProperties.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.filter; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.integration.expression.ValueExpression; - -/** - * Configuration properties for the SpEL function. - * - * @author Gary Russell - * @author Artem Bilan - */ -@ConfigurationProperties("filter.function") -public class FilterFunctionProperties { - - /** - * Boolean SpEL expression to apply against request message to filter. - */ - private Expression expression = new ValueExpression<>(true); - - public Expression getExpression() { - return this.expression; - } - - public void setExpression(Expression expression) { - this.expression = expression; - } - -} diff --git a/functions/function/filter-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/function/filter-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 8973856f..00000000 --- a/functions/function/filter-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.filter.FilterFunctionConfiguration diff --git a/functions/function/filter-function/src/test/java/org/springframework/cloud/fn/filter/FilterFunctionApplicationTests.java b/functions/function/filter-function/src/test/java/org/springframework/cloud/fn/filter/FilterFunctionApplicationTests.java deleted file mode 100644 index 6cf98aa6..00000000 --- a/functions/function/filter-function/src/test/java/org/springframework/cloud/fn/filter/FilterFunctionApplicationTests.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.filter; - -import java.util.List; -import java.util.function.Function; -import java.util.stream.Collectors; -import java.util.stream.Stream; - - -import org.junit.jupiter.api.Test; - - - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Artem Bilan - * @author David Turanski - */ -@SpringBootTest(properties = "filter.function.expression=payload.length() > 5") -@DirtiesContext -public class FilterFunctionApplicationTests { - - @Autowired - @Qualifier("filterFunction") - Function, Message> filter; - - @Test - public void testFilter() { - Stream> messages = List.of("hello", "hello world") - .stream() - .map(GenericMessage::new); - List> result = messages.filter(message -> this.filter.apply(message) != null).collect(Collectors.toList()); - assertThat(result.size()).isEqualTo(1); - assertThat(result.get(0).getPayload()).isNotNull(); - assertThat(result.get(0).getPayload()).isEqualTo("hello world"); - } - - @SpringBootApplication - static class FilterFunctionTestApplication { - - } - -} diff --git a/functions/function/header-enricher-function/README.adoc b/functions/function/header-enricher-function/README.adoc deleted file mode 100644 index 29f4ff6d..00000000 --- a/functions/function/header-enricher-function/README.adoc +++ /dev/null @@ -1,25 +0,0 @@ -# Header Enricher Function - -This module provides a header enricher function that can be reused and composed in other applications. - -## Beans for injection - -You can import the `HeaderEnricherFunctionConfiguration` in a Spring Boot application and then inject the following bean. - -`headerEnricherFunction` - -You can use `headerEnricherFunction` as a qualifier when injecting. - -Once injected, you can use the `apply` method of the `Function` to invoke it and get the result. - -## Configuration Options - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionProperties.java[HeaderEnricherFunctionProperties.java] - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionApplicationTests.java[test suite] for examples of how this function is used. - -## Other usage - -See this link:../../../applications/processor/header-enricher-processor/README.adoc[README] where this function is used to create a Spring Cloud Stream application. \ No newline at end of file diff --git a/functions/function/header-enricher-function/pom.xml b/functions/function/header-enricher-function/pom.xml deleted file mode 100644 index 429c2185..00000000 --- a/functions/function/header-enricher-function/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/function/header-enricher-function/src/main/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionConfiguration.java b/functions/function/header-enricher-function/src/main/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionConfiguration.java deleted file mode 100644 index 1f05aaf5..00000000 --- a/functions/function/header-enricher-function/src/main/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionConfiguration.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.header.enricher; - -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; -import java.util.function.Function; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.integration.transformer.HeaderEnricher; -import org.springframework.integration.transformer.support.ExpressionEvaluatingHeaderValueMessageProcessor; -import org.springframework.messaging.Message; - -/** - * @author Gary Russell - * @author Christian Tzolov - * @author Soby Chacko - * @author Artem Bilan - */ -@AutoConfiguration -@EnableConfigurationProperties(HeaderEnricherFunctionProperties.class) -@ConditionalOnProperty(prefix = "header.enricher", value = "headers") -public class HeaderEnricherFunctionConfiguration { - - @Autowired - private HeaderEnricherFunctionProperties properties; - - @Bean - public Function, Message> headerEnricherFunction(HeaderEnricher headerEnricher) { - return headerEnricher::transform; - } - - @Bean - public HeaderEnricher headerEnricher(BeanFactory beanFactory) { - Map> headersToAdd = new HashMap<>(); - Properties props = this.properties.getHeaders(); - Enumeration enumeration = props.propertyNames(); - while (enumeration.hasMoreElements()) { - String propertyName = (String) enumeration.nextElement(); - ExpressionEvaluatingHeaderValueMessageProcessor headerValueMessageProcessor = - new ExpressionEvaluatingHeaderValueMessageProcessor<>(props.getProperty(propertyName), null); - headerValueMessageProcessor.setBeanFactory(beanFactory); - headersToAdd.put(propertyName, headerValueMessageProcessor); - } - HeaderEnricher headerEnricher = new HeaderEnricher(headersToAdd); - headerEnricher.setDefaultOverwrite(this.properties.isOverwrite()); - return headerEnricher; - } - -} diff --git a/functions/function/header-enricher-function/src/main/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionProperties.java b/functions/function/header-enricher-function/src/main/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionProperties.java deleted file mode 100644 index 7ca3d229..00000000 --- a/functions/function/header-enricher-function/src/main/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionProperties.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.header.enricher; - -import java.util.Properties; - -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * Configuration properties for the Header Enricher Processor application. - * - * @author Gary Russell - * @author Artem Bilan - * @author Soby Chacko - */ -@ConfigurationProperties("header.enricher") -@Validated -public class HeaderEnricherFunctionProperties { - - /** - * \n separated properties representing headers in which values are SpEL expressions, e.g - * foo='bar' \n baz=payload.baz. - */ - private Properties headers; - - /** - * set to true to overwrite any existing message headers. - */ - private boolean overwrite = false; - - @NotNull - public Properties getHeaders() { - return this.headers; - } - - public void setHeaders(Properties headers) { - this.headers = headers; - } - - public boolean isOverwrite() { - return this.overwrite; - } - - public void setOverwrite(boolean overwrite) { - this.overwrite = overwrite; - } - -} diff --git a/functions/function/header-enricher-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/function/header-enricher-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 9e5532de..00000000 --- a/functions/function/header-enricher-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.header.enricher.HeaderEnricherFunctionConfiguration diff --git a/functions/function/header-enricher-function/src/test/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionApplicationTests.java b/functions/function/header-enricher-function/src/test/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionApplicationTests.java deleted file mode 100644 index bf81d8ec..00000000 --- a/functions/function/header-enricher-function/src/test/java/org/springframework/cloud/fn/header/enricher/HeaderEnricherFunctionApplicationTests.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.header.enricher; - -import java.util.function.Function; - -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Bean; -import org.springframework.integration.test.matcher.HeaderMatcher; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.annotation.DirtiesContext; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; - -/** - * - * @author Gary Russell - * @author Soby Chacko - */ -@SpringBootTest(properties = { - "header.enricher.headers=foo='bar' \\n baz='fiz' \\n buz=payload \\n jaz=@value", - "header.enricher.overwrite = true" }) -@DirtiesContext -public class HeaderEnricherFunctionApplicationTests { - - @Autowired - Function, Message> headerEnricherFunction; - - @Test - public void testDefault() { - final Message message = MessageBuilder.withPayload("hello") - .setHeader("baz", "qux").build(); - final Message enriched = headerEnricherFunction.apply(message); - - assertThat(enriched, HeaderMatcher.hasHeader("foo", equalTo("bar"))); - assertThat(enriched, HeaderMatcher.hasHeader("baz", equalTo("fiz"))); - assertThat(enriched, HeaderMatcher.hasHeader("buz", equalTo("hello"))); - assertThat(enriched, HeaderMatcher.hasHeader("jaz", equalTo("beanValue"))); - } - - @SpringBootApplication - static class HeaderEnricherFunctionTestApplication { - - @Bean - public String value() { - return "beanValue"; - } - - } - -} diff --git a/functions/function/header-filter-function/README.adoc b/functions/function/header-filter-function/README.adoc deleted file mode 100644 index b9c9f93e..00000000 --- a/functions/function/header-filter-function/README.adoc +++ /dev/null @@ -1,25 +0,0 @@ -= Header Enricher Function - -This module provides a header enricher function that can be reused and composed in other applications. - -== Beans for injection - -You can import the `HeaderEnricherFunctionConfiguration` in a Spring Boot application and then inject the following bean. - -`headerFilterFunction` - -You can use `headerFilterFunction` as a qualifier when injecting. - -Once injected, you can use the `apply` method of the `Function` to invoke it and get the result. - -== Configuration Options - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionProperties.java[HeaderFilterFunctionProperties.java] - -== Tests - -See this link:src/test/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionApplicationTests.java[test suite] for examples of how this function is used. - -== Other usage - -See this link:../../../applications/processor/header-filter-processor/README.adoc[README] where this function is used to create a Spring Cloud Stream application. \ No newline at end of file diff --git a/functions/function/header-filter-function/pom.xml b/functions/function/header-filter-function/pom.xml deleted file mode 100644 index ead2c9c4..00000000 --- a/functions/function/header-filter-function/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/function/header-filter-function/src/main/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionConfiguration.java b/functions/function/header-filter-function/src/main/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionConfiguration.java deleted file mode 100644 index 2a5fdd2f..00000000 --- a/functions/function/header-filter-function/src/main/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionConfiguration.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.header.filter; - -import java.util.HashSet; -import java.util.function.Function; - -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.integration.IntegrationMessageHeaderAccessor; -import org.springframework.integration.transformer.HeaderFilter; -import org.springframework.messaging.Message; -import org.springframework.util.StringUtils; - -/** - * Configure a function using {@link HeaderFilter}. - * - * @author Corneil du Plessis - */ -@AutoConfiguration -@EnableConfigurationProperties(HeaderFilterFunctionProperties.class) -@ConditionalOnExpression("'${header.filter.remove}'!='' or '${header.filter.delete-all}' != ''") -public class HeaderFilterFunctionConfiguration { - private final HeaderFilterFunctionProperties properties; - public HeaderFilterFunctionConfiguration(HeaderFilterFunctionProperties properties) { - this.properties = properties; - } - - @Bean - public Function, Message> headerFilterFunction() { - if (properties.isDeleteAll()) { - return (message) -> { - var accessor = new IntegrationMessageHeaderAccessor(message); - var headers = new HashSet<>(message.getHeaders().keySet()); - headers.removeIf(accessor::isReadOnly); - HeaderFilter filter = new HeaderFilter(headers.toArray(new String[0])); - return filter.transform(message); - }; - } - else { - return headerFilter()::transform; - } - } - - @Bean - public HeaderFilter headerFilter() { - if (properties.getRemove() != null) { - String[] remove = StringUtils.tokenizeToStringArray(properties.getRemove(), ", ", true, true); - HeaderFilter filter = new HeaderFilter(remove); - if (properties.getRemove().contains("*")) { - filter.setPatternMatch(true); - } - return filter; - } - else { - return new HeaderFilter(""); - } - } - -} diff --git a/functions/function/header-filter-function/src/main/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionProperties.java b/functions/function/header-filter-function/src/main/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionProperties.java deleted file mode 100644 index e0a873ec..00000000 --- a/functions/function/header-filter-function/src/main/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionProperties.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.header.filter; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * Properties for configuration of header-filter-function. - * @author Corneil du Plessis - */ -@ConfigurationProperties("header.filter") -public class HeaderFilterFunctionProperties { - /** - * Indicates the need to remove all headers. - */ - private boolean deleteAll = false; - - /** - * Remove all headers named. A comma, space separated list of header names. - * The names may contain patterns. - */ - private String remove; - - public boolean isDeleteAll() { - return deleteAll; - } - - public void setDeleteAll(boolean deleteAll) { - this.deleteAll = deleteAll; - } - - public String getRemove() { - return remove; - } - - public void setRemove(String remove) { - this.remove = remove; - } -} diff --git a/functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionApplicationDeleteAllTests.java b/functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionApplicationDeleteAllTests.java deleted file mode 100644 index df7debf1..00000000 --- a/functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionApplicationDeleteAllTests.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.header.filter; - -import java.util.Set; -import java.util.function.Function; - -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; - -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest(classes = { - HeaderFilterFunctionApplicationDeleteAllTests.HeaderFilterFunctionTestApplication.class, - HeaderFilterFunctionConfiguration.class -}, - properties = {"header.filter.delete-all=true"} -) -public class HeaderFilterFunctionApplicationDeleteAllTests { - @Autowired - protected Function, Message> headerFilter; - - @Test - public void testRemoveLeavesIdTimestampAll() { - // given - final Message message = MessageBuilder.withPayload("hello") - .setHeader("foo", "bar") - .setHeader("bar", "foo") - .build(); - Message result = headerFilter.apply(message); - var headers = result.getHeaders().keySet(); - assertThat(headers).isEqualTo(Set.of("id", "timestamp")); - } - - @SpringBootApplication - static class HeaderFilterFunctionTestApplication { - public static void main(String[] args) throws Exception { - SpringApplication.main(args); - } - } - -} diff --git a/functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionApplicationTests.java b/functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionApplicationTests.java deleted file mode 100644 index 6c7ca30f..00000000 --- a/functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderFilterFunctionApplicationTests.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.header.filter; - -import java.util.Set; -import java.util.function.Function; - -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; - -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest(classes = { - HeaderFilterFunctionApplicationTests.HeaderFilterFunctionTestApplication.class, - HeaderFilterFunctionConfiguration.class -}, - properties = {"header.filter.remove=foo,bar,pf-*"} -) -public class HeaderFilterFunctionApplicationTests { - @Autowired - protected Function, Message> headerFilter; - - @Test - public void testRemoveAll() { - // given - final Message message = MessageBuilder.withPayload("hello") - .setHeader("foo", "bar") - .setHeader("bar", "foo") - .build(); - Message result = headerFilter.apply(message); - var headers = HeaderUtils.getNonReadOnlyHeaders(result); - assertThat(headers).isEmpty(); - } - - @Test - public void testRemoveSome() { - // given - final Message message = MessageBuilder.withPayload("hello") - .setHeader("foo", "bar") - .setHeader("foo-bar", "bar") - .setHeader("bar", "foo") - .build(); - Message result = headerFilter.apply(message); - var headers = HeaderUtils.getNonReadOnlyHeaders(result); - assertThat(headers).isEqualTo(Set.of("foo-bar")); - } - - @Test - public void testRemoveSomeWithWildcard() { - // given - final Message message = MessageBuilder.withPayload("hello") - .setHeader("foo", "bar") - .setHeader("pf-foo", "bar") - .setHeader("pf-bar", "bar") - .setHeader("pfBar", "bar") - .setHeader("bar", "foo") - .build(); - Message result = headerFilter.apply(message); - var headers = HeaderUtils.getNonReadOnlyHeaders(result); - assertThat(headers).isEqualTo(Set.of("pfBar")); - } - - @Test - public void testRemoveLeavesIdTimestampAll() { - // given - final Message message = MessageBuilder.withPayload("hello") - .setHeader("foo", "bar") - .setHeader("bar", "foo") - .build(); - Message result = headerFilter.apply(message); - - assertThat(result.getHeaders().keySet()).isEqualTo(Set.of("id", "timestamp")); - } - - @SpringBootApplication - static class HeaderFilterFunctionTestApplication { - public static void main(String[] main) { - - } - } - -} diff --git a/functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderUtils.java b/functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderUtils.java deleted file mode 100644 index d5ac05ce..00000000 --- a/functions/function/header-filter-function/src/test/java/org/springframework/cloud/fn/header/filter/HeaderUtils.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.header.filter; - -import java.util.HashSet; -import java.util.Set; - -import org.jetbrains.annotations.NotNull; - -import org.springframework.integration.IntegrationMessageHeaderAccessor; -import org.springframework.messaging.Message; - -final public class HeaderUtils { - private HeaderUtils() { - } - - @NotNull - public static Set getNonReadOnlyHeaders(Message message) { - var headers = new HashSet<>(message.getHeaders().keySet()); - var accessor = new IntegrationMessageHeaderAccessor(message); - headers.removeIf(accessor::isReadOnly); - return headers; - } -} diff --git a/functions/function/header-filter-function/src/test/resources/test.properties b/functions/function/header-filter-function/src/test/resources/test.properties deleted file mode 100644 index 4f937e4c..00000000 --- a/functions/function/header-filter-function/src/test/resources/test.properties +++ /dev/null @@ -1 +0,0 @@ -logging.level.root=debug diff --git a/functions/function/http-request-function/README.adoc b/functions/function/http-request-function/README.adoc deleted file mode 100644 index e3f4bf01..00000000 --- a/functions/function/http-request-function/README.adoc +++ /dev/null @@ -1,32 +0,0 @@ -# HTTP Request Function - -This module provides an HTTP request function that can be reused and composed in other applications. -The `Function` uses the reactive `WebClient` from `Spring WebFlux` and is implemented as a `java.util.function.Function`. -This function gives you a reactive stream of `ResponseEntity` given a stream of request messages as the function a signature of `Function,ResponseEntity>`. -Users have to subscribe to the returned `Flux` to receive the data. - -## Beans for injection - -You can import the `HttpRequestFunction` configuration in a Spring Boot application and then inject the following bean. - -`httpRequestFunction` - -You may inject this as `HttpRequestFunction`. - -You can use `httpRequestFunction` as a qualifier when injecting. - -Once injected, you can use the `apply` method of the `Function` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `http.request`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionProperties.java[HttpRequestFunctionProperties.java] - -## Examples - -See this link:src/test/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionApplicationTests.java[test suite] for examples of how this function is used. - -## Other usage - -See this link:../../../applications/processor/http-request-processor/README.adoc[README] where this function is used to create a Spring Cloud Stream application to process HTTP requests. \ No newline at end of file diff --git a/functions/function/http-request-function/pom.xml b/functions/function/http-request-function/pom.xml deleted file mode 100644 index b1ad7570..00000000 --- a/functions/function/http-request-function/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionConfiguration.java b/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionConfiguration.java deleted file mode 100644 index 1b5e6c86..00000000 --- a/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionConfiguration.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright 2018-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.http.request; - -import java.time.Duration; -import java.util.Map; -import java.util.function.Function; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.convert.converter.Converter; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; -import org.springframework.integration.config.IntegrationConverter; -import org.springframework.messaging.Message; -import org.springframework.web.reactive.function.client.WebClient; -import org.springframework.web.util.DefaultUriBuilderFactory; -import org.springframework.web.util.UriBuilderFactory; - - -/** - * Configuration for a {@link Function} that makes HTTP requests to a resource and for - * each request, returns a {@link ResponseEntity}. - * - * @author David Turanski - * @author Sunny Hemdev - * @author Corneil du Plessis - **/ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(HttpRequestFunctionProperties.class) -public class HttpRequestFunctionConfiguration { - - @Bean - public HttpRequestFunction httpRequestFunction(WebClient.Builder webClientBuilder, HttpRequestFunctionProperties properties) { - return new HttpRequestFunction(webClientBuilder.build(), properties); - } - - @Bean - @IntegrationConverter - public Converter httpMethodConverter() { - return new HttpMethodConverter(); - } - - /** - * Function that accepts a {@code Flux>} containing body and headers and - * returns a {@code Flux>}. - */ - public static class HttpRequestFunction implements Function, Object> { - - private final WebClient webClient; - - private final UriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory(); - - private final HttpRequestFunctionProperties properties; - - public HttpRequestFunction(WebClient webClient, HttpRequestFunctionProperties properties) { - this.webClient = webClient; - this.properties = properties; - } - - @Override - public Object apply(Message message) { - return this.webClient - .method(resolveHttpMethod(message)) - .uri(uriBuilderFactory.uriString(resolveUrl(message)).build()) - .bodyValue(resolveBody(message)) - .headers(httpHeaders -> httpHeaders.addAll(resolveHeaders(message))) - .retrieve() - .toEntity(properties.getExpectedResponseType()) - .map(responseEntity -> properties.getReplyExpression().getValue(responseEntity)) - .timeout(Duration.ofMillis(properties.getTimeout())) - .block(); - } - - private String resolveUrl(Message message) { - return properties.getUrlExpression().getValue(message, String.class); - } - - private HttpMethod resolveHttpMethod(Message message) { - return properties.getHttpMethodExpression().getValue(message, HttpMethod.class); - } - - private Object resolveBody(Message message) { - return properties.getBodyExpression() != null ? properties.getBodyExpression().getValue(message) - : message.getPayload(); - } - - private HttpHeaders resolveHeaders(Message message) { - HttpHeaders headers = new HttpHeaders(); - if (properties.getHeadersExpression() != null) { - Map headersMap = properties.getHeadersExpression().getValue(message, Map.class); - for (Map.Entry header : headersMap.entrySet()) { - if (header.getKey() != null && header.getValue() != null) { - headers.add(header.getKey().toString(), - header.getValue().toString()); - } - } - } - return headers; - } - - } - - public static class HttpMethodConverter implements Converter { - - @Override - public HttpMethod convert(String source) { - return HttpMethod.valueOf(source); - } - } -} diff --git a/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionProperties.java b/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionProperties.java deleted file mode 100644 index 50608ede..00000000 --- a/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionProperties.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright 2015-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.http.request; - -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; -import org.springframework.integration.expression.FunctionExpression; -import org.springframework.integration.expression.ValueExpression; -import org.springframework.validation.annotation.Validated; - -/** - * Configuration properties for the Http Client Processor module. - * - * @author Waldemar Hummer - * @author Mark Fisher - * @author Christian Tzolov - * @author Artem Bilan - * @author David Turanski - * @author Sunny Hemdev - */ -@Validated -@ConfigurationProperties("http.request") -public class HttpRequestFunctionProperties { - - private static final Class DEFAULT_RESPONSE_TYPE = String.class; - - /** - * The type used to interpret the response. - */ - private Class expectedResponseType = DEFAULT_RESPONSE_TYPE; - - /** - * Request timeout in milliseconds. - */ - private long timeout = 30_000; - - /** - * A SpEL expression against incoming message to determine the URL to use. - */ - private Expression urlExpression; - - /** - * A SpEL expression to derive the request method from the incoming message. - */ - private Expression httpMethodExpression = new ValueExpression(HttpMethod.GET); - - /** - * A SpEL expression to derive the request body from the incoming message. - */ - private Expression bodyExpression; - - /** - * A SpEL expression used to derive the http headers map to use. - */ - private Expression headersExpression; - - /** - * A SpEL expression used to compute the final result, applied against the whole http - * {@link org.springframework.http.ResponseEntity}. - */ - private Expression replyExpression = new FunctionExpression(ResponseEntity::getBody); - - @NotNull - public Expression getUrlExpression() { - return urlExpression; - } - - public void setUrlExpression(Expression urlExpression) { - this.urlExpression = urlExpression; - } - - public Expression getHttpMethodExpression() { - return httpMethodExpression; - } - - public void setHttpMethodExpression(Expression httpMethodExpression) { - this.httpMethodExpression = httpMethodExpression; - } - - @NotNull - public Class getExpectedResponseType() { - return expectedResponseType; - } - - public void setExpectedResponseType(Class expectedResponseType) { - this.expectedResponseType = expectedResponseType; - } - - public long getTimeout() { - return this.timeout; - } - - public void setTimeout(long timeout) { - this.timeout = timeout; - } - - public Expression getBodyExpression() { - return bodyExpression; - } - - public void setBodyExpression(Expression bodyExpression) { - this.bodyExpression = bodyExpression; - } - - public Expression getHeadersExpression() { - return headersExpression; - } - - public void setHeadersExpression(Expression headersExpression) { - this.headersExpression = headersExpression; - } - - @NotNull - public Expression getReplyExpression() { - return replyExpression; - } - - public void setReplyExpression(Expression replyExpression) { - this.replyExpression = replyExpression; - } - -} diff --git a/functions/function/http-request-function/src/test/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionTestApplicationTests.java b/functions/function/http-request-function/src/test/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionTestApplicationTests.java deleted file mode 100644 index 1747d217..00000000 --- a/functions/function/http-request-function/src/test/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionTestApplicationTests.java +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.http.request; - -import java.io.IOException; -import java.util.Collections; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -import okhttp3.mockwebserver.Dispatcher; -import okhttp3.mockwebserver.MockResponse; -import okhttp3.mockwebserver.MockWebServer; -import okhttp3.mockwebserver.RecordedRequest; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.cloud.fn.http.request.HttpRequestFunctionConfiguration.HttpRequestFunction; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.messaging.support.MessageBuilder; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; - -public class HttpRequestFunctionTestApplicationTests { - private MockWebServer server = new MockWebServer(); - - private ApplicationContextRunner runner; - - @BeforeEach - void setup() { - this.runner = new ApplicationContextRunner() - .withUserConfiguration(HttpRequestFunctionTestApplication.class) - .withPropertyValues( - "http.request.reply-expression=#root", - "http.request.url-expression='" + url() + "'"); - } - - @Test - void shouldReturnString() { - - server.enqueue(new MockResponse() - .setResponseCode(HttpStatus.OK.value()) - .setBody("hello")); - - runner.withPropertyValues("http.request.http-method-expression='POST'").run(context -> { - HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class); - Message message = MessageBuilder.withPayload("").build(); - ResponseEntity r = (ResponseEntity) httpRequestFunction.apply(message); - assertThat(r.getBody()).isEqualTo("hello"); - assertThat(r.getStatusCode().is2xxSuccessful()).isTrue(); - }); - } - - @Test - void shouldPostJson() { - - server.setDispatcher(new Dispatcher() { - @Override - public MockResponse dispatch(RecordedRequest recordedRequest) { - return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE, - recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE)) - .setBody(recordedRequest.getBody()) - .setResponseCode(HttpStatus.CREATED.value()); - } - }); - - runner.withPropertyValues("http.request.http-method-expression='POST'", - "http.request.headers-expression={'Content-Type':'application/json'}").run(context -> { - HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class); - String json = "{\"hello\":\"world\"}"; - Message message = MessageBuilder.withPayload(json) - .build(); - ResponseEntity r = (ResponseEntity) httpRequestFunction.apply(message); - assertThat(r.getBody()).isEqualTo(json); - assertThat(r.getStatusCode().is2xxSuccessful()).isTrue(); - assertThat(r.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON); - RecordedRequest request = server.takeRequest(100, TimeUnit.MILLISECONDS); - assertThat(request.getMethod()).isEqualTo("POST"); - }); - } - - @Test - void shouldPostPojoAsJson() { - - server.setDispatcher(new Dispatcher() { - @Override - public MockResponse dispatch(RecordedRequest recordedRequest) { - return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE, - recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE)) - .setBody(recordedRequest.getBody()) - .setResponseCode(HttpStatus.CREATED.value()); - } - }); - - runner.withPropertyValues("http.request.http-method-expression='POST'", - "http.request.expected-response-type=" + Map.class.getName()).run(context -> { - HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class); - Map json = Collections.singletonMap("hello", "world"); - Message message = MessageBuilder.withPayload(json) - .build(); - ResponseEntity r = (ResponseEntity) httpRequestFunction.apply(message); - assertThat(r.getBody()).isEqualTo(json); - assertThat(r.getStatusCode().is2xxSuccessful()).isTrue(); - assertThat(r.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON); - RecordedRequest request = server.takeRequest(100, TimeUnit.MILLISECONDS); - assertThat(request.getMethod()).isEqualTo("POST"); - }); - } - - @Test - void shouldDelete() { - server.setDispatcher(new Dispatcher() { - @Override - public MockResponse dispatch(RecordedRequest recordedRequest) { - return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE, - recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE)) - .setBody(recordedRequest.getBody()) - .setResponseCode(HttpStatus.ACCEPTED.value()); - } - }); - - runner.withPropertyValues("http.request.http-method-expression='DELETE'", - "http.request.expected-response-type=" + Void.class.getName()).run(context -> { - HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class); - Message message = MessageBuilder.withPayload("") - .build(); - ResponseEntity r = (ResponseEntity) httpRequestFunction.apply(message); - assertThat(r.getBody()).isNull(); - assertThat(r.getStatusCode().is2xxSuccessful()).isTrue(); - RecordedRequest request = server.takeRequest(100, TimeUnit.MILLISECONDS); - assertThat(request.getMethod()).isEqualTo("DELETE"); - }); - } - - @Test - void shouldThrowErrorIfCannotConnect() throws IOException { - server.shutdown(); - runner.run(context -> { - HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class); - try { - httpRequestFunction.apply(new GenericMessage("")); - fail("Expected exception"); - } - catch (Throwable throwable) { - assertThat(throwable.getMessage()).contains("Connection refused"); - } - }); - } - - @Test - void requestUsingExpressions() { - server.setDispatcher(new Dispatcher() { - @Override - public MockResponse dispatch(RecordedRequest recordedRequest) { - return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE, - recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .setBody(recordedRequest.getBody()) - .setResponseCode(HttpStatus.OK.value()); - } - }); - - runner.withPropertyValues( - "http.request.url-expression=headers['url']", - "http.request.http-method-expression=headers['method']", - "http.request.body-expression=headers['body']", - "http.request.headers-expression={Accept:'application/json'}") - .run(context -> { - Message message = MessageBuilder.withPayload("") - .setHeader("url", url()) - .setHeader("method", "POST") - .setHeader("body", "{\"hello\":\"world\"}") - .build(); - - HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class); - ResponseEntity responseEntity = (ResponseEntity) httpRequestFunction.apply(message); - assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK); - assertThat(responseEntity.getBody()).isEqualTo(message.getHeaders().get("body")); - assertThat(responseEntity.getHeaders().getContentType()) - .isEqualTo(MediaType.APPLICATION_JSON); - }); - } - - @Test - void requestUsingReturnType() { - server.setDispatcher(new Dispatcher() { - @Override - public MockResponse dispatch(RecordedRequest recordedRequest) { - return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE, - recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE)) - .setBody(recordedRequest.getBody()) - .setResponseCode(HttpStatus.OK.value()); - } - }); - runner.withPropertyValues( - "http.request..http-method-expression='POST'", - "http.request.headers-expression={'Content-Type':'application/octet-stream'}", - "http.request.expected-response-type=byte[]") - .run(context -> { - Message message = MessageBuilder.withPayload("hello") - .build(); - HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class); - ResponseEntity responseEntity = (ResponseEntity) httpRequestFunction.apply(message); - assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK); - assertThat(responseEntity.getBody()).isEqualTo("hello".getBytes()); - assertThat(responseEntity.getHeaders().getContentType()) - .isEqualTo(MediaType.APPLICATION_OCTET_STREAM); - }); - } - - @Test - void requestUsingJsonPathMethodExpression() { - server.setDispatcher(new Dispatcher() { - @Override - public MockResponse dispatch(RecordedRequest recordedRequest) { - return new MockResponse() - .setBody(recordedRequest.getBody()) - .setHeader("method", recordedRequest.getMethod()) - .setResponseCode(HttpStatus.OK.value()); - } - }); - runner.withPropertyValues( - "http.request.http-method-expression=#jsonPath(payload,'$.myMethod')") - .run(context -> { - Message message = MessageBuilder - .withPayload("{\"name\":\"Fred\",\"age\":41, \"myMethod\":\"POST\"}") - .build(); - HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class); - ResponseEntity responseEntity = (ResponseEntity) httpRequestFunction.apply(message); - assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK); - assertThat(responseEntity.getBody()).isEqualTo(message.getPayload()); - }); - } - - private String url() { - return String.format("http://localhost:%d", server.getPort()); - } - - @SpringBootApplication - static class HttpRequestFunctionTestApplication { - } -} diff --git a/functions/function/image-recognition-function/README.adoc b/functions/function/image-recognition-function/README.adoc deleted file mode 100644 index 141b8b52..00000000 --- a/functions/function/image-recognition-function/README.adoc +++ /dev/null @@ -1,103 +0,0 @@ -:images-asciidoc: https://raw.githubusercontent.com/spring-cloud/stream-applications/master/functions/function/image-recognition-function/src/main/resources/images/ - -# Image Recognition - -[.lead] -Java model inference library for the https://github.com/tensorflow/models/tree/master/research/slim#pre-trained-models[Inception], https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md#pre-trained-models[MobileNetV1] and https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet#pretrained-models[MobileNetV2] image recognition architectures. -Provides real-time recognition of the https://dl.bintray.com/big-data/generic/imagenet_comp_graph_label_strings.txt[LSVRC-2012-CLS categories] in the input images. - -[cols="1,2",frame=none,grid=none] -|=== -| image:{images-asciidoc}/image-augmented.jpg[alt=Inception 1,width=100%] -|The https://github.com/spring-cloud/stream-applications/blob/master/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/ImageRecognition.java[ImageRecognition] takes an image and outputs a list of probable categories the image contains. The response is represented by https://github.com/spring-cloud/stream-applications/blob/master/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/RecognitionResponse.java[RecognitionResponse] class. - -The https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/JsonMapperFunction.java[JsonMapperFunction] permits -converting the `RecognitionResponse` into JSON objects and the -https://github.com/spring-cloud/stream-applications/blob/master/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionAugmenter.java[ImageRecognitionAugmenter] can augment the input image with the detected categories (as shown in pic. 1). -|=== - -## Usage - -Add the `image-recognition` dependency to the pom (use the latest version available): - -[source,xml] ----- - - org.springframework.cloud.fn - image-recognition-function - ${revision} - ----- - -#### Example 1: Image Recognition - -The following snippet demonstrates how to use the `ImageRecognition` for detecting the categories present in an input image. -It also shows how to convert the result into JSON format and augment the input image with the detected category labels. - -[source,java,linenums] ----- -ImageRecognition recognitionService = ImageRecognition.mobilenetModeV2( - "https://storage.googleapis.com/mobilenet_v2/checkpoints/mobilenet_v2_1.4_224.tgz#mobilenet_v2_1.4_224_frozen.pb", //<1> - 224, //<2> - 5, //<3> - true); //<4> - -byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/giant_panda_in_beijing_zoo_1.jpg"); //<5> - -List recognizedObjects = recognitionService.recognize(inputImage); //<6> ----- -<1> Downloads and loads a pre-trained `mobilenet_v2_1.4_224_frozen.pb` model. -Mind that on first attempt it will download few hundreds of MBs. -The consecutive runs will use the cached copy (5) instead. -The category labels for the MobileNetV2 are resolved from `src/main/resources/labels/mobilenet_labels.txt`. -<2> The wxh seize of the input normalized image. -<3> Top K result to return. -<4> Cache the model on the local file system. -<5> Load the image to recognise. -<6> Return a map of the top-k most probable category names and their probabilities. - -The `ImageRecognition.mobilenetModeV1` and `ImageRecognition.inception` factory methods help to load and configure pre-trained mobilenetModeV1 and and Inception models. - -Next you can convert the result in JSON format. - -[source,java,linenums] ----- -String jsonRecognizedObjects = new JsonMapperFunction().apply(recognizedObjects); ----- - -.Sample Image Recognition JSON representation -[source,json] ----- -[{"label":"giant panda","probability":0.9946687817573547},{"label":"Arctic fox","probability":0.0036631098482757807},{"label":"ice bear","probability":3.3782739774324E-4},{"label":"American black bear","probability":2.3452856112271547E-4},{"label":"skunk","probability":1.6454080468975008E-4}] ----- - -Use the `ImageRecognitionAugmenter` to draw the recognise categories on top of the input image. - -[source,java,linenums] ----- -byte[] augmentedImage = new ImageRecognitionAugmenter().apply(inputImage, recognizedObjects); //<1> -IOUtils.write(augmentedImage, new FileOutputStream("./image-recognition/target/image-augmented.jpg"));//<2> ----- -<1> Augment the image with the recognized categories (uses Java2D internally). -<2> Stores the augmented image as `image-augmented.jpg` image file. - -.Augmented image-augmented.jpg file -image:{images-asciidoc}/image-recognition-panda-augmented.jpg[alt=Augmented,width=30%] - -## Models - -This implementation supports all pre-trained https://github.com/tensorflow/models/tree/master/research/slim#pre-trained-models[Inception], https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md#pre-trained-models[MobileNetV1] and https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet#pretrained-models[MobileNetV2] models. -Following URI notation can be used to download any of the models directly from the zoo. - ----- -http://# ----- - -The `` is the frozen model file name within the archive. - - -TIP: To speedup the bootstrap performance you may consider extracting the model and caching it locally. -Then you can use the `file://path-to-my-local-copy` URI schema to access it. - -NOTE: It is important to use the labels that correspond to the model being used! -Table below highlights this mapping. diff --git a/functions/function/image-recognition-function/pom.xml b/functions/function/image-recognition-function/pom.xml deleted file mode 100644 index e8ad6fd9..00000000 --- a/functions/function/image-recognition-function/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/ImageRecognition.java b/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/ImageRecognition.java deleted file mode 100644 index f93f3933..00000000 --- a/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/ImageRecognition.java +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.image.recognition; - -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.Charset; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import org.tensorflow.Operand; -import org.tensorflow.Tensor; -import org.tensorflow.op.core.Placeholder; -import org.tensorflow.op.image.DecodeJpeg; -import org.tensorflow.op.nn.TopK; - -import org.springframework.cloud.fn.common.tensorflow.GraphRunner; -import org.springframework.cloud.fn.common.tensorflow.GraphRunnerMemory; -import org.springframework.cloud.fn.common.tensorflow.ProtoBufGraphDefinition; -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.Resource; -import org.springframework.util.StreamUtils; - -/** - * @author Christian Tzolov - */ -public class ImageRecognition implements AutoCloseable { - - private final List labels; - private final GraphRunner imageNormalization; - private final GraphRunner imageRecognition; - private final GraphRunner maxProbability; - private final GraphRunner topKProbabilities; - - /** - * Instead of creating the {@link ImageRecognition} service explicitly via the constructor, - * you should consider the convenience factory methods below. E.g. - * - * {@link #inception(String, int, int, boolean)} - * {@link #mobileNetV1(String, int, int, boolean)} - * {@link #mobileNetV2(String, int, int, boolean)} - * - * @param modelUri location of the pre-trained model to use. - * @param labelsUri location of the list fromMemory pre-trained categories used by the model. - * @param imageRecognitionGraphInputName name of the Model's input node to send the input image to. - * @param imageRecognitionGraphOutputName name of the Model's output node to retrieve the predictions from. - * @param imageHeight normalized image height. - * @param imageWidth normalized image width. - * @param mean mean value to normalize the input image. - * @param scale scale to normalize the input image. - * @param responseSize Max number of predictions per recognize. - * @param cacheModel if true the pre-trained model is cached on the local file system. - */ - public ImageRecognition(String modelUri, String labelsUri, int imageHeight, int imageWidth, float mean, float scale, - String imageRecognitionGraphInputName, String imageRecognitionGraphOutputName, int responseSize, boolean cacheModel) { - - this.labels = labels(labelsUri); - - /** - * Normalizes the raw input image into format expected by the pre-trained Inception/MobileNetV1/MobileNetV2 models. - * Typically the model is trained fromMemory images scaled to certain size. Usually it is 224x224 pixels, but can be - * also 192x192, 160x160, 128128, 92x92. Use the (imageHeight, imageWidth) to set the desired size. - * The colors, represented as R, G, B in 1-byte each were converted to float using (Value - Mean)/Scale. - * - * imageHeight normalized image height. - * imageWidth normalized image width. - * mean mean value to normalize the input image. - * scale scale to normalize the input image. - */ - this.imageNormalization = new GraphRunner("raw_image", "normalized_image") - .withGraphDefinition(tf -> { - Placeholder input = tf.withName("raw_image").placeholder(String.class); - final Operand decodedImage = - tf.dtypes.cast(tf.image.decodeJpeg(input, DecodeJpeg.channels(3L)), Float.class); - final Operand resizedImage = tf.image.resizeBilinear( - tf.expandDims(decodedImage, tf.constant(0)), - tf.constant(new int[] { imageHeight, imageWidth })); - tf.withName("normalized_image").math.div(tf.math.sub(resizedImage, tf.constant(mean)), tf.constant(scale)); - }); - - this.imageRecognition = new GraphRunner(imageRecognitionGraphInputName, imageRecognitionGraphOutputName) - .withGraphDefinition(new ProtoBufGraphDefinition(toResource(modelUri), cacheModel)); - - this.maxProbability = new GraphRunner(Arrays.asList("recognition_result"), Arrays.asList("category", "probability")) - .withGraphDefinition(tf -> { - Placeholder input = tf.withName("recognition_result").placeholder(Float.class); - tf.withName("category").math.argMax(input, tf.constant(1)); - tf.withName("probability").max(input, tf.constant(1)); - }); - - this.topKProbabilities = new GraphRunner("recognition_result", "topK") - .withGraphDefinition(tf -> { - Placeholder input = tf.withName("recognition_result").placeholder(Float.class); - tf.withName("topK").nn.topK(input, tf.constant(responseSize), TopK.sorted(true)); - }); - } - - /** - * Takes an byte encoded image and returns the most probable category recognized in the image along fromMemory its probability. - * @param inputImage Byte array encoded image to recognize. - * @return Returns a single map entry containing the names of the recognized categories as key and the confidence as value. - */ - public Map recognizeMax(byte[] inputImage) { - - try (Tensor inputTensor = Tensor.create(inputImage); GraphRunnerMemory memorize = new GraphRunnerMemory()) { - - Map> max = this.imageNormalization.andThen(memorize) - .andThen(this.imageRecognition).andThen(memorize) - .andThen(this.maxProbability).andThen(memorize) - .apply(Collections.singletonMap("raw_image", inputTensor)); - - long[] category = new long[1]; - max.get("category").copyTo(category); - float[] probability = new float[1]; - max.get("probability").copyTo(probability); - - return Collections.singletonMap(labels.get((int) category[0]), Double.valueOf(probability[0])); - } - } - - /** - * Takes an byte encoded input image and returns the top K most probable categories recognized in the image - * along fromMemory their probabilities. - * - * @param inputImage Byte array encoded image to recognize. - * @return Returns a list of key-value pairs. Every key-value pair represents a single category recognized. - * The key stands for the name(s) of the category while the value states the confidence that there is an - * object of this category. The entries in the Map are ordered from the higher to the lower confidences. - */ - public Map recognizeTopK(byte[] inputImage) { - - try (Tensor inputTensor = Tensor.create(inputImage); GraphRunnerMemory memorize = new GraphRunnerMemory()) { - - Map> topKResults = - this.imageNormalization.andThen(memorize) - .andThen(this.imageRecognition).andThen(memorize) - .andThen(this.topKProbabilities).andThen(memorize) - .apply(Collections.singletonMap("raw_image", inputTensor)); - - Tensor recognizedImagesTensor = memorize.getTensorMap().get(this.imageRecognition.getSingleFetchName()); - float[][] results = new float[(int) recognizedImagesTensor.shape()[0]][(int) recognizedImagesTensor.shape()[1]]; - recognizedImagesTensor.copyTo(results); - - Tensor topKTensor = topKResults.get("topK").expect(Float.class); - float[][] topK = new float[(int) topKTensor.shape()[0]][(int) topKTensor.shape()[1]]; - topKTensor.copyTo(topK); - - float min = topK[0][topK[0].length - 1]; - - Map valueToIndex = new HashMap<>(); - for (int i = 0; i < results[0].length; i++) { - if (results[0][i] >= min) { - valueToIndex.put(results[0][i], i); - } - } - - Map map = new LinkedHashMap<>(); - for (float tk : topK[0]) { - map.put(labels.get(valueToIndex.get(tk)), (double) tk); - } - - return map; - } - } - - private Resource toResource(String uri) { - return new DefaultResourceLoader().getResource(uri); - } - - /** - * Converts a labels resources into string list. - * @return Returns string lists. One line per different category. - */ - private List labels(String labelsUri) { - try (InputStream is = toResource(labelsUri).getInputStream()) { - return Arrays.asList(StreamUtils.copyToString(is, Charset.forName("UTF-8")).split("\n")); - } - catch (IOException e) { - throw new RuntimeException("Failed to initialize the Vocabulary", e); - } - } - - /** - * - * The Inception graph uses "input" as input and "output" as output. - * - */ - public static ImageRecognition inception(String inceptionModelUri, - int normalizedImageSize, int responseSize, boolean cacheModel) { - return new ImageRecognition(inceptionModelUri, "classpath:/labels/inception_labels.txt", - normalizedImageSize, normalizedImageSize, 117f, 1f, - "input", "output", - responseSize, cacheModel); - } - - /** - * Convenience for MobileNetV2 pre-trained models: - * https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet#pretrained-models - * - * The normalized image size is always square (e.g. H=W) - * - * The MobileNetV2 graph uses "input" as input and "MobilenetV2/Predictions/Reshape_1" as output. - * - * @param mobileNetV2ModelUri model uri - * @param normalizedImageSize Depends on the pre-trained model used. Usually 224px is used. - * @param responseSize Number of responses fot topK requests. - * @param cacheModel cache model - * @return ImageRecognition instance configured fromMemory a MobileNetV2 pre-trained model. - */ - public static ImageRecognition mobileNetV2(String mobileNetV2ModelUri, - int normalizedImageSize, int responseSize, boolean cacheModel) { - return new ImageRecognition(mobileNetV2ModelUri, "classpath:/labels/mobilenet_labels.txt", - normalizedImageSize, normalizedImageSize, 0f, 127f, - "input", "MobilenetV2/Predictions/Reshape_1", - responseSize, cacheModel); - } - - /** - * Convenience for MobileNetV1 pre-trained models: - * https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md#pre-trained-models - * - * The MobileNetV1 graph uses "input" as input and "MobilenetV1/Predictions/Reshape_1" as output. - * - */ - public static ImageRecognition mobileNetV1(String mobileNetV1ModelUri, - int normalizedImageSize, int responseSize, boolean cacheModel) { - return new ImageRecognition(mobileNetV1ModelUri, "classpath:/labels/mobilenet_labels.txt", - normalizedImageSize, normalizedImageSize, - 0f, 127f, - "input", "MobilenetV1/Predictions/Reshape_1", - responseSize, cacheModel); - } - - /** - * Convert image recognition results into {@link RecognitionResponse} domain list. - * @param recognitionMap map containing the category mames and its probability. Returned by the - * {@link ImageRecognition#recognizeMax(byte[])} and the ImageRecognition{@link #recognizeTopK(byte[])} methods - * @return List of {@link RecognitionResponse} objects representing the name-to-probability pairs in the input map. - */ - public static List toRecognitionResponse(Map recognitionMap) { - return recognitionMap.entrySet().stream() - .map(nameProbabilityPair -> new RecognitionResponse(nameProbabilityPair.getKey(), nameProbabilityPair.getValue())) - .collect(Collectors.toList()); - } - - @Override - public void close() { - this.imageNormalization.close(); - this.imageRecognition.close(); - this.maxProbability.close(); - this.topKProbabilities.close(); - } -} diff --git a/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionAugmenter.java b/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionAugmenter.java deleted file mode 100644 index 6ffae73f..00000000 --- a/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionAugmenter.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.image.recognition; - -import java.awt.Color; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.RenderingHints; -import java.awt.geom.Rectangle2D; -import java.awt.image.BufferedImage; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.List; -import java.util.function.BiFunction; - -import javax.imageio.ImageIO; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - - -/** - * Ability to to augment the input image fromMemory the recognized labels. - * - * @author Christian Tzolov - */ -public class ImageRecognitionAugmenter implements BiFunction, byte[]> { - - private static final Log logger = LogFactory.getLog(ImageRecognitionAugmenter.class); - - /** IMAGE_FORMAT. */ - public static final String IMAGE_FORMAT = "jpg"; - - private final Color textColor = Color.BLACK; - private final Color bgColor = new Color(167, 252, 0); - - public ImageRecognitionAugmenter() { - } - - /** - * Augment the input image by adding the recognized classes. - * - * @param imageBytes input image as byte array - * @param result computed recognition labels - * @return the image augmented fromMemory recognized labels. - */ - @Override - public byte[] apply(byte[] imageBytes, List result) { - try { - if (result != null) { - BufferedImage originalImage = ImageIO.read(new ByteArrayInputStream(imageBytes)); - - Graphics2D g = originalImage.createGraphics(); - g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - FontMetrics fm = g.getFontMetrics(); - - int x = 1; - int y = 1; - for (RecognitionResponse r : result) { - - String labelName = r.getLabel(); - int probability = (int) (100 * r.getProbability()); - String title = labelName + ": " + probability + "%"; - - Rectangle2D rect = fm.getStringBounds(title, g); - - g.setColor(bgColor); - g.fillRect(x, y, (int) rect.getWidth() + 6, (int) rect.getHeight()); - - g.setColor(textColor); - g.drawString(title, x + 3, (int) (y + rect.getHeight() - 3)); - y = (int) (y + rect.getHeight() + 1); - } - - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - ImageIO.write(originalImage, IMAGE_FORMAT, baos); - baos.flush(); - imageBytes = baos.toByteArray(); - baos.close(); - } - } - catch (IOException e) { - logger.error("Failed to draw labels in the input image", e); - } - - return imageBytes; - } - -} diff --git a/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/RecognitionResponse.java b/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/RecognitionResponse.java deleted file mode 100644 index e0169a5b..00000000 --- a/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/RecognitionResponse.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.image.recognition; - -/** - * @author Christian Tzolov - */ -public class RecognitionResponse { - private String label; - private Double probability; - - public RecognitionResponse() { - } - - public RecognitionResponse(String label, Double probability) { - this.label = label; - this.probability = probability; - } - - public String getLabel() { - return label; - } - - public void setLabel(String label) { - this.label = label; - } - - public Double getProbability() { - return probability; - } - - public void setProbability(Double probability) { - this.probability = probability; - } - - @Override - public String toString() { - return "{label='" + label + ", probability=" + probability + '}'; - } -} diff --git a/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/util/ImageNetReadableNamesWriter.java b/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/util/ImageNetReadableNamesWriter.java deleted file mode 100644 index 889d111f..00000000 --- a/functions/function/image-recognition-function/src/main/java/org/springframework/cloud/fn/image/recognition/util/ImageNetReadableNamesWriter.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.image.recognition.util; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import org.apache.commons.io.FileUtils; - -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.Resource; -import org.springframework.util.Assert; -import org.springframework.util.StreamUtils; - -/** - * Create a text file mapping label id to human readable string. - * - * Produces a text file where every line represents single category. The line number represents the category id, while - * the line text is human-readable names for the categories fromMemory this imagenet id. - * - * Based on https://github.com/tensorflow/models/blob/master/research/slim/datasets/imagenet.py#L66 - * - * We retrieve a synset file, which contains a list of valid synset labels used - * by ILSVRC competition. There is one synset one per line, eg. - * # n01440764 - * # n01443537 - * We also retrieve a synset_to_human_file, which contains a mapping from synsets - * to human-readable names for every synset in Imagenet. These are stored in a - * tsv format, as follows: - * # n02119247 black fox - * # n02119359 silver fox - * We assign each synset (in alphabetical order) an integer, starting from 1 - * (since 0 is reserved for the background class) - * - * @author Christian Tzolov - */ -public final class ImageNetReadableNamesWriter { - - private ImageNetReadableNamesWriter() { - } - - /** BASE_URL. */ - public final static String BASE_URL = "https://raw.githubusercontent.com/tensorflow/models/master/research/inception/inception/data/"; - /** SYNSET_URI. */ - public final static String SYNSET_URI = BASE_URL + "imagenet_lsvrc_2015_synsets.txt"; - /** SYNSET_TO_HUMAN_URI. */ - public final static String SYNSET_TO_HUMAN_URI = BASE_URL + "imagenet_metadata.txt"; - - public static void main(String[] args) { - Charset utf8 = Charset.forName("UTF-8"); - - try (InputStream synsetIs = toResource(SYNSET_URI).getInputStream(); - InputStream synsetToHumanIs = toResource(SYNSET_TO_HUMAN_URI).getInputStream()) { - - List synsetList = Arrays.asList(StreamUtils.copyToString(synsetIs, utf8) - .split("\n")).stream().map(l -> l.trim()).collect(Collectors.toList()); - Assert.notNull(synsetList, "Failed to initialize the labels list"); - Assert.isTrue(synsetList.size() == 1000, "Labels list is expected to be of " + - "size 1000 but was:" + synsetList.size()); - - Map synsetToHuman = Arrays.asList(StreamUtils.copyToString(synsetToHumanIs, utf8) - .split("\n")).stream().map(s2h -> s2h.split("\t")).collect(Collectors.toMap(s -> s[0], s -> s[1])); - Assert.notNull(synsetToHuman, "Failed to initialize the synsetToHuman"); - Assert.isTrue(synsetToHuman.size() == 21842, "synsetToHuman is expected to be of " + - "size 21842 but was:" + synsetToHuman.size()); - - List l = synsetList.stream().map(id -> synsetToHuman.get(id)).collect(Collectors.toList()); - - List ll = new ArrayList<>(); - ll.add("dummy"); - ll.addAll(l); - System.out.println(ll.get(389)); - FileUtils.writeLines(new File("labels.txt"), ll); - - } - catch (IOException e) { - throw new RuntimeException("Failed to initialize the Vocabulary", e); - } - } - - public static Resource toResource(String uri) { - return new DefaultResourceLoader().getResource(uri); - } -} diff --git a/functions/function/image-recognition-function/src/main/resources/images/image-augmented.jpg b/functions/function/image-recognition-function/src/main/resources/images/image-augmented.jpg deleted file mode 100644 index 472a3532bc1a438f8e346676779978da0fa80c2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17520 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 diff --git a/functions/function/image-recognition-function/src/main/resources/images/image-recognition-panda-augmented.jpg b/functions/function/image-recognition-function/src/main/resources/images/image-recognition-panda-augmented.jpg deleted file mode 100644 index 3cfc4ae6446e222d0dc45e411c8d791ed26f711e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103832 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 DLj$3y diff --git a/functions/function/image-recognition-function/src/main/resources/labels/inception_labels.txt b/functions/function/image-recognition-function/src/main/resources/labels/inception_labels.txt deleted file mode 100644 index 0ac5a169..00000000 --- a/functions/function/image-recognition-function/src/main/resources/labels/inception_labels.txt +++ /dev/null @@ -1,1001 +0,0 @@ -dummy -kit fox -English setter -Siberian husky -Australian terrier -English springer -grey whale -lesser panda -Egyptian cat -ibex -Persian cat -cougar -gazelle -porcupine -sea lion -malamute -badger -Great Dane -Walker hound -Welsh springer spaniel -whippet -Scottish deerhound -killer whale -mink -African elephant -Weimaraner -soft-coated wheaten terrier -Dandie Dinmont -red wolf -Old English sheepdog -jaguar -otterhound -bloodhound -Airedale -hyena -meerkat -giant schnauzer -titi -three-toed sloth -sorrel -black-footed ferret -dalmatian -black-and-tan coonhound -papillon -skunk -Staffordshire bullterrier -Mexican hairless -Bouvier des Flandres -weasel -miniature poodle -Cardigan -malinois -bighorn -fox squirrel -colobus -tiger cat -Lhasa -impala -coyote -Yorkshire terrier -Newfoundland -brown bear -red fox -Norwegian elkhound -Rottweiler -hartebeest -Saluki -grey fox -schipperke -Pekinese -Brabancon griffon -West Highland white terrier -Sealyham terrier -guenon -mongoose -indri -tiger -Irish wolfhound -wild boar -EntleBucher -zebra -ram -French bulldog -orangutan -basenji -leopard -Bernese mountain dog -Maltese dog -Norfolk terrier -toy terrier -vizsla -cairn -squirrel monkey -groenendael -clumber -Siamese cat -chimpanzee -komondor -Afghan hound -Japanese spaniel -proboscis monkey -guinea pig -white wolf -ice bear -gorilla -borzoi -toy poodle -Kerry blue terrier -ox -Scotch terrier -Tibetan mastiff -spider monkey -Doberman -Boston bull -Greater Swiss Mountain dog -Appenzeller -Shih-Tzu -Irish water spaniel -Pomeranian -Bedlington terrier -warthog -Arabian camel -siamang -miniature schnauzer -collie -golden retriever -Irish terrier -affenpinscher -Border collie -hare -boxer -silky terrier -beagle -Leonberg -German short-haired pointer -patas -dhole -baboon -macaque -Chesapeake Bay retriever -bull mastiff -kuvasz -capuchin -pug -curly-coated retriever -Norwich terrier -flat-coated retriever -hog -keeshond -Eskimo dog -Brittany spaniel -standard poodle -Lakeland terrier -snow leopard -Gordon setter -dingo -standard schnauzer -hamster -Tibetan terrier -Arctic fox -wire-haired fox terrier -basset -water buffalo -American black bear -Angora -bison -howler monkey -hippopotamus -chow -giant panda -American Staffordshire terrier -Shetland sheepdog -Great Pyrenees -Chihuahua -tabby -marmoset -Labrador retriever -Saint Bernard -armadillo -Samoyed -bluetick -redbone -polecat -marmot -kelpie -gibbon -llama -miniature pinscher -wood rabbit -Italian greyhound -lion -cocker spaniel -Irish setter -dugong -Indian elephant -beaver -Sussex spaniel -Pembroke -Blenheim spaniel -Madagascar cat -Rhodesian ridgeback -lynx -African hunting dog -langur -Ibizan hound -timber wolf -cheetah -English foxhound -briard -sloth bear -Border terrier -German shepherd -otter -koala -tusker -echidna -wallaby -platypus -wombat -revolver -umbrella -schooner -soccer ball -accordion -ant -starfish -chambered nautilus -grand piano -laptop -strawberry -airliner -warplane -airship -balloon -space shuttle -fireboat -gondola -speedboat -lifeboat -canoe -yawl -catamaran -trimaran -container ship -liner -pirate -aircraft carrier -submarine -wreck -half track -tank -missile -bobsled -dogsled -bicycle-built-for-two -mountain bike -freight car -passenger car -barrow -shopping cart -motor scooter -forklift -electric locomotive -steam locomotive -amphibian -ambulance -beach wagon -cab -convertible -jeep -limousine -minivan -Model T -racer -sports car -go-kart -golfcart -moped -snowplow -fire engine -garbage truck -pickup -tow truck -trailer truck -moving van -police van -recreational vehicle -streetcar -snowmobile -tractor -mobile home -tricycle -unicycle -horse cart -jinrikisha -oxcart -bassinet -cradle -crib -four-poster -bookcase -china cabinet -medicine chest -chiffonier -table lamp -file -park bench -barber chair -throne -folding chair -rocking chair -studio couch -toilet seat -desk -pool table -dining table -entertainment center -wardrobe -Granny Smith -orange -lemon -fig -pineapple -banana -jackfruit -custard apple -pomegranate -acorn -hip -ear -rapeseed -corn -buckeye -organ -upright -chime -drum -gong -maraca -marimba -steel drum -banjo -cello -violin -harp -acoustic guitar -electric guitar -cornet -French horn -trombone -harmonica -ocarina -panpipe -bassoon -oboe -sax -flute -daisy -yellow lady's slipper -cliff -valley -alp -volcano -promontory -sandbar -coral reef -lakeside -seashore -geyser -hatchet -cleaver -letter opener -plane -power drill -lawn mower -hammer -corkscrew -can opener -plunger -screwdriver -shovel -plow -chain saw -cock -hen -ostrich -brambling -goldfinch -house finch -junco -indigo bunting -robin -bulbul -jay -magpie -chickadee -water ouzel -kite -bald eagle -vulture -great grey owl -black grouse -ptarmigan -ruffed grouse -prairie chicken -peacock -quail -partridge -African grey -macaw -sulphur-crested cockatoo -lorikeet -coucal -bee eater -hornbill -hummingbird -jacamar -toucan -drake -red-breasted merganser -goose -black swan -white stork -black stork -spoonbill -flamingo -American egret -little blue heron -bittern -crane -limpkin -American coot -bustard -ruddy turnstone -red-backed sandpiper -redshank -dowitcher -oystercatcher -European gallinule -pelican -king penguin -albatross -great white shark -tiger shark -hammerhead -electric ray -stingray -barracouta -coho -tench -goldfish -eel -rock beauty -anemone fish -lionfish -puffer -sturgeon -gar -loggerhead -leatherback turtle -mud turtle -terrapin -box turtle -banded gecko -common iguana -American chameleon -whiptail -agama -frilled lizard -alligator lizard -Gila monster -green lizard -African chameleon -Komodo dragon -triceratops -African crocodile -American alligator -thunder snake -ringneck snake -hognose snake -green snake -king snake -garter snake -water snake -vine snake -night snake -boa constrictor -rock python -Indian cobra -green mamba -sea snake -horned viper -diamondback -sidewinder -European fire salamander -common newt -eft -spotted salamander -axolotl -bullfrog -tree frog -tailed frog -whistle -wing -paintbrush -hand blower -oxygen mask -snorkel -loudspeaker -microphone -screen -mouse -electric fan -oil filter -strainer -space heater -stove -guillotine -barometer -rule -odometer -scale -analog clock -digital clock -wall clock -hourglass -sundial -parking meter -stopwatch -digital watch -stethoscope -syringe -magnetic compass -binoculars -projector -sunglasses -loupe -radio telescope -bow -cannon [ground] -assault rifle -rifle -projectile -computer keyboard -typewriter keyboard -crane -lighter -abacus -cash machine -slide rule -desktop computer -hand-held computer -notebook -web site -harvester -thresher -printer -slot -vending machine -sewing machine -joystick -switch -hook -car wheel -paddlewheel -pinwheel -potter's wheel -gas pump -carousel -swing -reel -radiator -puck -hard disc -sunglass -pick -car mirror -solar dish -remote control -disk brake -buckle -hair slide -knot -combination lock -padlock -nail -safety pin -screw -muzzle -seat belt -ski -candle -jack-o'-lantern -spotlight -torch -neck brace -pier -tripod -maypole -mousetrap -spider web -trilobite -harvestman -scorpion -black and gold garden spider -barn spider -garden spider -black widow -tarantula -wolf spider -tick -centipede -isopod -Dungeness crab -rock crab -fiddler crab -king crab -American lobster -spiny lobster -crayfish -hermit crab -tiger beetle -ladybug -ground beetle -long-horned beetle -leaf beetle -dung beetle -rhinoceros beetle -weevil -fly -bee -grasshopper -cricket -walking stick -cockroach -mantis -cicada -leafhopper -lacewing -dragonfly -damselfly -admiral -ringlet -monarch -cabbage butterfly -sulphur butterfly -lycaenid -jellyfish -sea anemone -brain coral -flatworm -nematode -conch -snail -slug -sea slug -chiton -sea urchin -sea cucumber -iron -espresso maker -microwave -Dutch oven -rotisserie -toaster -waffle iron -vacuum -dishwasher -refrigerator -washer -Crock Pot -frying pan -wok -caldron -coffeepot -teapot -spatula -altar -triumphal arch -patio -steel arch bridge -suspension bridge -viaduct -barn -greenhouse -palace -monastery -library -apiary -boathouse -church -mosque -stupa -planetarium -restaurant -cinema -home theater -lumbermill -coil -obelisk -totem pole -castle -prison -grocery store -bakery -barbershop -bookshop -butcher shop -confectionery -shoe shop -tobacco shop -toyshop -fountain -cliff dwelling -yurt -dock -brass -megalith -bannister -breakwater -dam -chainlink fence -picket fence -worm fence -stone wall -grille -sliding door -turnstile -mountain tent -scoreboard -honeycomb -plate rack -pedestal -beacon -mashed potato -bell pepper -head cabbage -broccoli -cauliflower -zucchini -spaghetti squash -acorn squash -butternut squash -cucumber -artichoke -cardoon -mushroom -shower curtain -jean -carton -handkerchief -sandal -ashcan -safe -plate -necklace -croquet ball -fur coat -thimble -pajama -running shoe -cocktail shaker -chest -manhole cover -modem -tub -tray -balance beam -bagel -prayer rug -kimono -hot pot -whiskey jug -knee pad -book jacket -spindle -ski mask -beer bottle -crash helmet -bottlecap -tile roof -mask -maillot -Petri dish -football helmet -bathing cap -teddy bear -holster -pop bottle -photocopier -vestment -crossword puzzle -golf ball -trifle -suit -water tower -feather boa -cloak -red wine -drumstick -shield -Christmas stocking -hoopskirt -menu -stage -bonnet -meat loaf -baseball -face powder -scabbard -sunscreen -beer glass -hen-of-the-woods -guacamole -lampshade -wool -hay -bow tie -mailbag -water jug -bucket -dishrag -soup bowl -eggnog -mortar -trench coat -paddle -chain -swab -mixing bowl -potpie -wine bottle -shoji -bulletproof vest -drilling platform -binder -cardigan -sweatshirt -pot -birdhouse -hamper -ping-pong ball -pencil box -pay-phone -consomme -apron -punching bag -backpack -groom -bearskin -pencil sharpener -broom -mosquito net -abaya -mortarboard -poncho -crutch -Polaroid camera -space bar -cup -racket -traffic light -quill -radio -dough -cuirass -military uniform -lipstick -shower cap -monitor -oscilloscope -mitten -brassiere -French loaf -vase -milk can -rugby ball -paper towel -earthstar -envelope -miniskirt -cowboy hat -trolleybus -perfume -bathtub -hotdog -coral fungus -bullet train -pillow -toilet tissue -cassette -carpenter's kit -ladle -stinkhorn -lotion -hair spray -academic gown -dome -crate -wig -burrito -pill bottle -chain mail -theater curtain -window shade -barrel -washbasin -ballpoint -basketball -bath towel -cowboy boot -gown -window screen -agaric -cellular telephone -nipple -barbell -mailbox -lab coat -fire screen -minibus -packet -maze -pole -horizontal bar -sombrero -pickelhaube -rain barrel -wallet -cassette player -comic book -piggy bank -street sign -bell cote -fountain pen -Windsor tie -volleyball -overskirt -sarong -purse -bolo tie -bib -parachute -sleeping bag -television -swimming trunks -measuring cup -espresso -pizza -breastplate -shopping basket -wooden spoon -saltshaker -chocolate sauce -ballplayer -goblet -gyromitra -stretcher -water bottle -dial telephone -soap dispenser -jersey -school bus -jigsaw puzzle -plastic bag -reflex camera -diaper -Band Aid -ice lolly -velvet -tennis ball -gasmask -doormat -Loafer -ice cream -pretzel -quilt -maillot -tape player -clog -iPod -bolete -scuba diver -pitcher -matchstick -bikini -sock -CD player -lens cap -thatch -vault -beaker -bubble -cheeseburger -parallel bars -flagpole -coffee mug -rubber eraser -stole -carbonara -dumbbell \ No newline at end of file diff --git a/functions/function/image-recognition-function/src/main/resources/labels/mobilenet_labels.txt b/functions/function/image-recognition-function/src/main/resources/labels/mobilenet_labels.txt deleted file mode 100644 index a6d95b46..00000000 --- a/functions/function/image-recognition-function/src/main/resources/labels/mobilenet_labels.txt +++ /dev/null @@ -1,1001 +0,0 @@ -dummy -tench, Tinca tinca -goldfish, Carassius auratus -great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias -tiger shark, Galeocerdo cuvieri -hammerhead, hammerhead shark -electric ray, crampfish, numbfish, torpedo -stingray -cock -hen -ostrich, Struthio camelus -brambling, Fringilla montifringilla -goldfinch, Carduelis carduelis -house finch, linnet, Carpodacus mexicanus -junco, snowbird -indigo bunting, indigo finch, indigo bird, Passerina cyanea -robin, American robin, Turdus migratorius -bulbul -jay -magpie -chickadee -water ouzel, dipper -kite -bald eagle, American eagle, Haliaeetus leucocephalus -vulture -great grey owl, great gray owl, Strix nebulosa -European fire salamander, Salamandra salamandra -common newt, Triturus vulgaris -eft -spotted salamander, Ambystoma maculatum -axolotl, mud puppy, Ambystoma mexicanum -bullfrog, Rana catesbeiana -tree frog, tree-frog -tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui -loggerhead, loggerhead turtle, Caretta caretta -leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea -mud turtle -terrapin -box turtle, box tortoise -banded gecko -common iguana, iguana, Iguana iguana -American chameleon, anole, Anolis carolinensis -whiptail, whiptail lizard -agama -frilled lizard, Chlamydosaurus kingi -alligator lizard -Gila monster, Heloderma suspectum -green lizard, Lacerta viridis -African chameleon, Chamaeleo chamaeleon -Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis -African crocodile, Nile crocodile, Crocodylus niloticus -American alligator, Alligator mississipiensis -triceratops -thunder snake, worm snake, Carphophis amoenus -ringneck snake, ring-necked snake, ring snake -hognose snake, puff adder, sand viper -green snake, grass snake -king snake, kingsnake -garter snake, grass snake -water snake -vine snake -night snake, Hypsiglena torquata -boa constrictor, Constrictor constrictor -rock python, rock snake, Python sebae -Indian cobra, Naja naja -green mamba -sea snake -horned viper, cerastes, sand viper, horned asp, Cerastes cornutus -diamondback, diamondback rattlesnake, Crotalus adamanteus -sidewinder, horned rattlesnake, Crotalus cerastes -trilobite -harvestman, daddy longlegs, Phalangium opilio -scorpion -black and gold garden spider, Argiope aurantia -barn spider, Araneus cavaticus -garden spider, Aranea diademata -black widow, Latrodectus mactans -tarantula -wolf spider, hunting spider -tick -centipede -black grouse -ptarmigan -ruffed grouse, partridge, Bonasa umbellus -prairie chicken, prairie grouse, prairie fowl -peacock -quail -partridge -African grey, African gray, Psittacus erithacus -macaw -sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita -lorikeet -coucal -bee eater -hornbill -hummingbird -jacamar -toucan -drake -red-breasted merganser, Mergus serrator -goose -black swan, Cygnus atratus -tusker -echidna, spiny anteater, anteater -platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus -wallaby, brush kangaroo -koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus -wombat -jellyfish -sea anemone, anemone -brain coral -flatworm, platyhelminth -nematode, nematode worm, roundworm -conch -snail -slug -sea slug, nudibranch -chiton, coat-of-mail shell, sea cradle, polyplacophore -chambered nautilus, pearly nautilus, nautilus -Dungeness crab, Cancer magister -rock crab, Cancer irroratus -fiddler crab -king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica -American lobster, Northern lobster, Maine lobster, Homarus americanus -spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish -crayfish, crawfish, crawdad, crawdaddy -hermit crab -isopod -white stork, Ciconia ciconia -black stork, Ciconia nigra -spoonbill -flamingo -little blue heron, Egretta caerulea -American egret, great white heron, Egretta albus -bittern -crane -limpkin, Aramus pictus -European gallinule, Porphyrio porphyrio -American coot, marsh hen, mud hen, water hen, Fulica americana -bustard -ruddy turnstone, Arenaria interpres -red-backed sandpiper, dunlin, Erolia alpina -redshank, Tringa totanus -dowitcher -oystercatcher, oyster catcher -pelican -king penguin, Aptenodytes patagonica -albatross, mollymawk -grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus -killer whale, killer, orca, grampus, sea wolf, Orcinus orca -dugong, Dugong dugon -sea lion -Chihuahua -Japanese spaniel -Maltese dog, Maltese terrier, Maltese -Pekinese, Pekingese, Peke -Shih-Tzu -Blenheim spaniel -papillon -toy terrier -Rhodesian ridgeback -Afghan hound, Afghan -basset, basset hound -beagle -bloodhound, sleuthhound -bluetick -black-and-tan coonhound -Walker hound, Walker foxhound -English foxhound -redbone -borzoi, Russian wolfhound -Irish wolfhound -Italian greyhound -whippet -Ibizan hound, Ibizan Podenco -Norwegian elkhound, elkhound -otterhound, otter hound -Saluki, gazelle hound -Scottish deerhound, deerhound -Weimaraner -Staffordshire bullterrier, Staffordshire bull terrier -American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier -Bedlington terrier -Border terrier -Kerry blue terrier -Irish terrier -Norfolk terrier -Norwich terrier -Yorkshire terrier -wire-haired fox terrier -Lakeland terrier -Sealyham terrier, Sealyham -Airedale, Airedale terrier -cairn, cairn terrier -Australian terrier -Dandie Dinmont, Dandie Dinmont terrier -Boston bull, Boston terrier -miniature schnauzer -giant schnauzer -standard schnauzer -Scotch terrier, Scottish terrier, Scottie -Tibetan terrier, chrysanthemum dog -silky terrier, Sydney silky -soft-coated wheaten terrier -West Highland white terrier -Lhasa, Lhasa apso -flat-coated retriever -curly-coated retriever -golden retriever -Labrador retriever -Chesapeake Bay retriever -German short-haired pointer -vizsla, Hungarian pointer -English setter -Irish setter, red setter -Gordon setter -Brittany spaniel -clumber, clumber spaniel -English springer, English springer spaniel -Welsh springer spaniel -cocker spaniel, English cocker spaniel, cocker -Sussex spaniel -Irish water spaniel -kuvasz -schipperke -groenendael -malinois -briard -kelpie -komondor -Old English sheepdog, bobtail -Shetland sheepdog, Shetland sheep dog, Shetland -collie -Border collie -Bouvier des Flandres, Bouviers des Flandres -Rottweiler -German shepherd, German shepherd dog, German police dog, alsatian -Doberman, Doberman pinscher -miniature pinscher -Greater Swiss Mountain dog -Bernese mountain dog -Appenzeller -EntleBucher -boxer -bull mastiff -Tibetan mastiff -French bulldog -Great Dane -Saint Bernard, St Bernard -Eskimo dog, husky -malamute, malemute, Alaskan malamute -Siberian husky -dalmatian, coach dog, carriage dog -affenpinscher, monkey pinscher, monkey dog -basenji -pug, pug-dog -Leonberg -Newfoundland, Newfoundland dog -Great Pyrenees -Samoyed, Samoyede -Pomeranian -chow, chow chow -keeshond -Brabancon griffon -Pembroke, Pembroke Welsh corgi -Cardigan, Cardigan Welsh corgi -toy poodle -miniature poodle -standard poodle -Mexican hairless -timber wolf, grey wolf, gray wolf, Canis lupus -white wolf, Arctic wolf, Canis lupus tundrarum -red wolf, maned wolf, Canis rufus, Canis niger -coyote, prairie wolf, brush wolf, Canis latrans -dingo, warrigal, warragal, Canis dingo -dhole, Cuon alpinus -African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus -hyena, hyaena -red fox, Vulpes vulpes -kit fox, Vulpes macrotis -Arctic fox, white fox, Alopex lagopus -grey fox, gray fox, Urocyon cinereoargenteus -tabby, tabby cat -tiger cat -Persian cat -Siamese cat, Siamese -Egyptian cat -cougar, puma, catamount, mountain lion, painter, panther, Felis concolor -lynx, catamount -leopard, Panthera pardus -snow leopard, ounce, Panthera uncia -jaguar, panther, Panthera onca, Felis onca -lion, king of beasts, Panthera leo -tiger, Panthera tigris -cheetah, chetah, Acinonyx jubatus -brown bear, bruin, Ursus arctos -American black bear, black bear, Ursus americanus, Euarctos americanus -ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus -sloth bear, Melursus ursinus, Ursus ursinus -mongoose -meerkat, mierkat -tiger beetle -ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle -ground beetle, carabid beetle -long-horned beetle, longicorn, longicorn beetle -leaf beetle, chrysomelid -dung beetle -rhinoceros beetle -weevil -fly -bee -ant, emmet, pismire -grasshopper, hopper -cricket -walking stick, walkingstick, stick insect -cockroach, roach -mantis, mantid -cicada, cicala -leafhopper -lacewing, lacewing fly -dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk -damselfly -admiral -ringlet, ringlet butterfly -monarch, monarch butterfly, milkweed butterfly, Danaus plexippus -cabbage butterfly -sulphur butterfly, sulfur butterfly -lycaenid, lycaenid butterfly -starfish, sea star -sea urchin -sea cucumber, holothurian -wood rabbit, cottontail, cottontail rabbit -hare -Angora, Angora rabbit -hamster -porcupine, hedgehog -fox squirrel, eastern fox squirrel, Sciurus niger -marmot -beaver -guinea pig, Cavia cobaya -sorrel -zebra -hog, pig, grunter, squealer, Sus scrofa -wild boar, boar, Sus scrofa -warthog -hippopotamus, hippo, river horse, Hippopotamus amphibius -ox -water buffalo, water ox, Asiatic buffalo, Bubalus bubalis -bison -ram, tup -bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis -ibex, Capra ibex -hartebeest -impala, Aepyceros melampus -gazelle -Arabian camel, dromedary, Camelus dromedarius -llama -weasel -mink -polecat, fitch, foulmart, foumart, Mustela putorius -black-footed ferret, ferret, Mustela nigripes -otter -skunk, polecat, wood pussy -badger -armadillo -three-toed sloth, ai, Bradypus tridactylus -orangutan, orang, orangutang, Pongo pygmaeus -gorilla, Gorilla gorilla -chimpanzee, chimp, Pan troglodytes -gibbon, Hylobates lar -siamang, Hylobates syndactylus, Symphalangus syndactylus -guenon, guenon monkey -patas, hussar monkey, Erythrocebus patas -baboon -macaque -langur -colobus, colobus monkey -proboscis monkey, Nasalis larvatus -marmoset -capuchin, ringtail, Cebus capucinus -howler monkey, howler -titi, titi monkey -spider monkey, Ateles geoffroyi -squirrel monkey, Saimiri sciureus -Madagascar cat, ring-tailed lemur, Lemur catta -indri, indris, Indri indri, Indri brevicaudatus -Indian elephant, Elephas maximus -African elephant, Loxodonta africana -lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens -giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca -barracouta, snoek -eel -coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch -rock beauty, Holocanthus tricolor -anemone fish -sturgeon -gar, garfish, garpike, billfish, Lepisosteus osseus -lionfish -puffer, pufferfish, blowfish, globefish -abacus -abaya -academic gown, academic robe, judge's robe -accordion, piano accordion, squeeze box -acoustic guitar -aircraft carrier, carrier, flattop, attack aircraft carrier -airliner -airship, dirigible -altar -ambulance -amphibian, amphibious vehicle -analog clock -apiary, bee house -apron -ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin -assault rifle, assault gun -backpack, back pack, knapsack, packsack, rucksack, haversack -bakery, bakeshop, bakehouse -balance beam, beam -balloon -ballpoint, ballpoint pen, ballpen, Biro -Band Aid -banjo -bannister, banister, balustrade, balusters, handrail -barbell -barber chair -barbershop -barn -barometer -barrel, cask -barrow, garden cart, lawn cart, wheelbarrow -baseball -basketball -bassinet -bassoon -bathing cap, swimming cap -bath towel -bathtub, bathing tub, bath, tub -beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon -beacon, lighthouse, beacon light, pharos -beaker -bearskin, busby, shako -beer bottle -beer glass -bell cote, bell cot -bib -bicycle-built-for-two, tandem bicycle, tandem -bikini, two-piece -binder, ring-binder -binoculars, field glasses, opera glasses -birdhouse -boathouse -bobsled, bobsleigh, bob -bolo tie, bolo, bola tie, bola -bonnet, poke bonnet -bookcase -bookshop, bookstore, bookstall -bottlecap -bow -bow tie, bow-tie, bowtie -brass, memorial tablet, plaque -brassiere, bra, bandeau -breakwater, groin, groyne, mole, bulwark, seawall, jetty -breastplate, aegis, egis -broom -bucket, pail -buckle -bulletproof vest -bullet train, bullet -butcher shop, meat market -cab, hack, taxi, taxicab -caldron, cauldron -candle, taper, wax light -cannon -canoe -can opener, tin opener -cardigan -car mirror -carousel, carrousel, merry-go-round, roundabout, whirligig -carpenter's kit, tool kit -carton -car wheel -cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM -cassette -cassette player -castle -catamaran -CD player -cello, violoncello -cellular telephone, cellular phone, cellphone, cell, mobile phone -chain -chainlink fence -chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour -chain saw, chainsaw -chest -chiffonier, commode -chime, bell, gong -china cabinet, china closet -Christmas stocking -church, church building -cinema, movie theater, movie theatre, movie house, picture palace -cleaver, meat cleaver, chopper -cliff dwelling -cloak -clog, geta, patten, sabot -cocktail shaker -coffee mug -coffeepot -coil, spiral, volute, whorl, helix -combination lock -computer keyboard, keypad -confectionery, confectionary, candy store -container ship, containership, container vessel -convertible -corkscrew, bottle screw -cornet, horn, trumpet, trump -cowboy boot -cowboy hat, ten-gallon hat -cradle -crane -crash helmet -crate -crib, cot -Crock Pot -croquet ball -crutch -cuirass -dam, dike, dyke -desk -desktop computer -dial telephone, dial phone -diaper, nappy, napkin -digital clock -digital watch -dining table, board -dishrag, dishcloth -dishwasher, dish washer, dishwashing machine -disk brake, disc brake -dock, dockage, docking facility -dogsled, dog sled, dog sleigh -dome -doormat, welcome mat -drilling platform, offshore rig -drum, membranophone, tympan -drumstick -dumbbell -Dutch oven -electric fan, blower -electric guitar -electric locomotive -entertainment center -envelope -espresso maker -face powder -feather boa, boa -file, file cabinet, filing cabinet -fireboat -fire engine, fire truck -fire screen, fireguard -flagpole, flagstaff -flute, transverse flute -folding chair -football helmet -forklift -fountain -fountain pen -four-poster -freight car -French horn, horn -frying pan, frypan, skillet -fur coat -garbage truck, dustcart -gasmask, respirator, gas helmet -gas pump, gasoline pump, petrol pump, island dispenser -goblet -go-kart -golf ball -golfcart, golf cart -gondola -gong, tam-tam -gown -grand piano, grand -greenhouse, nursery, glasshouse -grille, radiator grille -grocery store, grocery, food market, market -guillotine -hair slide -hair spray -half track -hammer -hamper -hand blower, blow dryer, blow drier, hair dryer, hair drier -hand-held computer, hand-held microcomputer -handkerchief, hankie, hanky, hankey -hard disc, hard disk, fixed disk -harmonica, mouth organ, harp, mouth harp -harp -harvester, reaper -hatchet -holster -home theater, home theatre -honeycomb -hook, claw -hoopskirt, crinoline -horizontal bar, high bar -horse cart, horse-cart -hourglass -iPod -iron, smoothing iron -jack-o'-lantern -jean, blue jean, denim -jeep, landrover -jersey, T-shirt, tee shirt -jigsaw puzzle -jinrikisha, ricksha, rickshaw -joystick -kimono -knee pad -knot -lab coat, laboratory coat -ladle -lampshade, lamp shade -laptop, laptop computer -lawn mower, mower -lens cap, lens cover -letter opener, paper knife, paperknife -library -lifeboat -lighter, light, igniter, ignitor -limousine, limo -liner, ocean liner -lipstick, lip rouge -Loafer -lotion -loudspeaker, speaker, speaker unit, loudspeaker system, speaker system -loupe, jeweler's loupe -lumbermill, sawmill -magnetic compass -mailbag, postbag -mailbox, letter box -maillot -maillot, tank suit -manhole cover -maraca -marimba, xylophone -mask -matchstick -maypole -maze, labyrinth -measuring cup -medicine chest, medicine cabinet -megalith, megalithic structure -microphone, mike -microwave, microwave oven -military uniform -milk can -minibus -miniskirt, mini -minivan -missile -mitten -mixing bowl -mobile home, manufactured home -Model T -modem -monastery -monitor -moped -mortar -mortarboard -mosque -mosquito net -motor scooter, scooter -mountain bike, all-terrain bike, off-roader -mountain tent -mouse, computer mouse -mousetrap -moving van -muzzle -nail -neck brace -necklace -nipple -notebook, notebook computer -obelisk -oboe, hautboy, hautbois -ocarina, sweet potato -odometer, hodometer, mileometer, milometer -oil filter -organ, pipe organ -oscilloscope, scope, cathode-ray oscilloscope, CRO -overskirt -oxcart -oxygen mask -packet -paddle, boat paddle -paddlewheel, paddle wheel -padlock -paintbrush -pajama, pyjama, pj's, jammies -palace -panpipe, pandean pipe, syrinx -paper towel -parachute, chute -parallel bars, bars -park bench -parking meter -passenger car, coach, carriage -patio, terrace -pay-phone, pay-station -pedestal, plinth, footstall -pencil box, pencil case -pencil sharpener -perfume, essence -Petri dish -photocopier -pick, plectrum, plectron -pickelhaube -picket fence, paling -pickup, pickup truck -pier -piggy bank, penny bank -pill bottle -pillow -ping-pong ball -pinwheel -pirate, pirate ship -pitcher, ewer -plane, carpenter's plane, woodworking plane -planetarium -plastic bag -plate rack -plow, plough -plunger, plumber's helper -Polaroid camera, Polaroid Land camera -pole -police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria -poncho -pool table, billiard table, snooker table -pop bottle, soda bottle -pot, flowerpot -potter's wheel -power drill -prayer rug, prayer mat -printer -prison, prison house -projectile, missile -projector -puck, hockey puck -punching bag, punch bag, punching ball, punchball -purse -quill, quill pen -quilt, comforter, comfort, puff -racer, race car, racing car -racket, racquet -radiator -radio, wireless -radio telescope, radio reflector -rain barrel -recreational vehicle, RV, R.V. -reel -reflex camera -refrigerator, icebox -remote control, remote -restaurant, eating house, eating place, eatery -revolver, six-gun, six-shooter -rifle -rocking chair, rocker -rotisserie -rubber eraser, rubber, pencil eraser -rugby ball -rule, ruler -running shoe -safe -safety pin -saltshaker, salt shaker -sandal -sarong -sax, saxophone -scabbard -scale, weighing machine -school bus -schooner -scoreboard -screen, CRT screen -screw -screwdriver -seat belt, seatbelt -sewing machine -shield, buckler -shoe shop, shoe-shop, shoe store -shoji -shopping basket -shopping cart -shovel -shower cap -shower curtain -ski -ski mask -sleeping bag -slide rule, slipstick -sliding door -slot, one-armed bandit -snorkel -snowmobile -snowplow, snowplough -soap dispenser -soccer ball -sock -solar dish, solar collector, solar furnace -sombrero -soup bowl -space bar -space heater -space shuttle -spatula -speedboat -spider web, spider's web -spindle -sports car, sport car -spotlight, spot -stage -steam locomotive -steel arch bridge -steel drum -stethoscope -stole -stone wall -stopwatch, stop watch -stove -strainer -streetcar, tram, tramcar, trolley, trolley car -stretcher -studio couch, day bed -stupa, tope -submarine, pigboat, sub, U-boat -suit, suit of clothes -sundial -sunglass -sunglasses, dark glasses, shades -sunscreen, sunblock, sun blocker -suspension bridge -swab, swob, mop -sweatshirt -swimming trunks, bathing trunks -swing -switch, electric switch, electrical switch -syringe -table lamp -tank, army tank, armored combat vehicle, armoured combat vehicle -tape player -teapot -teddy, teddy bear -television, television system -tennis ball -thatch, thatched roof -theater curtain, theatre curtain -thimble -thresher, thrasher, threshing machine -throne -tile roof -toaster -tobacco shop, tobacconist shop, tobacconist -toilet seat -torch -totem pole -tow truck, tow car, wrecker -toyshop -tractor -trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi -tray -trench coat -tricycle, trike, velocipede -trimaran -tripod -triumphal arch -trolleybus, trolley coach, trackless trolley -trombone -tub, vat -turnstile -typewriter keyboard -umbrella -unicycle, monocycle -upright, upright piano -vacuum, vacuum cleaner -vase -vault -velvet -vending machine -vestment -viaduct -violin, fiddle -volleyball -waffle iron -wall clock -wallet, billfold, notecase, pocketbook -wardrobe, closet, press -warplane, military plane -washbasin, handbasin, washbowl, lavabo, wash-hand basin -washer, automatic washer, washing machine -water bottle -water jug -water tower -whiskey jug -whistle -wig -window screen -window shade -Windsor tie -wine bottle -wing -wok -wooden spoon -wool, woolen, woollen -worm fence, snake fence, snake-rail fence, Virginia fence -wreck -yawl -yurt -web site, website, internet site, site -comic book -crossword puzzle, crossword -street sign -traffic light, traffic signal, stoplight -book jacket, dust cover, dust jacket, dust wrapper -menu -plate -guacamole -consomme -hot pot, hotpot -trifle -ice cream, icecream -ice lolly, lolly, lollipop, popsicle -French loaf -bagel, beigel -pretzel -cheeseburger -hotdog, hot dog, red hot -mashed potato -head cabbage -broccoli -cauliflower -zucchini, courgette -spaghetti squash -acorn squash -butternut squash -cucumber, cuke -artichoke, globe artichoke -bell pepper -cardoon -mushroom -Granny Smith -strawberry -orange -lemon -fig -pineapple, ananas -banana -jackfruit, jak, jack -custard apple -pomegranate -hay -carbonara -chocolate sauce, chocolate syrup -dough -meat loaf, meatloaf -pizza, pizza pie -potpie -burrito -red wine -espresso -cup -eggnog -alp -bubble -cliff, drop, drop-off -coral reef -geyser -lakeside, lakeshore -promontory, headland, head, foreland -sandbar, sand bar -seashore, coast, seacoast, sea-coast -valley, vale -volcano -ballplayer, baseball player -groom, bridegroom -scuba diver -rapeseed -daisy -yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum -corn -acorn -hip, rose hip, rosehip -buckeye, horse chestnut, conker -coral fungus -agaric -gyromitra -stinkhorn, carrion fungus -earthstar -hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa -bolete -ear, spike, capitulum -toilet tissue, toilet paper, bathroom tissue diff --git a/functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionExample.java b/functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionExample.java deleted file mode 100644 index 4f441f53..00000000 --- a/functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionExample.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.image.recognition; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.io.IOUtils; - -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; -import org.springframework.cloud.fn.common.tensorflow.deprecated.JsonMapperFunction; - -/** - * @author Christian Tzolov - */ -public final class ImageRecognitionExample { - - private ImageRecognitionExample() { - - } - - public static void main(String[] args) throws IOException { - - // You can use file:, http: or classpath: to provide the path to the input image. - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/giant_panda_in_beijing_zoo_1.jpg"); - - // MmobileNetV2 models - // https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet#pretrained-models - String mobilenet_v2_modelUri = "https://storage.googleapis.com/mobilenet_v2/checkpoints/mobilenet_v2_1.4_224.tgz#mobilenet_v2_1.4_224_frozen.pb"; - //String mobilenet_v2_modelUri = "https://storage.googleapis.com/mobilenet_v2/checkpoints/mobilenet_v2_0.35_96.tgz#mobilenet_v2_0.35_96_frozen.pb"; - try (ImageRecognition imageRecognition = ImageRecognition.mobileNetV2( - mobilenet_v2_modelUri, - 224, - 5, - true)) { - - List recognizedObjects = - ImageRecognition.toRecognitionResponse(imageRecognition.recognizeTopK(inputImage)); - - // Draw the predicted labels on top of the input image. - byte[] augmentedImage = new ImageRecognitionAugmenter().apply(inputImage, recognizedObjects); - IOUtils.write(augmentedImage, new FileOutputStream("./image-recognition/target/image-augmented-mobilnetV2.jpg")); - - - String jsonRecognizedObjects = new JsonMapperFunction().apply(recognizedObjects); - System.out.println("mobilnetV2 result:" + jsonRecognizedObjects); - } - - - String mobilenet_v1_modelUri = "https://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224.tgz#mobilenet_v1_1.0_224_frozen.pb"; - try (ImageRecognition recognitionService = ImageRecognition.mobileNetV1( - mobilenet_v1_modelUri, - 224, - 5, - true)) { - - List recognizedObjects = - ImageRecognition.toRecognitionResponse(recognitionService.recognizeTopK(inputImage)); - - // Draw the predicted labels on top of the input image. - byte[] augmentedImage = new ImageRecognitionAugmenter().apply(inputImage, recognizedObjects); - IOUtils.write(augmentedImage, new FileOutputStream("./image-recognition/target/image-augmented-mobilnetV1.jpg")); - - - String jsonRecognizedObjects = new JsonMapperFunction().apply(recognizedObjects); - System.out.println("mobilnetV1 result:" + jsonRecognizedObjects); - } - - String inception_modelUri = "https://storage.googleapis.com/scdf-tensorflow-models/image-recognition/tensorflow_inception_graph.pb"; - try (ImageRecognition recognitionService = ImageRecognition.inception( - inception_modelUri, - 224, - 5, - true)) { - - List recognizedObjects = - ImageRecognition.toRecognitionResponse(recognitionService.recognizeTopK(inputImage)); - - // Draw the predicted labels on top of the input image. - byte[] augmentedImage = new ImageRecognitionAugmenter().apply(inputImage, recognizedObjects); - IOUtils.write(augmentedImage, new FileOutputStream("./image-recognition/target/image-augmented-inception.jpg")); - - - String jsonRecognizedObjects = new JsonMapperFunction().apply(recognizedObjects); - System.out.println("inception result:" + jsonRecognizedObjects); - } - } -} diff --git a/functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionExample2.java b/functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionExample2.java deleted file mode 100644 index 089927b3..00000000 --- a/functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/ImageRecognitionExample2.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.image.recognition; - -import java.io.FileOutputStream; -import java.io.IOException; - -import org.apache.commons.io.IOUtils; - -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; - -/** - * @author Christian Tzolov - */ -public final class ImageRecognitionExample2 { - - private ImageRecognitionExample2() { - - } - - public static void main(String[] args) throws IOException { - - ImageRecognitionAugmenter augmenter = new ImageRecognitionAugmenter(); - - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/giant_panda_in_beijing_zoo_1.jpg"); - - ImageRecognition inceptions = ImageRecognition.inception( - "https://storage.googleapis.com/scdf-tensorflow-models/image-recognition/tensorflow_inception_graph.pb", - 224, 10, true); - System.out.println(inceptions.recognizeMax(inputImage)); - System.out.println(inceptions.recognizeTopK(inputImage)); - System.out.println(ImageRecognition.toRecognitionResponse(inceptions.recognizeTopK(inputImage))); - - IOUtils.write(augmenter.apply(inputImage, ImageRecognition.toRecognitionResponse(inceptions.recognizeTopK(inputImage))), - new FileOutputStream("./functions/function/image-recognition-function/target/image-augmented-inceptions.jpg")); - inceptions.close(); - - ImageRecognition mobileNetV2 = ImageRecognition.mobileNetV2( - "https://storage.googleapis.com/mobilenet_v2/checkpoints/mobilenet_v2_1.4_224.tgz#mobilenet_v2_1.4_224_frozen.pb", - 224, 10, true); - System.out.println(mobileNetV2.recognizeMax(inputImage)); - System.out.println(mobileNetV2.recognizeTopK(inputImage)); - IOUtils.write(augmenter.apply(inputImage, ImageRecognition.toRecognitionResponse(mobileNetV2.recognizeTopK(inputImage))), - new FileOutputStream("./functions/function/image-recognition-function/target/image-augmented-mobilnetV2.jpg")); - mobileNetV2.close(); - - ImageRecognition mobileNetV1 = ImageRecognition.mobileNetV1( - "https://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224.tgz#mobilenet_v1_1.0_224_frozen.pb", - 224, 10, true); - System.out.println(mobileNetV1.recognizeMax(inputImage)); - System.out.println(mobileNetV1.recognizeTopK(inputImage)); - IOUtils.write(augmenter.apply(inputImage, ImageRecognition.toRecognitionResponse(mobileNetV1.recognizeTopK(inputImage))), - new FileOutputStream("./functions/function/image-recognition-function/target/image-augmented-mobilnetV1.jpg")); - mobileNetV1.close(); - } -} diff --git a/functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/SavedModelTest.java b/functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/SavedModelTest.java deleted file mode 100644 index 8af8c42b..00000000 --- a/functions/function/image-recognition-function/src/test/java/org/springframework/cloud/fn/image/recognition/SavedModelTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.image.recognition; - -import java.util.Map; - - -import com.google.protobuf.InvalidProtocolBufferException; -import org.tensorflow.SavedModelBundle; -import org.tensorflow.framework.MetaGraphDef; -import org.tensorflow.framework.SignatureDef; - -/** - * @author Christian Tzolov - */ -public final class SavedModelTest { - - private SavedModelTest() { - - } - - /** - * https://medium.com/@jsflo.dev/saving-and-loading-a-tensorflow-model-using-the-savedmodel-api-17645576527 - * - * https://www.tensorflow.org/alpha/guide/saved_model - * - */ - public static void main(String[] args) throws InvalidProtocolBufferException { - SavedModelBundle savedModelBundle = - SavedModelBundle.load("/Users/ctzolov/Downloads/ssd_mobilenet_v1_coco_2017_11_17/saved_model", "serve"); - //SavedModelBundle.load("/Users/ctzolov/Downloads/aiy_vision_classifier_plants_V1_1/", "serve"); - //SavedModelBundle savedModelBundle = - // SavedModelBundle.load("/Users/ctzolov/Downloads/mnasnet-a1/saved_model", "serve"); - - MetaGraphDef meta = MetaGraphDef.parseFrom(savedModelBundle.metaGraphDef()); - - Map signatures = meta.getSignatureDefMap(); - - System.out.println(signatures); - - savedModelBundle.session(); - - //Iterator itr = savedModelBundle.graph().operations(); - // - //while (itr.hasNext()) { - // System.out.println("Operation: " + itr.next()); - //} - } -} diff --git a/functions/function/image-recognition-function/src/test/resources/images/giant_panda_in_beijing_zoo_1.jpg b/functions/function/image-recognition-function/src/test/resources/images/giant_panda_in_beijing_zoo_1.jpg deleted file mode 100644 index e7a44cae2c2b091095ba6b5f7ce659cce55651ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116068 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≫lF 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%0Dll^5?Xk2 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 into JSON objects and the -https://github.com/spring-cloud/stream-applications/blob/master/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionImageAugmenter.java[ObjectDetectionImageAugmenter] -allow to augment the input image with the detected bounding boxes and segmentation masks. -|=== - -## Usage - -Add the `object-detection` dependency to the pom (use the latest version available): - -[source,xml] ----- - - org.springframework.cloud.fn - object-detection-function - ${revision} - ----- - -#### Example 1: Object Detection - -The https://github.com/spring-cloud/stream-applications/blob/master/functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/ExampleObjectDetection.java[ExampleObjectDetection.java] -sample demonstrates how to use the `ObjectDetectionService` for detecting objects in input images. It also shows how to -convert the result into JSON format and augment the input image with the detected object bounding boxes. - -[source,java,linenums] ----- -ObjectDetectionService detectionService = new ObjectDetectionService( - "https://download.tensorflow.org/models/object_detection/faster_rcnn_nas_coco_2018_01_28.tar.gz#frozen_inference_graph.pb", //<1> - "https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/mscoco_label_map.pbtxt", //<2> - 0.4f, //<3> - false, //<4> - true); //<5> - -byte[] image = GraphicsUtils.loadAsByteArray("classpath:/images/object-detection.jpg"); //<6> - -List detectedObjects = detectionService.detect(image); //<7> ----- -<1> Downloads and loads a pre-trained `frozen_inference_graph.pb` model directly from the `faster_rcnn_nas_coco.tar.gz` archive in the -Tensorflow model zoo. Mind that on first attempt it will download few hundreds of MBs. The consecutive runs will use the -cached copy (5) instead. -<2> Object category labels (e.g. names) for the model -<3> Confidence threshold - Only object with estimate above the threshold are returned -<4> Indicate that this is not a `mask` (e.g. not an instance segmentation) model type -<5> Cache the model on the local file system. -<6> Load the input image to evaluate -<7> Detect the objects in the image and represent the result as a list of ObjectDetection instances. - -Next you can convert the result in JSON format. - -[source,java,linenums] ----- -String jsonObjectDetections = new JsonMapperFunction().apply(detectedObjects); -System.out.println(jsonObjectDetections); ----- - -.Sample Object Detection JSON representation -[source,json] ----- -[{"name":"person","estimate":0.998,"x1":0.160,"y1":0.774,"x2":0.201,"y2":0.946,"cid":1}, - {"name":"kite","estimate":0.998,"x1":0.437,"y1":0.089,"x2":0.495,"y2":0.169,"cid":38}, - {"name":"person","estimate":0.997,"x1":0.084,"y1":0.681,"x2":0.121,"y2":0.848,"cid":1}, - {"name":"kite","estimate":0.988,"x1":0.206,"y1":0.263,"x2":0.225,"y2":0.314,"cid":38}]] ----- - -Use the https://github.com/spring-cloud/stream-applications/blob/master/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionImageAugmenter.java[ObjectDetectionImageAugmenter] -to draw the detected objects on top of the input image. - -[source,java,linenums] ----- -byte[] annotatedImage = new ObjectDetectionImageAugmenter().apply(image, detectedObjects); // <1> -IOUtils.write(annotatedImage, new FileOutputStream("./object-detection-function/target/object-detection-augmented.jpg")); //<2> ----- -<1> Augment the image with the detected object bounding boxes (Uses Java2D internally). -<2> Stores the augmented image as `object-detection-augmented.jpg` image file. - -.Augmented object-detection-augmented.jpg file -image:{images-asciidoc}/object-detection-augmented.jpg[alt=Object Detection, width=60%] - -TIP: Set the `ObjectDetectionImageAugmenter#agnosticColors` property to `true` to use a monochrome color schema. - -#### Example 2: Instance Segmentation - -The https://github.com/spring-cloud/stream-applications/blob/master/functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/ExampleInstanceSegmentation.java[ExampleInstanceSegmentation.java] -sample shows how to use the `ObjectDetectionService` for `Instance Segmentation`. -NOTE: It requires a trained model that supports `Masks` as well as setting the instance segmentation (e.g. `useMasks`) flag to `true`. - -[source,java,linenums] ----- -ObjectDetectionService detectionService = new ObjectDetectionService( - "https://download.tensorflow.org/models/object_detection/mask_rcnn_inception_resnet_v2_atrous_coco_2018_01_28.tar.gz#frozen_inference_graph.pb", // <1> - "https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/mscoco_label_map.pbtxt", // <2> - 0.4f, // <3> - true, // <4> - true); // <5> - -byte[] image = GraphicsUtils.loadAsByteArray("classpath:/images/object-detection.jpg"); - -List detectedObjects = detectionService.detect(image); // <6> - -String jsonObjectDetections = new JsonMapperFunction().apply(detectedObjects); // <7> -System.out.println(jsonObjectDetections); - -byte[] annotatedImage = new ObjectDetectionImageAugmenter(true) // <8> - .apply(image, detectedObjects); -IOUtils.write(annotatedImage, new FileOutputStream("./object-detection-function/target/object-detection-segmentation-augmented.jpg")); ----- -<1> Uses one of the 4 MASK pre-trained models -<2> Object category labels (e.g. names) for the model -<3> Confidence threshold - Only object with estimate above the threshold are returned. -<4> Use masks output - For the pre-trained models instruct to use the extended fetch names that include instance segmentation masks as well. -<5> Cache model - Create a local copy of the model to speed up consecutive runs. -<6> Evaluate the model to predict the object in the input image. -<7> Convert the detected object in to JSON array. NOTE: that with mask there is an additional field: `mask` -<8> Draw the detected object on top of the input image. Mind the `true` constructor parameter stands for draw detected masks. -If false only the bounding boxes will be shown. - -.Result augmented object-detection-segmentation-augmented.jpg file -image:{images-asciidoc}/object-detection-segmentation-augmented.jpg[alt=Object Detection Augmented, width=60%] - -## Models -All pre-trained https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md[detection_model_zoo.md] -models are supported. Following URI notation can be used to download any of the models directly from the zoo. - ----- -http://#frozen_inference_graph.pb ----- - -The `frozen_inference_graph.pb` is the frozen model file name within the archive. - -NOTE: For some models this name may differ. You have to download and open the archive to find the real name. - -TIP: To speedup the bootstrap performance you may consider extracting the `frozen_inference_graph.pb` and caching it -locally. Then you can use the `file://path-to-my-local-copy` URI schema to access it. - -Following models can be used for `Instance Segmentation` as well: - -[frame=none, grid=none] -|=== -| https://download.tensorflow.org/models/object_detection/mask_rcnn_inception_resnet_v2_atrous_coco_2018_01_28.tar.gz[mask_rcnn_inception_resnet_v2_atrous_coco_2018_01_28.tar.gz] -| https://download.tensorflow.org/models/object_detection/mask_rcnn_inception_v2_coco_2018_01_28.tar.gz[mask_rcnn_inception_v2_coco_2018_01_28.tar.gz] -| https://download.tensorflow.org/models/object_detection/mask_rcnn_resnet101_atrous_coco_2018_01_28.tar.gz[mask_rcnn_resnet101_atrous_coco_2018_01_28.tar.gz] -| https://download.tensorflow.org/models/object_detection/mask_rcnn_resnet50_atrous_coco_2018_01_28.tar.gz[mask_rcnn_resnet50_atrous_coco_2018_01_28.tar.gz] -|=== - -In addition to the model, the `ObjectDetectionService` requires a list of labels that correspond to the categories detectable by the selected model. -All labels files are available in the https://github.com/tensorflow/models/tree/master/research/object_detection/data[object_detection/data] folder. - -NOTE: It is important to use the labels that correspond to the model being used! Table below highlights this mapping. - -.Relationsip between trained model types and category labels -[%header, cols="1,2", frame=none, grid=none] -|=== -| Model -| Labels - -| https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md#coco-trained-models[coco] -| https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/mscoco_label_map.pbtxt[mscoco_label_map.pbtxt] - -| https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md#kitti-trained-models[kitti] -| https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/kitti_label_map.pbtxt[kitti_label_map.pbtxt] - -| https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md#open-images-trained-models[open-images] -| https://github.com/tensorflow/models/blob/master/research/object_detection/data/oid_bbox_trainable_label_map.pbtxt[oid_bbox_trainable_label_map.pbtxt] - -| https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md#inaturalist-species-trained-models[inaturalist-species] -| https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/fgvc_2854_classes_label_map.pbtxt[fgvc_2854_classes_label_map.pbtxt] - -| https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md#ava-v21-trained-models[ava] -| https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/ava_label_map_v2.1.pbtxt[ava_label_map_v2.1.pbtxt] - -|=== - -TIP: For performance reasons you may consider downloading the required label files to the local file system. diff --git a/functions/function/object-detection-function/pom.xml b/functions/function/object-detection-function/pom.xml deleted file mode 100644 index 8d71f5c7..00000000 --- a/functions/function/object-detection-function/pom.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionImageAugmenter.java b/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionImageAugmenter.java deleted file mode 100644 index 76fd15d3..00000000 --- a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionImageAugmenter.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.object.detection; - -import java.awt.Color; -import java.awt.image.BufferedImage; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.util.List; -import java.util.function.BiFunction; - -import javax.imageio.ImageIO; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; -import org.springframework.cloud.fn.object.detection.domain.ObjectDetection; -import org.springframework.util.CollectionUtils; - -/** - * Augment the input image fromMemory detected object bounding boxes and categories. - * For mask models and withMask set to true it draws the instance segmentation image as well. - * - * @author Christian Tzolov - */ -public class ObjectDetectionImageAugmenter implements BiFunction, byte[]> { - - private static final Log logger = LogFactory.getLog(ObjectDetectionImageAugmenter.class); - - /** Make checkstyle happy. **/ - public static final String DEFAULT_IMAGE_FORMAT = "jpg"; - - private String imageFormat = DEFAULT_IMAGE_FORMAT; - - private final boolean withMask; - private boolean agnosticColors = false; - - public ObjectDetectionImageAugmenter() { - this(false); - } - - public ObjectDetectionImageAugmenter(boolean withMask) { - this.withMask = withMask; - } - - public boolean isAgnosticColors() { - return agnosticColors; - } - - public void setAgnosticColors(boolean agnosticColors) { - this.agnosticColors = agnosticColors; - } - - public String getImageFormat() { - return imageFormat; - } - - public void setImageFormat(String imageFormat) { - this.imageFormat = imageFormat; - } - - @Override - public byte[] apply(byte[] imageBytes, List objectDetections) { - - if (!CollectionUtils.isEmpty(objectDetections)) { - try { - BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(imageBytes)); - - for (ObjectDetection od : objectDetections) { - int y1 = (int) (od.getY1() * (float) bufferedImage.getHeight()); - int x1 = (int) (od.getX1() * (float) bufferedImage.getWidth()); - int y2 = (int) (od.getY2() * (float) bufferedImage.getHeight()); - int x2 = (int) (od.getX2() * (float) bufferedImage.getWidth()); - - int cid = od.getCid(); - - String labelName = od.getName(); - int probability = (int) (100 * od.getConfidence()); - String title = labelName + ": " + probability + "%"; - - GraphicsUtils.drawBoundingBox(bufferedImage, cid, title, x1, y1, x2, y2, this.agnosticColors); - - if (this.withMask && od.getMask() != null) { - float[][] mask = od.getMask(); - if (mask != null) { - Color maskColor = this.agnosticColors ? null : GraphicsUtils.getClassColor(cid); - BufferedImage maskImage = GraphicsUtils.createMaskImage( - mask, x2 - x1, y2 - y1, maskColor); - GraphicsUtils.overlayImages(bufferedImage, maskImage, x1, y1); - } - } - } - - imageBytes = GraphicsUtils.toImageByteArray(bufferedImage, this.getImageFormat()); - } - catch (IOException e) { - logger.error(e); - } - } - - // Null mend that QR image is found and not output message will be send. - return imageBytes; - } -} diff --git a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputAdapter.java b/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputAdapter.java deleted file mode 100644 index 1dfff4e4..00000000 --- a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputAdapter.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.object.detection; - -import java.util.Collections; -import java.util.Map; -import java.util.function.Function; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.tensorflow.Operand; -import org.tensorflow.Tensor; -import org.tensorflow.op.core.Placeholder; -import org.tensorflow.op.image.DecodeJpeg; -import org.tensorflow.types.UInt8; - -import org.springframework.cloud.fn.common.tensorflow.GraphRunner; - -/** - * Converts byte array image into a input Tensor for the Object Detection API. - * - * @author Christian Tzolov - */ -public class ObjectDetectionInputAdapter implements Function>>, AutoCloseable { - - private static final Log logger = LogFactory.getLog(ObjectDetectionInputAdapter.class); - - /** Make checkstyle happy. **/ - public static final String RAW_IMAGE = "raw_image"; - /** Make checkstyle happy. **/ - public static final String NORMALIZED_IMAGE = "normalized_image"; - /** Make checkstyle happy. **/ - public static final long CHANNELS = 3; - - private final GraphRunner imageLoaderGraph; - - public ObjectDetectionInputAdapter() { - - this.imageLoaderGraph = new GraphRunner(RAW_IMAGE, NORMALIZED_IMAGE) - .withGraphDefinition(tf -> { - Placeholder rawImage = tf.withName(RAW_IMAGE).placeholder(String.class); - Operand decodedImage = tf.dtypes.cast( - tf.image.decodeJpeg(rawImage, DecodeJpeg.channels(CHANNELS)), UInt8.class); - // Expand dimensions since the model expects images to have shape: [1, H, W, 3] - tf.withName(NORMALIZED_IMAGE).expandDims(decodedImage, tf.constant(0)); - }); - } - - @Override - public Map> apply(byte[] inputImage) { - try (Tensor inputTensor = Tensor.create(inputImage)) { - return this.imageLoaderGraph.apply(Collections.singletonMap(RAW_IMAGE, inputTensor)); - } - } - - @Override - public void close() { - if (this.imageLoaderGraph != null) { - this.imageLoaderGraph.close(); - } - } -} diff --git a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputConverter.java b/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputConverter.java deleted file mode 100644 index 7f55e593..00000000 --- a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionInputConverter.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.object.detection; - -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferByte; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.Collections; -import java.util.Map; -import java.util.function.Function; - -import javax.imageio.ImageIO; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.tensorflow.Tensor; -import org.tensorflow.types.UInt8; - -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; - -/** - * Converts byte array image into a input Tensor for the Object Detection API. The computed image tensors uses the - * 'image_tensor' model placeholder. - * - * @author Christian Tzolov - */ -public class ObjectDetectionInputConverter implements Function>> { - - private static final Log logger = LogFactory.getLog(ObjectDetectionInputConverter.class); - - private static final long CHANNELS = 3; - - /** Make checkstyle happy. **/ - public static final String IMAGE_TENSOR_FEED_NAME = "image_tensor"; - - @Override - public Map> apply(byte[][] input) { - return Collections.singletonMap(IMAGE_TENSOR_FEED_NAME, makeImageTensor(input)); - } - - private static Tensor makeImageTensor(byte[][] imageBytesArray) { - try { - int batchSize = imageBytesArray.length; - ByteBuffer byteBuffer = null; - long[] shape = null; - for (int batchIndex = 0; batchIndex < batchSize; batchIndex++) { - byte[] imageBytes = imageBytesArray[batchIndex]; - ByteArrayInputStream is = new ByteArrayInputStream(imageBytes); - BufferedImage img = ImageIO.read(is); - - if (img.getType() != BufferedImage.TYPE_3BYTE_BGR) { - img = GraphicsUtils.toBufferedImageType(img, BufferedImage.TYPE_3BYTE_BGR); - } - - if (byteBuffer == null) { - byteBuffer = ByteBuffer.allocate((int) (batchSize * img.getHeight() * img.getWidth() * CHANNELS)); - shape = new long[] { batchSize, img.getHeight(), img.getWidth(), CHANNELS }; - } - - byte[] data = ((DataBufferByte) img.getData().getDataBuffer()).getData(); - // ImageIO.read produces BGR-encoded images, while the model expects RGB. - bgrToRgb(data); - byteBuffer.put(data); - } - byteBuffer.flip(); - - return Tensor.create(UInt8.class, shape, byteBuffer); - } - catch (IOException e) { - throw new IllegalArgumentException("Incorrect image format", e); - } - - } - - private static void bgrToRgb(byte[] data) { - for (int i = 0; i < data.length; i += 3) { - byte tmp = data[i]; - data[i] = data[i + 2]; - data[i + 2] = tmp; - } - } -} diff --git a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionOutputConverter.java b/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionOutputConverter.java deleted file mode 100644 index f913c6ad..00000000 --- a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionOutputConverter.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.object.detection; - -import java.io.InputStream; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Map; -import java.util.function.Function; - -import com.google.protobuf.TextFormat; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.tensorflow.Tensor; - -import org.springframework.cloud.fn.object.detection.domain.ObjectDetection; -import org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapOuterClass; -import org.springframework.core.io.Resource; -import org.springframework.util.Assert; -import org.springframework.util.StreamUtils; -import org.springframework.util.StringUtils; - -/** - * Converts the Tensorflow Object Detection result into {@link ObjectDetection} list. - * The pre-trained Object Detection models (http://bit.ly/2osxMAY) produce 3 tensor outputs: - * (1) detection_classes - containing the ids of detected objects, (2) detection_scores - confidence probabilities of the - * detected object and (3) detection_boxes - the object bounding boxes withing the images. - * - * The MASK based models provide to 2 additional tensors: (4) num_detections and (5) detection_masks. - * - * All outputs tensors are float arrays, having: - * - 1 as the first dimension - * - maxObjects as the second dimension - * While boxesT will have 4 as the third dimension (2 sets of (x, y) coordinates). - * This can be verified by looking at scoresT.shape() etc. - * - * The format detected classes (e.g. labels) names is defined by the 'string_int_labels_map.proto'. The input list - * is available at: https://github.com/tensorflow/models/tree/master/research/object_detection/data - * - * @author Christian Tzolov - */ -public class ObjectDetectionOutputConverter implements Function>, List>> { - - private static final Log logger = LogFactory.getLog(ObjectDetectionOutputConverter.class); - - /** DETECTION_CLASSES. */ - public static final String DETECTION_CLASSES = "detection_classes"; - /** DETECTION_SCORES. */ - public static final String DETECTION_SCORES = "detection_scores"; - /** DETECTION_BOXES. */ - public static final String DETECTION_BOXES = "detection_boxes"; - /** DETECTION_MASKS. */ - public static final String DETECTION_MASKS = "detection_masks"; - /** NUM_DETECTIONS. */ - public static final String NUM_DETECTIONS = "num_detections"; - - private final String[] labels; - private float confidence; - private List modelFetch; - - public ObjectDetectionOutputConverter(Resource labelsResource, float confidence, List modelFetch) { - this.confidence = confidence; - this.modelFetch = modelFetch; - try { - this.labels = loadLabels(labelsResource); - Assert.notNull(this.labels, String.format("Failed to initialize object labels [%s].", labelsResource)); - } - catch (Exception e) { - throw new RuntimeException(String.format("Failed to initialize object labels [%s].", labelsResource), e); - } - - logger.info(String.format("Object labels [%s] loaded.", labelsResource)); - } - - /** - * Loads object labels in the string_int_label_map.proto. - * @param labelsResource location of the labels as a resource - * @return String[] of labels - */ - private static String[] loadLabels(Resource labelsResource) throws Exception { - try (InputStream is = labelsResource.getInputStream()) { - String text = StreamUtils.copyToString(is, Charset.forName("UTF-8")); - StringIntLabelMapOuterClass.StringIntLabelMap.Builder builder = - StringIntLabelMapOuterClass.StringIntLabelMap.newBuilder(); - TextFormat.merge(text, builder); - StringIntLabelMapOuterClass.StringIntLabelMap proto = builder.build(); - - int maxLabelId = proto.getItemList().stream() - .map(StringIntLabelMapOuterClass.StringIntLabelMapItem::getId) - .max(Comparator.comparing(i -> i)) - .orElse(-1); - - String[] labelIdToNameMap = new String[maxLabelId + 1]; - for (StringIntLabelMapOuterClass.StringIntLabelMapItem item : proto.getItemList()) { - if (!StringUtils.isEmpty(item.getDisplayName())) { - labelIdToNameMap[item.getId()] = item.getDisplayName(); - } - else { - // Common practice is to set the name to a MID or Synsets Id. Synset is a set of synonyms that - // share a common meaning: https://en.wikipedia.org/wiki/WordNet - labelIdToNameMap[item.getId()] = item.getName(); - } - } - return labelIdToNameMap; - } - } - - @Override - public List> apply(Map> tensorMap) { - - try (Tensor scoresTensor = tensorMap.get(DETECTION_SCORES).expect(Float.class); - Tensor classesTensor = tensorMap.get(DETECTION_CLASSES).expect(Float.class); - Tensor boxesTensor = tensorMap.get(DETECTION_BOXES).expect(Float.class) - ) { - // All these tensors have: - // - 1 as the first dimension - // - maxObjects as the second dimension - // While boxesT will have 4 as the third dimension (2 sets of (x, y) coordinates). - // This can be verified by looking at scoresT.shape() etc. - int batchSize = (int) scoresTensor.shape()[0]; - int maxObjects = (int) scoresTensor.shape()[1]; - float[][] scores = scoresTensor.copyTo(new float[batchSize][maxObjects]); - float[][] classes = classesTensor.copyTo(new float[batchSize][maxObjects]); - float[][][] boxes = boxesTensor.copyTo(new float[batchSize][maxObjects][4]); - - List> batchObjectDetections = new ArrayList<>(); - - for (int batchIndex = 0; batchIndex < batchSize; batchIndex++) { - - - List objectDetections = new ArrayList<>(); - - // Collect only the objects whose scores are at above the configured confidence threshold. - for (int i = 0; i < scores[batchIndex].length; ++i) { - if (scores[batchIndex][i] >= confidence) { - String category = labels[(int) classes[batchIndex][i]]; - float score = scores[batchIndex][i]; - - ObjectDetection od = new ObjectDetection(); - od.setName(category); - od.setConfidence(score); - od.setX1(boxes[batchIndex][i][1]); - od.setY1(boxes[batchIndex][i][0]); - od.setX2(boxes[batchIndex][i][3]); - od.setY2(boxes[batchIndex][i][2]); - od.setCid((int) classes[batchIndex][i]); - - // Mask allows image-segmentation - if (modelFetch.contains(DETECTION_MASKS) && modelFetch.contains(NUM_DETECTIONS)) { - Tensor masksTensor = tensorMap.get(DETECTION_MASKS).expect(Float.class); - Tensor numDetections = tensorMap.get(NUM_DETECTIONS).expect(Float.class); - float nd = numDetections.copyTo(new float[batchSize])[0]; - - if (masksTensor != null) { - long[] shape = masksTensor.shape(); - float[][][][] masks = masksTensor.copyTo(new float[(int) shape[0]][(int) shape[1]][(int) shape[2]][(int) shape[3]]); - od.setMask(masks[batchIndex][i]); - logger.debug(String.format("Num detections: %s, Masks: %s", nd, masks)); - } - } - - objectDetections.add(od); - } - } - - batchObjectDetections.add(objectDetections); - } - return batchObjectDetections; - } - } -} diff --git a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionService.java b/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionService.java deleted file mode 100644 index 2b3fa10b..00000000 --- a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionService.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.object.detection; - -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.List; - -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; -import org.springframework.cloud.fn.common.tensorflow.deprecated.TensorFlowService; -import org.springframework.cloud.fn.object.detection.domain.ObjectDetection; -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.util.StreamUtils; - -/** - * Convenience class that leverages the the {@link ObjectDetectionInputConverter}, {@link ObjectDetectionOutputConverter} and {@link TensorFlowService} - * in combination fromMemory the Tensorflow Object Detection API (https://github.com/tensorflow/models/tree/master/research/object_detection) - * models for detection objects in input images. - * - * All pre-trained models (https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md) and labels are supported. - * - * You can download pre-trained models directly from the zoo: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md - * Just use the URI notation: (zoo model tar.gz url)#(name of the frozen model file name). To speedup the bootstrap - * performance you should consider downloading the models locally and use the file:/"path to my model" URI instead! - * - * The object category labels for the pre-trained models are available at: https://github.com/tensorflow/models/tree/master/research/object_detection/data - * Use the labels applicable for the model. Also, for performance reasons you may consider to download the labels - * and load them from file: instead. - * - * @author Christian Tzolov - */ -public class ObjectDetectionService { - - /** Default list of fetch names for Box models. */ - public static List FETCH_NAMES = Arrays.asList( - ObjectDetectionOutputConverter.DETECTION_SCORES, ObjectDetectionOutputConverter.DETECTION_CLASSES, - ObjectDetectionOutputConverter.DETECTION_BOXES, ObjectDetectionOutputConverter.NUM_DETECTIONS); - - /** Default list of fetch names for mask supporting models. */ - public static List FETCH_NAMES_WITH_MASKS = Arrays.asList( - ObjectDetectionOutputConverter.DETECTION_SCORES, ObjectDetectionOutputConverter.DETECTION_CLASSES, - ObjectDetectionOutputConverter.DETECTION_BOXES, ObjectDetectionOutputConverter.DETECTION_MASKS, - ObjectDetectionOutputConverter.NUM_DETECTIONS); - - private final ObjectDetectionInputConverter inputConverter; - private final ObjectDetectionOutputConverter outputConverter; - private final TensorFlowService tensorFlowService; - - public ObjectDetectionService() { - this("https://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz#frozen_inference_graph.pb", - "https://storage.googleapis.com/scdf-tensorflow-models/object-detection/mscoco_label_map.pbtxt", - 0.4f, false, true); - } - - /** - * Convenience constructor that would initialize all necessary internal components. - * @param modelUri URI of the pre-trained, frozen Tensorflow model. - * @param labelsUri URI of the pre-trained category labels. - * @param confidence Confidence threshold. Only objects detected wth confidence above this threshold will be returned. - * @param withMasks If a Mask model is selected then you can use this flag to extract the instance segmentation masks as well. - */ - public ObjectDetectionService(String modelUri, String labelsUri, - float confidence, boolean withMasks, boolean cacheModel) { - this.inputConverter = new ObjectDetectionInputConverter(); - List fetchNames = withMasks ? FETCH_NAMES_WITH_MASKS : FETCH_NAMES; - this.outputConverter = new ObjectDetectionOutputConverter( - new DefaultResourceLoader().getResource(labelsUri), confidence, fetchNames); - this.tensorFlowService = new TensorFlowService( - new DefaultResourceLoader().getResource(modelUri), fetchNames, cacheModel); - } - - /** - * Generic constructor thea allow the converter to be pre-configured before passed to the service. - * @param inputConverter Converter from byte array to object detection input image tensor - * @param outputConverter Covets the object detection output tensors into {@link ObjectDetection } list - * @param tensorFlowService Java tensorflow runner instance - */ - public ObjectDetectionService(ObjectDetectionInputConverter inputConverter, - ObjectDetectionOutputConverter outputConverter, TensorFlowService tensorFlowService) { - this.inputConverter = inputConverter; - this.outputConverter = outputConverter; - this.tensorFlowService = tensorFlowService; - } - - /** - * Detects objects in a single input image identified by its URI. - * - * @param imageUri input image's URI - * @return Returns a list of {@link ObjectDetection} domain objects representing detected objects - */ - public List detect(String imageUri) { - try (InputStream is = new DefaultResourceLoader().getResource(imageUri).getInputStream()) { - return this.detect(StreamUtils.copyToByteArray(is)); - } - catch (IOException e) { - e.printStackTrace(); - throw new IllegalStateException("Failed to detect the image:" + imageUri, e); - } - } - - /** - * Detects objects in a single {@link BufferedImage}. - * - * @param image Input image to detect objects from. - * @param format Image format (e.g. jpg, png ...) to use when converting the buffer into byte array. - * @return Returns a list of {@link ObjectDetection} domain objects representing detected objects in the input image - */ - public List detect(BufferedImage image, String format) { - return this.detect(GraphicsUtils.toImageByteArray(image, format)); - } - - /** - * Detects objects from a single input image encoded as byte array. - * - * @param image Input image encoded as byte array - * @return Returns a list of {@link ObjectDetection} domain objects representing detected objects in the input image - */ - public List detect(byte[] image) { - return this.inputConverter.andThen(this.tensorFlowService).andThen(this.outputConverter).apply(new byte[][] { image }).get(0); - } - - /** - * Uses detects objects from a batch of input images encoded as byte array. - * - * @param batchedImages Batch of input images encoded as byte arrays. First dimension is the batch size and second the image bytes. - * @return Returns list of lists. For every input image in the batch a list of {@link ObjectDetection} domain objects representing detected objects in the input image. - */ - public List> detect(byte[][] batchedImages) { - return this.inputConverter.andThen(this.tensorFlowService).andThen(this.outputConverter).apply(batchedImages); - } -} diff --git a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionService2.java b/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionService2.java deleted file mode 100644 index 09c3cc92..00000000 --- a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionService2.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.object.detection; - -import java.io.IOException; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import org.tensorflow.Operand; -import org.tensorflow.Tensor; -import org.tensorflow.op.core.Placeholder; -import org.tensorflow.op.image.DecodeJpeg; -import org.tensorflow.types.UInt8; - -import org.springframework.cloud.fn.common.tensorflow.GraphRunner; -import org.springframework.cloud.fn.common.tensorflow.GraphRunnerMemory; -import org.springframework.cloud.fn.common.tensorflow.ProtoBufGraphDefinition; -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; -import org.springframework.cloud.fn.object.detection.domain.ObjectDetection; -import org.springframework.core.io.DefaultResourceLoader; - -/** - * @author Christian Tzolov - */ -public class ObjectDetectionService2 implements AutoCloseable { - - /** Default Box models fetch names. */ - public static List FETCH_NAMES = Arrays.asList( - ObjectDetectionOutputConverter.DETECTION_SCORES, ObjectDetectionOutputConverter.DETECTION_CLASSES, - ObjectDetectionOutputConverter.DETECTION_BOXES, ObjectDetectionOutputConverter.NUM_DETECTIONS); - - /** Default Models models fetch names. */ - public static List FETCH_NAMES_WITH_MASKS = Arrays.asList( - ObjectDetectionOutputConverter.DETECTION_SCORES, ObjectDetectionOutputConverter.DETECTION_CLASSES, - ObjectDetectionOutputConverter.DETECTION_BOXES, ObjectDetectionOutputConverter.DETECTION_MASKS, - ObjectDetectionOutputConverter.NUM_DETECTIONS); - - private final GraphRunner imageNormalization; - private final GraphRunner objectDetection; - private final ObjectDetectionOutputConverter outputConverter; - - - public ObjectDetectionService2(String modelUri, ObjectDetectionOutputConverter outputConverter) { - - this.imageNormalization = new GraphRunner("raw_image", "normalized_image") - .withGraphDefinition(tf -> { - Placeholder rawImage = tf.withName("raw_image").placeholder(String.class); - Operand decodedImage = tf.dtypes.cast( - tf.image.decodeJpeg(rawImage, DecodeJpeg.channels(3L)), UInt8.class); - // Expand dimensions since the model expects images to have shape: [1, H, W, 3] - tf.withName("normalized_image").expandDims(decodedImage, tf.constant(0)); - }); - - this.objectDetection = new GraphRunner(Arrays.asList("image_tensor"), FETCH_NAMES) - .withGraphDefinition(new ProtoBufGraphDefinition( - new DefaultResourceLoader().getResource(modelUri), true)); - - this.outputConverter = outputConverter; - } - - public List detect(byte[] image) { - try (Tensor inputTensor = Tensor.create(image); GraphRunnerMemory memorize = new GraphRunnerMemory()) { - - List> out = this.imageNormalization.andThen(memorize) - .andThen(this.objectDetection).andThen(memorize) - .andThen(outputConverter) - .apply(Collections.singletonMap("raw_image", inputTensor)); - - return out.get(0); - - } - } - - @Override - public void close() { - this.imageNormalization.close(); - this.objectDetection.close(); - //this.outputConverter.close(); - } - - public static void main(String[] args) throws IOException { - String modelUri = "https://dl.bintray.com/big-data/generic/ssdlite_mobilenet_v2_coco_2018_05_09_frozen_inference_graph.pb"; - String labelUri = "https://dl.bintray.com/big-data/generic/mscoco_label_map.pbtxt"; - - ObjectDetectionOutputConverter outputAdapter = new ObjectDetectionOutputConverter( - new DefaultResourceLoader().getResource(labelUri), 0.4f, FETCH_NAMES); - - //byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/object-detection.jpg"); - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/wild-animals-15.jpg"); - - try (ObjectDetectionService2 objectDetectionService2 = new ObjectDetectionService2(modelUri, outputAdapter)) { - - List boza = objectDetectionService2.detect(inputImage); - - System.out.println(boza); - } - } -} diff --git a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/domain/ObjectDetection.java b/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/domain/ObjectDetection.java deleted file mode 100644 index 15e10758..00000000 --- a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/domain/ObjectDetection.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.object.detection.domain; - -import java.util.Arrays; - -import com.fasterxml.jackson.annotation.JsonInclude; - -/** - * @author Christian Tzolov - */ - -@JsonInclude(JsonInclude.Include.NON_NULL) -public class ObjectDetection { - - private String name; - private float confidence; - private float x1; - private float y1; - private float x2; - private float y2; - private float[][] mask; - private int cid; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public float getConfidence() { - return confidence; - } - - public void setConfidence(float confidence) { - this.confidence = confidence; - } - - public float getX1() { - return x1; - } - - public void setX1(float x1) { - this.x1 = x1; - } - - public float getY1() { - return y1; - } - - public void setY1(float y1) { - this.y1 = y1; - } - - public float getX2() { - return x2; - } - - public void setX2(float x2) { - this.x2 = x2; - } - - public float getY2() { - return y2; - } - - public void setY2(float y2) { - this.y2 = y2; - } - - public int getCid() { - return cid; - } - - public void setCid(int cid) { - this.cid = cid; - } - - public float[][] getMask() { - return mask; - } - - public void setMask(float[][] mask) { - this.mask = mask; - } - - @Override - public String toString() { - return "ObjectDetection{" + - "name='" + name + '\'' + - ", confidence=" + confidence + - ", x1=" + x1 + - ", y1=" + y1 + - ", x2=" + x2 + - ", y2=" + y2 + - ", mask=" + Arrays.toString(mask) + - ", cid=" + cid + - '}'; - } -} diff --git a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/protos/StringIntLabelMapOuterClass.java b/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/protos/StringIntLabelMapOuterClass.java deleted file mode 100644 index ab7fe9a9..00000000 --- a/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/protos/StringIntLabelMapOuterClass.java +++ /dev/null @@ -1,1864 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: string_int_label_map.proto - -package org.springframework.cloud.fn.object.detection.protos; - -public final class StringIntLabelMapOuterClass { - private StringIntLabelMapOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface StringIntLabelMapItemOrBuilder extends - // @@protoc_insertion_point(interface_extends:org.springframework.cloud.fn.object.detection.protos.StringIntLabelMapItem) - com.google.protobuf.MessageOrBuilder { - - /** - *

-     * 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 - 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 - 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 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 - 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/functions/function/object-detection-function/src/main/proto/example.proto__ b/functions/function/object-detection-function/src/main/proto/example.proto__ deleted file mode 100644 index fec7562a..00000000 --- a/functions/function/object-detection-function/src/main/proto/example.proto__ +++ /dev/null @@ -1,301 +0,0 @@ -// Protocol messages for describing input data Examples for machine learning -// model training or inference. -syntax = "proto3"; - -import "feature.proto"; -option cc_enable_arenas = true; -option java_outer_classname = "ExampleProtos"; -option java_multiple_files = true; -option java_package = "org.tensorflow.example"; -option go_package = "github.com/tensorflow/tensorflow/tensorflow/go/core/example"; -package tensorflow; - -// An Example is a mostly-normalized data format for storing data for -// training and inference. It contains a key-value store (features); where -// each key (string) maps to a Feature message (which is oneof packed BytesList, -// FloatList, or Int64List). This flexible and compact format allows the -// storage of large amounts of typed data, but requires that the data shape -// and use be determined by the configuration files and parsers that are used to -// read and write this format. That is, the Example is mostly *not* a -// self-describing format. In TensorFlow, Examples are read in row-major -// format, so any configuration that describes data with rank-2 or above -// should keep this in mind. For example, to store an M x N matrix of Bytes, -// the BytesList must contain M*N bytes, with M rows of N contiguous values -// each. That is, the BytesList value must store the matrix as: -// .... row 0 .... .... row 1 .... // ........... // ... row M-1 .... -// -// An Example for a movie recommendation application: -// features { -// feature { -// key: "age" -// value { float_list { -// value: 29.0 -// }} -// } -// feature { -// key: "movie" -// value { bytes_list { -// value: "The Shawshank Redemption" -// value: "Fight Club" -// }} -// } -// feature { -// key: "movie_ratings" -// value { float_list { -// value: 9.0 -// value: 9.7 -// }} -// } -// feature { -// key: "suggestion" -// value { bytes_list { -// value: "Inception" -// }} -// } -// # Note that this feature exists to be used as a label in training. -// # E.g., if training a logistic regression model to predict purchase -// # probability in our learning tool we would set the label feature to -// # "suggestion_purchased". -// feature { -// key: "suggestion_purchased" -// value { float_list { -// value: 1.0 -// }} -// } -// # Similar to "suggestion_purchased" above this feature exists to be used -// # as a label in training. -// # E.g., if training a linear regression model to predict purchase -// # price in our learning tool we would set the label feature to -// # "purchase_price". -// feature { -// key: "purchase_price" -// value { float_list { -// value: 9.99 -// }} -// } -// } -// -// A conformant Example data set obeys the following conventions: -// - If a Feature K exists in one example with data type T, it must be of -// type T in all other examples when present. It may be omitted. -// - The number of instances of Feature K list data may vary across examples, -// depending on the requirements of the model. -// - If a Feature K doesn't exist in an example, a K-specific default will be -// used, if configured. -// - If a Feature K exists in an example but contains no items, the intent -// is considered to be an empty tensor and no default will be used. - -message Example { - Features features = 1; -}; - -// A SequenceExample is an Example representing one or more sequences, and -// some context. The context contains features which apply to the entire -// example. The feature_lists contain a key, value map where each key is -// associated with a repeated set of Features (a FeatureList). -// A FeatureList thus represents the values of a feature identified by its key -// over time / frames. -// -// Below is a SequenceExample for a movie recommendation application recording a -// sequence of ratings by a user. The time-independent features ("locale", -// "age", "favorites") describing the user are part of the context. The sequence -// of movies the user rated are part of the feature_lists. For each movie in the -// sequence we have information on its name and actors and the user's rating. -// This information is recorded in three separate feature_list(s). -// In the example below there are only two movies. All three feature_list(s), -// namely "movie_ratings", "movie_names", and "actors" have a feature value for -// both movies. Note, that "actors" is itself a bytes_list with multiple -// strings per movie. -// -// context: { -// feature: { -// key : "locale" -// value: { -// bytes_list: { -// value: [ "pt_BR" ] -// } -// } -// } -// feature: { -// key : "age" -// value: { -// float_list: { -// value: [ 19.0 ] -// } -// } -// } -// feature: { -// key : "favorites" -// value: { -// bytes_list: { -// value: [ "Majesty Rose", "Savannah Outen", "One Direction" ] -// } -// } -// } -// } -// feature_lists: { -// feature_list: { -// key : "movie_ratings" -// value: { -// feature: { -// float_list: { -// value: [ 4.5 ] -// } -// } -// feature: { -// float_list: { -// value: [ 5.0 ] -// } -// } -// } -// } -// feature_list: { -// key : "movie_names" -// value: { -// feature: { -// bytes_list: { -// value: [ "The Shawshank Redemption" ] -// } -// } -// feature: { -// bytes_list: { -// value: [ "Fight Club" ] -// } -// } -// } -// } -// feature_list: { -// key : "actors" -// value: { -// feature: { -// bytes_list: { -// value: [ "Tim Robbins", "Morgan Freeman" ] -// } -// } -// feature: { -// bytes_list: { -// value: [ "Brad Pitt", "Edward Norton", "Helena Bonham Carter" ] -// } -// } -// } -// } -// } -// -// A conformant SequenceExample data set obeys the following conventions: -// -// Context: -// - All conformant context features K must obey the same conventions as -// a conformant Example's features (see above). -// Feature lists: -// - A FeatureList L may be missing in an example; it is up to the -// parser configuration to determine if this is allowed or considered -// an empty list (zero length). -// - If a FeatureList L exists, it may be empty (zero length). -// - If a FeatureList L is non-empty, all features within the FeatureList -// must have the same data type T. Even across SequenceExamples, the type T -// of the FeatureList identified by the same key must be the same. An entry -// without any values may serve as an empty feature. -// - If a FeatureList L is non-empty, it is up to the parser configuration -// to determine if all features within the FeatureList must -// have the same size. The same holds for this FeatureList across multiple -// examples. -// - For sequence modeling, e.g.: -// http://colah.github.io/posts/2015-08-Understanding-LSTMs/ -// https://github.com/tensorflow/nmt -// the feature lists represent a sequence of frames. -// In this scenario, all FeatureLists in a SequenceExample have the same -// number of Feature messages, so that the ith element in each FeatureList -// is part of the ith frame (or time step). -// Examples of conformant and non-conformant examples' FeatureLists: -// -// Conformant FeatureLists: -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { float_list: { value: [ 4.5 ] } } -// feature: { float_list: { value: [ 5.0 ] } } } -// } } -// -// Non-conformant FeatureLists (mismatched types): -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { float_list: { value: [ 4.5 ] } } -// feature: { int64_list: { value: [ 5 ] } } } -// } } -// -// Conditionally conformant FeatureLists, the parser configuration determines -// if the feature sizes must match: -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { float_list: { value: [ 4.5 ] } } -// feature: { float_list: { value: [ 5.0, 6.0 ] } } } -// } } -// -// Conformant pair of SequenceExample -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { float_list: { value: [ 4.5 ] } } -// feature: { float_list: { value: [ 5.0 ] } } } -// } } -// and: -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { float_list: { value: [ 4.5 ] } } -// feature: { float_list: { value: [ 5.0 ] } } -// feature: { float_list: { value: [ 2.0 ] } } } -// } } -// -// Conformant pair of SequenceExample -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { float_list: { value: [ 4.5 ] } } -// feature: { float_list: { value: [ 5.0 ] } } } -// } } -// and: -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { } -// } } -// -// Conditionally conformant pair of SequenceExample, the parser configuration -// determines if the second feature_lists is consistent (zero-length) or -// invalid (missing "movie_ratings"): -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { float_list: { value: [ 4.5 ] } } -// feature: { float_list: { value: [ 5.0 ] } } } -// } } -// and: -// feature_lists: { } -// -// Non-conformant pair of SequenceExample (mismatched types) -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { float_list: { value: [ 4.5 ] } } -// feature: { float_list: { value: [ 5.0 ] } } } -// } } -// and: -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { int64_list: { value: [ 4 ] } } -// feature: { int64_list: { value: [ 5 ] } } -// feature: { int64_list: { value: [ 2 ] } } } -// } } -// -// Conditionally conformant pair of SequenceExample; the parser configuration -// determines if the feature sizes must match: -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { float_list: { value: [ 4.5 ] } } -// feature: { float_list: { value: [ 5.0 ] } } } -// } } -// and: -// feature_lists: { feature_list: { -// key: "movie_ratings" -// value: { feature: { float_list: { value: [ 4.0 ] } } -// feature: { float_list: { value: [ 5.0, 3.0 ] } } -// } } - -message SequenceExample { - Features context = 1; - FeatureLists feature_lists = 2; -}; diff --git a/functions/function/object-detection-function/src/main/proto/feature.proto__ b/functions/function/object-detection-function/src/main/proto/feature.proto__ deleted file mode 100644 index 56f0f05e..00000000 --- a/functions/function/object-detection-function/src/main/proto/feature.proto__ +++ /dev/null @@ -1,105 +0,0 @@ -// Protocol messages for describing features for machine learning model -// training or inference. -// -// There are three base Feature types: -// - bytes -// - float -// - int64 -// -// A Feature contains Lists which may hold zero or more values. These -// lists are the base values BytesList, FloatList, Int64List. -// -// Features are organized into categories by name. The Features message -// contains the mapping from name to Feature. -// -// Example Features for a movie recommendation application: -// feature { -// key: "age" -// value { float_list { -// value: 29.0 -// }} -// } -// feature { -// key: "movie" -// value { bytes_list { -// value: "The Shawshank Redemption" -// value: "Fight Club" -// }} -// } -// feature { -// key: "movie_ratings" -// value { float_list { -// value: 9.0 -// value: 9.7 -// }} -// } -// feature { -// key: "suggestion" -// value { bytes_list { -// value: "Inception" -// }} -// } -// feature { -// key: "suggestion_purchased" -// value { int64_list { -// value: 1 -// }} -// } -// feature { -// key: "purchase_price" -// value { float_list { -// value: 9.99 -// }} -// } -// - -syntax = "proto3"; -option cc_enable_arenas = true; -option java_outer_classname = "FeatureProtos"; -option java_multiple_files = true; -option java_package = "org.tensorflow.example"; -option go_package = "github.com/tensorflow/tensorflow/tensorflow/go/core/example"; -package tensorflow; - -// Containers to hold repeated fundamental values. -message BytesList { - repeated bytes value = 1; -} -message FloatList { - repeated float value = 1 [packed = true]; -} -message Int64List { - repeated int64 value = 1 [packed = true]; -} - -// Containers for non-sequential data. -message Feature { - // Each feature can be exactly one kind. - oneof kind { - BytesList bytes_list = 1; - FloatList float_list = 2; - Int64List int64_list = 3; - } -}; - -message Features { - // Map from feature name to feature. - map feature = 1; -}; - -// Containers for sequential data. -// -// A FeatureList contains lists of Features. These may hold zero or more -// Feature values. -// -// FeatureLists are organized into categories by name. The FeatureLists message -// contains the mapping from name to FeatureList. -// -message FeatureList { - repeated Feature feature = 1; -}; - -message FeatureLists { - // Map from feature name to feature list. - map feature_list = 1; -}; diff --git a/functions/function/object-detection-function/src/main/proto/string_int_label_map.proto b/functions/function/object-detection-function/src/main/proto/string_int_label_map.proto deleted file mode 100644 index bc5ccf47..00000000 --- a/functions/function/object-detection-function/src/main/proto/string_int_label_map.proto +++ /dev/null @@ -1,25 +0,0 @@ -// Message to store the mapping from class label strings to class id. Datasets -// use string labels to represent classes while the object detection framework -// works fromMemory class ids. This message maps them so they can be converted back -// and forth as needed. -syntax = "proto2"; - -package org.springframework.cloud.fn.object.detection.protos; - -message StringIntLabelMapItem { - // 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; - - // 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; -}; - -message StringIntLabelMap { - repeated StringIntLabelMapItem item = 1; -}; diff --git a/functions/function/object-detection-function/src/main/resources/images/object-detection-augmented.jpg b/functions/function/object-detection-function/src/main/resources/images/object-detection-augmented.jpg deleted file mode 100644 index f17adfd83e11fda3564c5c3128e56bcb20a48d27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147482 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
RD!g#6K}b$z;^Zp{9}GECwtuYfW*_}_4wL){ zvjcuaG}vhgHOR|N)kw8syUDtxoM>8waBjq!@++d{%>*CO@@L<*0Eacj4Mt;w8hN~M zZvJmV@_SVyhMGy*03)yZ4LEJE2~IKX^KkwvX7C{`7lGB`8dt#%4Y_+XxP5K)V}cNz!^ahGh@cFac@-$p!_JeQ%1r|*oYj? zBd5~MHng&Vu?>CuAGaw~Fso_8YznQMRVmU9+fE42?|&9NKK=X;Ngo?x{=IR>kUzYj zKX=`O;EUf|Rh4b|<6t;(eMeKwZ)e{pg=}+aXPj4k3{&kI^t$%~Mb0c$I16u1ko#1% zLr3rbyvJc0Up;rBr#gG$h%D`<^G&n1%U7+W`q28c;Gz$wl^@P)owFr%O7@C(Y3-#v zEHvo4ulXAOgIjNB-AyiYy2|*wyXbz4sfEVjNmj3CV4f^H{bB6Si!=!wUf9?C-zqf6 ze@m9KPSq#Q!TTxfMO!vXgX078lV6NluN?UO>h*Syv(s-alr7(hU0F3bkbPwM7iR0I z-sK{2BE37lv^+ujCitk7 zz4r_94b3yh8r4Pn3R2Vw{}EZ9@QvTQ^FQB`4vjrMOg-_(4@CtM=idr4gI68@w*F1^ zD#gUm_%B-LZ}&w?*1o)Gk}#lv5~bySH8*}dGG5>V*t^WQa)>$Spl#)q3HB)^Fm%8e4V}A zMA6`mp;rJ3_)Y))oGCA)+jxipkn@3y>%wK}s-`TI4SQc`=#`>uzK#-9Z6P-+Yv6mr zo=yTn!4DLr^n+ZXsGSE;%Q*xvJ1A}MRM68w3<{n|Z#dQEr_N0(0Q69%y z(FFWJ8rMv?Rhg(Tl{lho0Y&SP#_|B#!r|oVNC0c}EKe$%LRlfHSLYS02qKi}r_wDi zeb2_{wT>rIp8*+@k^oZSV4wIKU@zjdv@{0O78t^WUd(}Zj>8hL`X0b%c3Nu7N3I>+ zu0UX`3j7$G1!$p>w_c+GShJ~_{Ql-U zMScyaQ*|C9oE+r|LNPhp%_maC83^yD-?a1z+d)a&8iJ`M# z2VcHYZ&cIvHfI@<@@w3Ye;&D5AOr-(#mR`bjU4n+9>0$dw;Mm*5jfLy(W>YH z2HliQR}MuF(t%txQcFMMxh$g+4FaSYAgPKIr-V*lQ2yBX246pggj49{O3kHj%iMy8 z7yR$<>xau~lZf5H%-h$un{GZ@ z*<`v0r$4`a+gt06Yxm}+S>16oZ`~t)#)G{TfVK25r|9iGi?(t*K#QS{h z)*l;PyeHf3`sVAuyWcyd-}m6yH>m!#R+Q6nrjhy257UyYkNn}4*!lPDfXrI+Hrm4q zabEDr%vwQvIpy^Y>W$c+2;rUL>y!I#tl3-Z$)kks!}S|A%g8pPrXB^&3=};2vOvQl5h$7O-^P}YhXs>#O1ofgT`A!A!n_88T7Q2EB3focq9VNhWtoNa^mLD z|G-{lD4hk52?_{eQ7KV zSsb`oIz)0ZlqaXaWG%L@D4Zt(1x4%0jMCE&4TKD|0YI?I-q-iLXbb4LCh@3CaerU+ zy`^MXt_U698AgeSCV!KsnF)7!P9fLkq>Eq`+ig^H@1vo2L>}MkQCRD-@1+hu$D=3^ zRBVdW6c|oPr?}aTsnWX^3voDdI)3aZpuu zD~)7Osj~+S8C;k`zi|*B(;}=vc$yZ;x({F~>DO~lr@OvC{>1j({!urcU(cmwBU5Nb zWchpB$%9{%J4_D6PAq;yRZT>UE7k}F0G?h_=1>WYG9YE4Uev@>Q2a#ySY5tYA)~li z?z163GerD#{E`nsjD^qGX65@%-2MGjq4ElM{e}%ay__2*uKfuw#A6#o=&k4Zt&;bd z7uRo{(Qm+8KbV|wc`S3vcFO{q`X7Romk7Nv>C=2R=U$P0mnAEF|M29o>xM}6jfGR_oAJ}!=yb)FE#r$vlJ-k2 zl=6`c)pZ;x6KEzM0`g>%HNbqOTq_q%?J65hz5LL{T3NGZ|&0s0+57ap&z2SabueOfquc^1q4; zp{>KiBBJ*;vpjk5zD3&>Gf`Y~j8iNS+c|z(l3EW9GuUwz0BO^``Z`BrH>o!&r>)uW z%3b1*&EWuLP515^RVgO~sqj*}lw;sykZ@{o?1fOYTpW9B9yD?irm5=zF&+ml3^;c= z(m3ug-Fkiz1~^WCv!Vzb07ZLFI4`=CWZ%#i>e=A&icP5Y&rqk_0h-^<@|3PnOZV~7 zLW6ir2~(UI)JFj2!kL6;J%KgnO9RKng20`v?yYr@o0+~<-B0#0I#ACqgpEWsRfBLw z%=sjEeAc_QUT)#bon7_ge6UDQFV9p2wywJnZB74^qVwLdXi4iUqu?e59xRO;q1z}u zp`^Wso#EPxr6|&ocNRz1Rfv5DR?`(8CBkTKIm^U)S!|ZE!gh)cAkIRyN)>I-0`jc$ z3NIu52~wUE*L8X>wSEZZl9v=j-U|gOEK@xKIw)*Ak^^80HeUzWLvA=gu7@Uch1-&) zFC*dpR@4ChK=s`sb5IB1wZh1h<6&v^X1d3k`EdamP#DfGvQ z?n%NFI%8?j`E)Z9$n(EYq_07_->y;jb0u?DKkSTizw7S($Hw;M!6P5HPoe$aOzaw{6=^9*s=VH$;bas&sKa=e7tcqd+1)q*vbFP@HIXxZ-KRZ_ z=I!n+Y+iF@EIohX!@B)XRa3~)rX=C`&DhHk{^BVcU= zZ{Rnn+<{o7h3!%6q4&QU=deDTFb;jv5M%rAh0X$|CO8#0{u0hK97t_H0RD)nz(nRPsAM9Sd zY&LM@oV3WxGBW%^Ik|eA)lh}gNdBe4yx!w{h&|?ZAKto%q;NDTUGfeW9Ca7+ZQXNplLW*MvM zXM0mbVF1EN1$XTOpv3?K$QTg8&~!qDCDb@^6AL}5sIpB2CS}k|9Ai|i*J9va5kQe) zv=vo>CC*I~?S>^@`aw}@NWYmPu-=^+NXA#mP~l(97f? zu*)1u25g2jPsKy<@bZ#4uaP0B21nE zUNhR%asjrjR*NNxqTb3^zJ(b|6wXw63n*dzh#TtbiOqoVEal5Ta_9~{5?dZ~hde&P zLn0q!+SV=}W)qfom4=Kd@6$lH3I4R}8BI-)o&?-_jpY`7(lZNTIEQHe*p;mxoMP>T zd|b&6GWkU}^=Sj$dICZxi{RZX5k;kPx$(jU<8M_fidB!pAk*`o>&=2k$^|fc#W%Z( zR!HnV0AB>Hn?D$h7ecUrj4HufHVvJd8r_H;sidMOdQEwadq4&ioyk-Yu#yXmYqbQ| zNKrEA;tpCoE~Jv1AVTyY0c2QGwFIN1Ibg`4AJlrc^CIO*x8EC(I7OO6T|;cbOZY+Pjd{u&RTPy`td1Mr7A z)K}xNL125?P$d%313zbZ%33u~K6B*OUCMC|-I8y5LOcvxu#j4;b(5R*i1>X&VV_NN zNKo_$aedK)#xh2rzG|_C4LWsM<%;admQwOJT`N{&wQ_b_!kF#h;z_52H#Q)iDaXbx2?f0~QG-Hw4T? z@I&*AXdUclWz&jQN3=mLiqgZ*3ED^MW6&+LxanZ<+K?9f3nXV40vvI`y>sXmVn=HS z03x^$xGY=)o>L}4|Iwr?R!AT^AVM?+H3@cOkbs;9M9s}blHlBz2Ak%I71$soTnv+R z2QF`nE29a>!J@#qj&4df#S<$EAH^IYTxd&D0&q`^Bc|eEmT`qA)p#c_1)vWUNU_ZRdqWD$OIUw?s`3fA!YRs*D38L71{A?7xY7_V zwJ^e_l$%u}#%G=yt2oWVaBRo8cU8Z0U%w*R1Dh%n9MqTj&~2Yatm`}-gQe&Y^RPPh z>j#HZxu$Z9tNKo<4LzuD6`+@>pyX)H?{xF9Ox5G}+?-C?9$5LNC(7tOC9sN@WN{Ou z`?FHz=EICDZOU7^1y*nS=yrxw=9)rRUnUVH9;>gO#lSZ8R$^9s=6cP)l*lUv;R0Bf zm9r+QAV=g65s=3b;Edi&JRMFQd8k?O{(i-QJ-`P-8-UVIfSy&e`xY)=m0sH znq1`9Beea&kSG}eN+wAZH$#wTfKk@^p98{~8L+O*mCk!$a&jXJqaX%H_5=3;)^0-| z?Dkg3{b49wse({Wdwy1wF#|AL3{o=6BSQcy74|Mk3u4yibPot3Y(hj=VQpYbgxu5^ zHF09&5nl`WE4gV-WMsGsd61|!WEPs&Rpd~KJInT0@f zkWkcuJvS7Wk(z>;C_9UrSW*Tl01&AKkUcT3iUtSucRk`aK(7ThA~His@?FBDc2wYV3$E)d(h=n#!DmUCUJBq<#t~ zgJr^W1Fn%*2(f}Z()8ad4Tn5sB8la4(W(Ut$Jwh-SX862GZ*^kN5^^!)Qi}fSNN=0 z{1T07Pc;@V=HlncTE<%P!0_`RFCR9PnNgupJdWBNyIZ|YO$@O1Dd;)ZCA}*}XIJ-} zUQ=WL{yxdBCuf!<0h>tW+TWyBEFs~2j>o!nOIfn`li#!n-5+b`3S!mdN8KXRufl;) zF|GvauSik8GpX9rFl#8nys53wfjZ&H*8H)=GA=ddaeL8r*mbE4QQcgeWHKbE_4^acw60n_JwcOMSn|x#qq}; zDW8yVsf^3VT8q1c)4K{A+@Q_ZDUc* zxd`p&L@h!pQ^_+((yfpvn{Vc_w2*J{%!*5;TRd$qtO>v$(4dyEJ&wVF7XZQs_^FRaLI)@jEFY~* zg2mZUsj|OWDPo(c@b=Jg1MuRkW}iBh%VmoUdXNIRFPA<5fNELhWWF@YmvJfq*SjoAnN2U?mIO!oL9YA zEQ5w6eU{sx$dPcPi6!NK6;hjzG{;ceN%md)`2FPThMt0Hf2Nufv1}eM zlZRHL)euxQxit{8L4zhNeMC4_SAq61LloCjBtl74d6wZ{Pz+c0ig3z6VB)Su8LN87O__L!XSLQ>UEy3kJu~sxgSZ=1i=aMS5ap~RT4^Q?_I<%$)(xu{g;b}zDw(gVbto~{$ zy_*3>f0zdr_sH6M~2#cDt%t|N+5a93w6U5dMNZrb4dHvxYRU0L_VPj}9rbT2sjJpRq2 z*^e7{+Sn%lqImT9aq{G*vitv78SYwjeY%_D=IQdy7qZJsZG*BNo__8f+4;?tu3eSq z|7zT9`b&D?7u0XAxX&$!yjXr`WbJr{IDPK5pX|P1Vg3iVyZ`LfLYZDiOTXE^Bkfj@ zdClIvUMnMa?fL%cUaNBQw?+Tb9L{~Q*t}C+Kl_Zw39s2Wk3SAxFZp}CY_*Af6QMex z@BXe&DwS@(*TfWBH_Ln7&ue$N_}-9iJ!u`V(1NnGai?yP{rx3L!A*0Jm)$hZoT+Nv=8#A=(T1%>MFUFyxmj6}YBt?Z(xp?&+qec}q z&duc*UNjR%Zi5cJ3{a|f1omn;sxO3!l;hl)3`iqbv$^V88dysLEDve5GTGV`~9=wh!Vp1C7mhFD?AUai-vaE+p< zmdMzQ)FA+XD&p#Zd?)=i5t7NeL_ei__oG6mmb%fZTa|C+ggz!Ns2ZobZ;i+s_>XmS ztK@`ji=UApZG#{jmnS&be9kNjWs|ht&%yd8YTcZ50X3M_kA*?ihkVxfuoj4jYrc4^ zn427b-7rgszM6{>xO?^lk>1=U;R8lo+PEK6CbO(l> z*5Cy1$3UrH@R;t@3Qi)<4$_h*y-D4G10P3TX)g`q+jnRVatp)l<*QOdFyk2pu%Z{+ zD{7G&52;k|lY6 zC(M^v2HmR2F*W5=v#IPQjZS*8B^khii9KlGpy1yY>>yL}1k<1xXYHzhqYreOv5Jyw zg<<{iAjoPde&cLjLF0==VRB$gZj!y)=*p1Ik6>*6U`Pn)dcXs_?Z+w;@)j-GL8}C0 zV#!N+P14PCmhK2H{VE1LDg62;Ejd*g@kRRx9v$@LgSB(3?3VBAqi}|lwps-FefUbT zZ^=UHk>ji<-zO3$VeeeI6YIRS|HpW@ou5Ekme(0_1 zAY;w*;>e}13ghLyho(J#Qug-YK=`El%qeseH2)0?y4J55xb<{K`X7fLzw%XioE%M>?Z9=IM-)@*PeZ73R%oL=zmz%^;5^1-~J)~gnhN{*644~ zx-VNSb02y%_`}96TjSj#ioUuUE&X^aAc0S>RzfT_5pB?{HG8etO)llH=n}eKHymE(OrqkvUx^5* z98)laTi1Sdt&gyJ?~O&crYuv|b;FVFWz%V@jtC12du3A%Wqv^+oLe$I_P07w$`g86 zzf7j@ORh^UaPe;@{yi9Nowo=H9#=Ume?7Xr%J-xGMrTf3$vx_|k+0t+N`eTUok9E# zwy7dRg;>{udA^QEc9S#G+Jqi!szdIal~1AZvtK6|gq}M0CBdLRS%52GP%rH|l=>m5{A21y6AmC`e7*xVqz}0LULY>B|7Q7-q8mq)JR0 zdrG8H@05dWLRTq;GcptjB^|1AQdPxi+l~|bjv*HQ02y7YS9z4=3HG+&z*vc%90gTH z$_D#KY{30pAzg=YrzeS+Dg66_*^9HH|CT$lp0waX9h9Dsnb`fRd8we%AaNn#qsjE4 zsQYAJHsPh8y5|@WdP^Q?Gj90e`+Pg^e&5x*Ack~5Q!eFG)5nc|!{HtU6fp}6b>R>T zGWSk4uSbWqU(tG$X254xUGxD)MgZ~fc3?B{pp*?u*0X`;gWjE(jXPKR?jnTi#fC(R~aTV4N--EXV~aSz2ST))j!@9{QdXj%^}Qa(#r!;yWl zSj~8`>0#u#DRjqUyU`e2wDqUQTLY?2b#d%Z&*Emy@SCi?cOvsg&-P&1F~?}>jf`>E z<;lF1`e%cjb17?Y)4h-0|L$<8=a5NY`oK-U@sXz!)T8~8XSXi>`|;!JYYsoz^M&xm zKR+d0v9B5WQM%=D!}Etyhw#U*LZpNX!p-@`7L6-|+1Bg+U0(F5_}@2y=NHx;>fQc+ zdiSVyedHU)il0W83j8lH_LQdoIE8*R7Ke>57RB#aG|lPLfya~ei{H#zu?Sodn-xdv zC!$uuYT_?YnQUG8RTC$SuZ7TwAnmx;lcoUeOXdnET&(T8fRYyX6c}KMzG`78SG2b1 zd~EJV^SyGTf__vvy;Z{9cro5WSKT%tIA0U(cw2QTjBn?YoboC*BX(Mb+#(~fXkW7S?Y-P=>RRBKiG@TFJHQe_9>kT$ zQrae?7sF9zc-yQ@2kfTJqR?6MJfj!UGt~*wI7d|Ir~b7|ma26l0C2(k8%)NkneUVX zQRZVmv<}KrqX`~mG$qlhGB9@Rz@n8nIi8O<<&sZ#iys_z`WS1OuB8%J`RQgYzm;b~ zRiQA-d+zv1^k%TlgwEHn*;um$w#~06$L1-c&V_8*!j!c*xCIHWA7_2IkgE+aEwEff ze|l_*ZE{93$~G>cmYYg19io*jwMH$|AR34B*rV8O{T0jm6@+KLm+n|*pUj5TNnEyI zbx%oo@($0Mc`oGcny|U^Www}=1P;mcQ;yT8T?L;^FKZ^$V{i@FQ&c!|=mZ(sJ40=G z0-ruOAu=s;FpLcH4|o9N+k%=wI&L#Pc?an(XoJQP zx;D5tGzD0%C@LKo;ZD#akneVCe5o;!Bwb1FFmY(AK@`lSGNTV#yoxn9EqX{wxg|H9 zHSyANZ_A}VI@O$|ITT6;>SDjisC~s63S{r(D`zPQtp>PCU5|KXG&nh;gqf}1a0m`5;ZL^wS3SF&b;|j^Pd1D>&##pi?yo(r5{I!=RIB z!BjSfld^%ads~jQ3FllU$({7a4MHdDfE90D_)qD!3#9?E6hrAX;EQX6hZo8AUo#q) z>%;GU`(^K`&|~vuvv+SoM3>%wt6y)5{5j*$pO%mQ+|ZEr?K`P;&8KVYIvLCE5f3C3 z=T^^qu_KHY`0&e<5p8MW6zTeHm-hE0%i?CFJf1vk`t#3^`%k51CPlQ~sP+D3%NFU{ z$2%XdjNX`LLlFyu2F^*Txr|fxH!Ym3L_r6-svh&#TuznLp5RZPLRL{&_5rnj^2L)| z?_R7tV0GQqAo+*K*;=@t8kI21J8ALFYn3CLQ-b?WOrb@!qF*e{<0D#S^A8a}etpu< z;k-z2+hWDh;(*Jy2bJ^7_Ej$uZssj-If@-VefT)tshPh(gal6dyr4et+a32Pws~8V zjKaXR@Y;y*0Ty6kkI^%s!P~QTVCH)_#Y+gv2uR68!%{1y10 z2g~)*mO-St=|{CB5m*s$WbzL4JI9qLee1A;pbtFYh_dxLtiDcYv`4-lVhBn1GnGwF z%|47l)&##Jf`y;s*Hx(U*jKGAYzN~6Y=k8zd>C-#D)Oo@*{7{&p(85tb0*VZ>$O49 zpQUnY#%VZLL>nX!_!74k5-+Y9@Kx=J1muRu~*8s{8(is1v7Kr>aP-NeQZ1%NP%ywuEgdv z#nNXG%92A2XJQ|VGJ&PI(_FKT`t(ZU#+!-4H{|D+*tub^IGYP!Yf0OA2ZOO|4Fa4` z3QcJ(5(n3Kq!|FnFy|7axv9>S$p7S=^2J5p4@<85z9qLy=wa3u-60hQH_UB#iQm?G zt^VxC+gXMpxy2R3?5b%aVZ#ITnJGO*%WR&9jU&lhg~w_8*pF;{;sJgmRtH(xUJ-kb zmdKt13Lj)=njlhaR3b~Ot%l+pYAG5M-@?720R1{VNkQc61huGBUjv)Xhrd<;S&XkGC#;sH+a@W%r4q82S49m&wZsLi_l?FNfLG@bk4NtLVk~`-P*gI z9+GPioz4jj$YEP?TYN2j4Wv}%P=sv*O}tA^G==jZjZB;l1=M(ScI7>3Icx%lIHb#4 zApg6f72P~6TTqSR$&b2(^UXv3!mNX_x?UA-bHi0mPI#8}Jd7iguFOgVKyx!KHf?uph8c)q$Wvy=%)QEJK&6kGq{TC zUK#h0YFZy%=wx_(vyynzv;dBXZts=)a^njj(W%27qy8I8^3$P+%4M5l?&{X?POii7 z?mDbFEqVZK;uCNbm`&K*lGgY65I5*|x5}CY9_`_Vz?&eg$r~!X;g0cUS%I>7mHyf_-4ZLT*g1*R=MQ{5`JFkFf%sjEZeUS zPV45TkbQDvf5kd9=n3}~US>iYy){6eZYQE2sbOj2#WueQ7dW^wPsT8#_NFqykbF({ ziD1FeLvf3JYV?YFrRRL1BTc1+hA(PPmo@?f*lG`nj}0_d8WMe%g0KBs&gQQgpPAx z^%UJz64zC${#~?2JXTd~PQA$*o!yvq>{1^Sdsp$B>kaAp)_Z9&nAMKt9jdkOo04~) zx6Pu{yiEd=+6p-IMy`lYg>Vl6i!aOo1YoVPgBZl?UWnjn?bWYUAot$})tsKZ)SrzL zL!ww_fPv?c6f0z0sD+hS`^MWjbQ~n+hN9s_AU!v@)IkXX`<&oXZ^4pa$j#}Hz74Wn zou|ajwzY^ls{BH<-(CsFgk&b(I7JTKe07>A%Fa+OGvW|Vo`38}RCld6(8U+AU>{#4uAI`h1958G6&L=(T`GB{z5h1+|(v<fNa^tD&20+=gTE-W=hv4*Zm}af`?AeQV6W9*A1F z3&YKR!ZzdWb5qarB;ZeHQimU65A7Y~rcONtWrAsG5oW9CHvK-~Y6|S;h4I2!tcaQ+ z_KR38-qZSyHkej5ed2-J_svV`kRj+hP~@ldX)V4b2Ql1t)2OOLnvnVyYBqwuyD_Rh z3<0o}Cj`o7p2F)sS@`N%%gOp4MH5xtOw(%pk(A#)_k=NGcUT=+kR~FEiRdLTUeiT z4_|ce>=|9)G88@6qiDrRlzcLpg@UC%T3W2IE9W>8*l$|>NJ*2MFA248$|~qqd32KS z3)&>H2a*P2%#nNzqR9!+JmZ2YLozUm6wMd+a*%(BngJ&txm zZem_C&h;1~4~Vw^5SyR1S&q-M%@WXz#`)49a>$=mSKweAhV$fE5?E_`rI~(m^NHhq zEdGU9@ZIsh6zPJuFjFH%CYy7GWY*&6VN1a$*~cF@j0TYw=15I30u-t9;%igGN%uJQ5n)I|=nygT7gon3Qipa@QoXg$b}2DH#Z;k$zxmQOi{{Lt?8gokMr3%#CC!VMS@!&Frlm2Su;+Mf!?w*rg=L!m><(xq{&C2q z)xz)D*9qRNfc?qnVqAjsQ2BZ5uqLolO&W(htCe0+9>ua)yXE~+y;89+z!wsJ(}TH} zlY=SPq4#pajW#%K1RHXrh{#+Exq~IamWku6Ry3I{c{^IQDmBJhii$zA9^oX}D>A57 zCmGe>$P#}(T>0||efDlqtSG*YdV)siEV%twShDkP$Db}7;S_0o;>xpQs3~VBH@%fJ zbSR3KcXGOCzhLzVzMba=evb@k-FT)>h8&$Y!pKeYh0b8wYv7DgevN(K+U$jmH{`pw_PF~O4#hRG;jgqj(1?G4DY^0f0rXJrAy?}CZ(M9!{z3YBSf0-Wp zJ6X&4>tWE2+-O(ko6HGjMdUwaf9=Y9c$Y(3^wqiNyQ>`TEUatX&Rz6LT~%~>;LF`3 zxxMz^i4S$mw7K?cL}Q(2)j4F(~3?nYWc z2N=3LhVJf=ZV3U0lnw!D$>+a+>s{;p$Xc`J(`L_oU*~ZiSNhI>Akdt}!lQZk5e7)x zYdWB|qg*^4-ZGCyVM>ylQZLJi0A8uj&Ci2~XlGw^?RuvS#+4b;;T^h@I!^pC*N}~*|uXz^{0dbQK+^HW4sC-#Uau5!7>3c#7)-*ac zkA8aHv##7(xUPmb9VAaE;3*8eao!St|3{1@@POm7RIsTz3xQ!Vnh-%1X3L377PZ|9 zmTHHS7PEU!(x_PzTQC~2XmS!cNB4vfiYR@RS=!tBhAM7*3>buQ#}i~@@ckOzemrL$HWkM03coOeA$&q1mMy9)13EycLc{iYLSRMB$5$? zKZ0X592NJ=FJ(G=Q$1M>)M9E%lk=)civ!qdy~By~28q2F!RjIRPHy=EPcoSB2Fg!bJFvmvVs z6(qGZR7&0VbV28p^l+>NecK%1MUkB4uep)JT02Nru%8QK?MIJWDUkMtOe^*lpU4FR zai`Ztk>zX)o9H}{1cU=u*7Ruu73;hkTGh<^Y`7y5gx_%s~JbC#XSi%2h41b(_yYNq4LSVdDlYRbbv!2IBsXo z!I}jd;Apn>u!$}z1TB8{P(Xc`CFs4MAw@iuV2|v^*COKU*bXjiQ2Wk_UhE^)2Nm5^ zlHq()ntni5-aR3GPi2qn^5mrm{0B=Xs||QcuK;5mH^@2EP8GcC4V-R!liiQ9z9y?e zPGrL}+HXqF4^vvxEB@OF1o)nO>Uc*gm+^HwYKUOA za9X#Kh^Gt99pvyVN#(9ucFCaqBH0;s%~&m@)iL4)Iu@~`no|`V$zc{zZLA%X8ioE4 z@XwtZFdg*sd}4f!S{Ws_`~g|f)(0#SuuHfKyDX_F$R6388^8JVdjT!b9n~UZwQ~5L z5i{GOxCv07@b^Nc*s1=MKQMT
    C&Ps<TZLU}JnuKuZ+}+1XfZ`iNNk*YxFCDNVES{f0BSXKoKQ}b$+gE@z=G=rF7Pf95K!`bP6sqkotOd zjO@1ME|TYUVismx!|LkzMpKqcm&Gmpp1j*+wI_Y&z`on7K_Ro&X`{-L@}4Hx*Z zc(lbyT)(A9BVL0o8;e(7FrLkd+L4JRjJG01v8lN!wo?7u4OMBn6|7|(=6@SnD6RHf zhKr|~r^U@rd-z@UJA&|pA=39t({K7Ebye!oX86Xo(5PGBPDp)Si|0O=R8|zHbTCv5GX+jZ*yCYg{4Na37&9(Ix{%N$!%lf{o|Hy#-d!Irml`R zHaABVR(LLU@4TwmyL-~5I&tQ@`ZQ^92DpXua6c#69It&)`D>D5~LX55z>* zjZbJF2&><@0-wXkl+ToWZ5JWLj~P0V+YJO$n#uDSCgi%#TF8=-eMY`NPc<@m6qpWb zKn5VKS3UjZpPRcbSxL7r;1Vb;AE@)Y0s0=meTcKWfP!Ixbi*}2^#kdm;eN(z*K2SA zG}?pMtpH0IcdoN&TF3`*Xu)^*seqc_OH}NFQ~}WWw*jI6JYY<|9~r3%w)laZik@r_ zcrgH176NDnfNtQxIPDsIR$RkJ3CQOj=NE$6R<`CzHRaea3s7kf#LB@Rmtq${1=RM% z^x-)F<~E8vrAi})E+k*?ClyTwE=1mfK@Ua%)BFEAe88P&1vwTVU-@aNpaM`N;Qo!y zEWxhYeO(5ii%4Wfsx9y6z({Y{JWkc8QK6u(2Q5?&I-jvki^2&LR!X1Nd9;CB&sc~f zx`*~@v3&ujY;zX7bBK^EoCgtxc5Esx&uk&_?ge20YG|h+4!4evtsTN$0V7FllyW)uxi0GJ z5f)#mBTTuU!;|&>Wu^UP*ZhBnTDhfc`c;Ed82cNC0zt-;kYpgtyZ^d?*hAF7dTa-k>ke$4nE|g4qc_Flv*YR+- z=#lv$#gVrQV>56v;CNfJHJ2awMNZ9OkXGL^k?Yv>`Iy#g`h6L3HEOQ~9G8H;=*1ft zQ>$!;Pjgd}YXB#pKU(M8g`2Cu1z*wtFNxh&)N84-Vw}1~ct1Rai|X{oL*my#DlP>d zk?Vo46W>sTskM@m&?(oeGz{Vj~B92A*;rJ99XbM(=>b2 zg!-`Uy&Swg*hR=@=Ela?e;HYO&vNl}(q!4JF|#ysU$z%Xbo{kD@ir zn|p;U|1#y2p53vAoxXXtz=fJ~ADhyWJk%c7lN*b}J7hcw7(`*I#_B?k`p=&vuFLK- z&UKwPY3v71MD%n+05<$x@Oqffd*#Hat-&vQaa>Z z84<=HlCt1Oo=gTOgj&dUKWMq~ThPywP^X}M6{OU9>zGnr!V26kx_2U#_j7#8NTVEN z+ozGyl5!Y>znlnhaZmvp z1A8&M-$-{ag(LszYl`2@!vzweJdiGnJi^pAh$9#3s~Xm-1L1LzqZIE(juvQLb@XJ} z)h|%GsRQ-3Z;iEQe-$1*4;W|-D3h)$C_kKDt{guMIgBicM#?OtYF*CFKbVR;AyL+N zp>QU)V)8J{DQz_XD(s`BdP6?Vp^7&nk?t;hPjZxn=DekD2GPHAba&^`j679h!%Yx4_5e{XAoat+VcLp99jJV)qi%L?8iA}RL40bpaOvc2MNv+S* zdd(??Smzbmy3&e!*LSeJ6-?dAb3ea>5^fNz7w^jWi$cV)tJE3Vb%WJQPe_Q#>OF_@hU-BXVNW!PcH#~yM&#mzou3eDz2%WrAZM& zVhN-y#3sIUm!n1+JkUg-dR1Z-_G$qO{ImeHL-26bd$@wjFTaBSc2ELpIMg{r&Rb#x zNF`AUaw>~*B#FK)yr8_(BUD~K5h;naufa4MXwKq(SFrl!0Njt7S;lctQU26T{z;A` z*}1D9VazVHo$P?maIq4L7_AfcU8G`XbnJGa9ebcQA&;fX zx<*sOE{Xy?zP#vrhxmila52(s`6=Q9umWbyHw9iw3_z@p)vclC@TuDujsW1AM74o3 zkcdxtt?O2Etmt`*A_5-^;6zf2Nv2tBz}ddiId^c>5E8|fT%rF!lcO&}o4-|FmKOd4 z9RPz}O1Hn&Asx{`gFW$auB@@*sqXCk83y=EAA8|*jpctJ37UU9pAyp_8Fc9(~_aoZg_km`PlW09|u)<3XUGKK6Vl z7N@=!>QQQx4yoQe&Bh1Z7r-}>1c`bWY1gRLJm)00ee_V`jUTEOIZ}>PSyv-4A`%fg zQ3hm&|8osU0G#pET(V^Jm6SxTKw5arQoQrLR;CKvp6uT%=~?U7Xn zDFI<$vj#x+JVh!I>jXR<0iCY?bva3Jb{C+Q$LOJmVgmqZWL&7}AaMqu=)%P+N`SH= zH+#tnSrdPw)zUe&aF^EzKFPljXbUZN<(4jejb)osNM}N6v9ruTBa?MSMKP4#NgT1` zG!db-&n!xf$(YwsPBAR_c5Y3!V%=n&fuT{B!4h3f*PUmyPmCkxL?b77wEXAwkDFkQ zA7dM~yR^h$xTP{eRQ-l9P@^0E%NYS-0MI%I(zakvn%^oR;RhqzvL2&bWigVc={g&$q_;_pC=4Q77qTE_%#&j~XvO$p$kzCdoSy zFKu|U*2HuB%*aEwwsh@9y@K6}5&dzGW4w)1qqMuR7WnOyR`Jyf#tD1YKO3?H^s^oF z2|p%UBn^kmj2VZVXVTQ~)b;2ugfN(_4!SQJ*D)oh4)n+F#Nv8SD-F+kdbFEY92-0M zLI?jId~<2p8mFM)p_8YJ!eXS_Or+w_3W9S_G$ij^RPIzbdsE-c`8cH*An=gHs&eOA zx;jo7(~cEvITE_i`Cyph_cau!7B~TK25r(gB3nAGJDw`MI81!)U=yYtwO%F{slCyq z@1|OtlO3e&iOkE-dHyY8z zg-#>hp_J=*F10rtUG-(0Cpb2^)?v926q@)N=kW`!{o^CVdd;7jp-}o+GS9OhB8i0S z6Lo~#ctq;07`sDZo9es}icp2VQ-LjQ0>dx0U)jMBfTptWtt80CCS;r4Cv>dA(eR<4lVrHt` zN0A7;!aVNDFQ>If5KA47iNnNiG~+kGG4GN2M#Xy+pE!t|Rwq|a6kTic7?7Jecq?#^ zu?C*vG3JZ>%ZE~ZgT~nVc@v}#qh<9A~`ZV5k5k5gmz#Z^V_Kr%oagU(s#^)s`$$(oYf2M@x9INF2;~wM3YZFtz@!{5HWFmuBnNiB5qagfVn&L#)yK0rAhx!tei$!y9OP1pe z0y)9lSKTCjqWyxTkloWPKU1UUdGkc3{WZqopP7rtQIUX?%RE^}Q-`ItInvsiolJs{ z8XhLS+4QyF(6&r=28Xj{|c4F2mH*xHF57wb!%>L zoH7m)nN$-X@-F@1uqUnhGZX7Xl}cf=2Fn`BtD`$MQTsj8ibMJ9Yq8@qeEWJ6ZOs-5 z%7xYiWZc(?bW(ot0ccH7fJ2!v|Mc1sF1sYxXl!0YIR1X@gFbTzv%izi*wx-D_L<(V zm$qM_!h?}Jcq!>t5O9SSy}u=Ia$Ccw`ch27v8<06eL6|B<<2|g7xWBALTO#YUo0YI zIPRE{3tY&U!HNPr;^ddf#gv5oH>hs#HqpK?&_|%af1xkZzT}%2!EFmE3OxIM5 zAv~KSBOEE*Y*#L|8R5!1{_RHdG5U9n=I>E3x57r3j|^s9Z@&>$e6&Vf*HIk_CztSc zwC2trcTD8}d#iL5O-nc?hWBX!Z~1Jf>o3oh91sjn2hv1-@?eT<`ehc$NmzD4yV}L zOC7Z2n!AlBsGWvcQ)10H0Ii?`DjKB4I*?ePdZbtk z{#0|owF*zziCq{VPMCCauiKqU!dxppg&+pY#c#N!jwI=_qgc^PFnd$FW1oK)2xBP*dv{3N;hU&u++1h-tgiF? zoBiB~-5v*QTy4L({h;~!Gc=^zVmmaJOvU{Ll2M=qI?JsUO~td3Ve?T|UQkZd0wkriML8LjD}4Vliw@?stTHdu zdDFPUAv;l5y?(s>zg5(hlp2iue5Iw;lV!RK>AcK{LU*B2;=QqQ(LpsLKzR6;g(a5U zaiS><(aDFR!s9Rh+!$ z%>A4KyKrn>>FfPsgj7YRj;kkd6`ofp5O7csx+x*0lI5nBlUK5I_9=@hvBk)lM@*pg(Lw6tUpnJ=os@;D^y1~UHRgI4bxqqR6-Aq)XVp5`1x5}8rXN#ZI=7Oa6(e8e9lT%%nGUwucDfli9%%Q4I9+J&8C?%T2dCC*B@9CGv zHy{>ICA8fY%rYpjtk-EhTh^1F?Pz6SCcP3{tHeD!1$lWt-%V!u@y%Mrx$FArX3bI$ zfs#ISNm>2m?;q`XA3UW8oYXW%MQaZni(eexP6{*UbUFwANWSlAog~tNsopF71F`bWgs1*f@WX!wY5T&Xc`$CE=!i z-zRYialyW?-Df^lR2_(S7)Gilq!pWi zKGUob--+fKd{Z{sV>?}_d{BE}9g%?3K7Uq1s~IjyKniv#-3125p!V%#(lS^Cus8|V zNR4$n#pAjFbwrgJ5fV@Wh+{@Y=jZ;nNFa7T7NBs$yySNP3lk==tN;qS_uZG14WLi3 zMxpg7|CXkZ&|IltfqXl9U2Y_)Z+Fq7MiRFB?9iz6_^Tv(--i^t+s21~dn7llG>t@A zis#+crzbQB%Zgq^7dz?x3N#RH_k};#aeoEur%jNJDp*$bMpwW#3_Xk_3Xmi>oT17#rLVqmYeMrV*Vpo&t8UYdi!r_BmV40VG6zy zJ}A4Yxc*m5H#z-^P-yFPglF@|%}q^KM7;2SplEJQm&+_=$Ar4P8FNu$*T}r*Y2zul z?y|GPk1!#L--dJ3IC8(*DaJ>zZ-EJR6KWzQyW*@g){OjoJNzw602N`Z-bhUOT&AGJmk%%As|7z}ybvNkKq$R?9)(SZR(uF{WwAYqS% zWA@ysaH$Mt6iU{2v7vF^L57#*vWIMP4_Rr5x&&H{NJ4?_&8vmHGKq;+^%#{jc%t@< zPU5J`1cubHdYKx>tX*n2D@`7^)Ci=;$$mcz$G(=BO;>2(9t!J=htzbe3q4LvvkBU$ zRvs@u)FulYJf8Ie-Q(4<|3G3@F}bc5?#8LJQ`V5#hGAcK!+~ZQ&S)o_gtcG}E*B)| z{kA9UOa@s}M`|svFS>_tNb7UYLHmJfOQF1acVc=_Wku{6em6JJ@oDabiphI7Dl+h_ zx4(MJxO?{Ss7LbMc*MXqB{EF6UE!8`{VtW|;9|%Q5$aAY=<|;hp zC@*!KoOi$bS8>)qRr6Carf`}mfnoQCR1kv92));vs)<|}4s!~N<+D*-tg{K(|0~mDL4X`4Zd9Xa& z#Ut|+PNtn!PV|<`TeWz;?SAGUBY229@FKWXKQKY{(|R{3&y14?(aZ@7T&nif8lt|i zz2Zi{ajp6z7D}G6?0)xg*%I+EbmrW$;=RuBF^Q!k;Zo;|?kMT3S>VA&X(*MGx-(OF z%{B*}IipNFDoX9n@_hG%afP_ul^;r!_5!g~xs^<-JiGcjgjR23sU|m(OTO6n-?^!S z;pgx+$`t>oxj!5YZWM;YB*l|h&zJie(c;>Hls9!W_1&>m^2F2Kp1!d=5=KA%11Z_X zf0lWVw)U4mEf`H{NY&vUCb)9V_%9+-+kdaotWh;Jh?lK&-bar&xcD(}a?&<0?Jq=%QtK44_=mGV=?e@C2|F*Y{ zA)FQ-j%P{}0{b5ZNGUJIW`bZmCN8-{owi%OjaEr-aQ8B({y`-21II4VtKGP2xe^I& zQxS?G&Mw6Wy(kLS~b0tB-Pa*fU(1OB9r1WcBnIZ%$pOP^<%1J zg3q6}%Q0>DBX^j;eo`Q3F1i&!_~%Cu*`?bvQc6%BV9*#LE(D>p&2u{f>Xh^5avwNp zD5SR9erH`6fVV@O=GYU4K%*kj)_EOwfM!8X%QJPA+4G>;x=0wujmGJfqWk=&Nnb7@ zX5$DY`X4!-@G~(E=E-65jqED;nxL1$E?^O}Pw7ltbD80Ls@TT~Dm5KjF^d!$tGo;J z_Eci}7Qvp=7%Y)%OX;}Z)X9CT1*^$Exp-?HuPx|CFJ$o4^0}13O5IF2aTI*_FS_n& z)>Xw*{PcM4%p}JmEYJc!mm_6y=~fI}YsnrnWc_R*UI6RXv+enF@jZ69l_2GevQ~Ka zmcN>P#-rQd*7swT%mvYl8^P#4yG$VI$ZVUt&nVs>uMrMd`_I}x&gZAyPc47K*W^}} zwhqeF)GZB8{f7dk1=DG1Q)BMK2 z?Tcb;x98M7Ewgyh>J@h>^vd7fa>s|%Y5(}-0e2cfjsB!Prj)U}6@hW`A84sAulvSH zJMGXDK#bd#TD() z9Z<8Lbm%A7 zTfkaNR0L6(NRm$~xTf82r|9uCHIjWjrc^LP)-?NXq0Y7TY|LcF;fp}SurocpD zE}@j`Z{MuT<88QRb2bi8j`t~+axWQmpA(7o8sm>IKWa2^M&acMqiRUNJQj-%Jltz( z`7CGKkt*eu!i68)QPSDW`~A|eGgIQTk~={ie-G}5tz~d+_ww6ti`q+A>|N0 zfV%6YW?Y_`Yx?55Q)4O0o2*)+>UOK@GN&Y!u$8zNE}ijJ55^Rm{KP``umsBN&bgob z;;Qc(Dlt+kH%(MD+$cZ7*L5C3;yK7@wANQX&dImB{r5#Y)rca))$f~)|E0JV zhIy&O<;FO=prrwqZ)8rWQWd>AFVk@EAc3^hz1N8>xWnar_xGCfvom}7kXNHfoeuOG zx*At)i}6ayr};hDt0imQ+@vTcIyLVy?i(h`cUv{ra6o9Q5C>KK=fphr0_-|WCPcA3<0rf0~ucqC0%7XOj-u3l-Wc= zOou+k>h=EYahA^Ri8o0eG4gasHmx;M_|ccxj_wX(LA}Te^c%La520WDWL>g8;O6Cm zdc;9z1t%+J*|Q~MbU{Tq_L}eh{gqI<`WIVNXWN9ve6JD5xbvZ4mBE*IYgBn! zx4m(p1DsK#Rm5n!Db?RL>)6E#hrDk6td&m+y+I2M8E2de5noU}1!>HJD?N!E1P~@qD!h(!ymcB?d`use~&NSud0^~^w|$^ znhzF^jD%@oyr*5KZIv?sML^zL3%I)4b9qzC=q$ww;!&tH+lPfwM@FZ?DcrTKb>C~A zhjuL#J9pP$nQK7uY?Rm#cBsz8^Fv!j5{5yNwDE3EUpHFq(Gz?b-dr}7DTZX(&s=?M zv=^1wblOI3b}0!Wk{SsZRr0kr8BcD;4aAQB^9RrCKhWO>@Av#EEh9gKLRqi=`Bao# z?8maegkqC9YW>PVD2GyDN979q{Yhy_Q5{m+?P`at6!MmQ1g)O#nm#UMyE-GmQ?fKu zX;$ZB?0yO6kazjP(zUXlcfMw`e7s1?7%$JMVdKB6?>|^aDu_P=eOo2NK3cZpaZl)a zHZm^(eGdJo<4pa9Yh(qN#iEtmh?44KD@~+TW4G~kLz%1_b++GYwJF1iupN6U@eXjy zG38v#nGXf%R0*F$Lg}YVZS|Jo4G!CTY~*b+bb?+yhf_HTHjG0rg_8675u~m~CUl3k zwp(9xlCE}z*y#pAKmLyvqLGU}#QkCA;5F+O!^jURW`_;UZ zyP&>va&sHuaV#6@5EHEwj1~&kS3fX;>Y0gVYX0dk2kwNVC|6Nzi`iH_y#j%JrMIrBAQ z8?9`fmT;;d4@Aq^S7CTK%{36oNmZYy5yfqtSBGAgcZh}4MPp}F&6+0GPh zuz?@b(MGbzFtE4su4uqxYyO}G(7VV+>=w+m>jdn;(aP&h60%g+w0Z3@Vu2)dTo4-FDC(3@{JCWtUKbU&qncMpDq+4<1yDx={Tgtj?wacdAX^I$%;F#(hcCTv!-9Txvl;202mB1+JLiwtu&)Sj_pUo^gCQ z;AlWx?}p91!b_#aP&w_(kj1AdMOQwfsApnM-($_U1uVWEr+FNFY76|+av!3Y9CWBk zCHUV0N(prKy)I*%mEjQ!_DO2dB4k$)uk*2IC+w7fvbvt&Y8_h_JdU8Qs&Km3J(b~C z7%E)B!WVi;21!Ion>=zS&B#4sAuT}$KmLGgBu-hTGt<3|v;Uby=u}=)!qf|E)g*ZL z15_N3=W3-A!sD+Hjd|!V=6?J54u4FOI3Nd>E`F$`P-K)E$7gW8uRO!;8vz6FnV0U5|ysJeF#AB13?wfZ-=0?*@WIDWC z{Qj=jIlT7}Mt_iBW^`Diq%QmHif_DxzhBX@6I1& zpBDerNp>O2MIX|KhZm9~_ffEb(xpxvWW+t zP!)i#^=tWRx&GNXcixRO$%V&#_EhZPl_QvdJRR3e?|$FY=F}h;m7^nRC7mv$dB^(3 z$;>(63Y~SdTy4HA;6~>y6Ny)$QA&_3B@_3x0&$jqu8dq3&$z2iNfNzIs9*1F&{I$E zAf41Lcm1jHa#(M{7d1dy-LVtI2K~lc_*ITdVY{`axioD=(MV08cKPes%@}{Ks{+@@ zMF+#f50_14XOYzI_?{l7RB-rOr}oHPevUOKcD~Yq*`kr-e}IrMfQ!}&Rh!i4Jzsbl z_SzPayxGRhLaxGyibWbqn0PADV8!Y=|7T6J6ZsBMfWUVtn4!&qgp5w{9DjU9O}%WW zKIOAh)13Ey?*f;PK+Griip#=}I0x-y{i8y&G`Zdg68M*mWVDg0(m^NAoN>~Gv#$qz zqVXY%4rngZ&!0`>`P=H-=Ur^ugDgJEM7^6RvDt3sJh$yl{JCpy9qW28Z|*kV>{ho# z5i{n7AS>!18q&ic=;X}jq!~jo6hK_3d35vqk}E8>51^J zUVtsFEVlhDj1`KRdPe;3)v@)l;AEpCSbju5d5yI>)#i)vw^x=;zoN_FCM^!{YZ*No ziqR}q^Km^f@8v&*8tu5%Am%NxX#bK1?rakO4G0#Ro~Z1)S_JBu6idCd9fHQS+h2-V za@Z(BGHMLrups;WZ@;8~c1oXm;I`<>&!*f7Nz@%$8o1kGoL9N2yc6aZLXEu)ONCjt zP&cL1x+vI%9=%=&{HKcKG29P=x7X0Wv*uT3Y^rdpAI{xBoHlFP6|FSeo~rj}lqjA} zpOJniUt7Hik5d1@T_}t?5MsYMRy;5*ba>OHo-F{z^#PDL( zL;Xl6cRliTPw1}^38e&v@wd5iGN_D~!gigM+OU#er`BfX+@r4K<1&o0p4=N09r{gq}tXD4EDM9+iuy zO-#*y*g-n!bMCNE7ul`g+z6?wk56m4bW8jJ0Kvl8Ly{jyS9h>WxK)%P_X2z72~ zD)$;<0~uGLE@>zXgYo9!uBup1Bc8(uElJwwNORH-?I5GE{=i}c&))2x@BGW?#FsD4 zU$MUKh-6&PmRC;l#3QxY1ip^dt#XK|JKLrHs6i8^7VMy=-N$Pcv!I;<7+za#o!V{F z&?X|ucYK8;YIK{rS4J4)olrj80rM)jpUilB>neD3YJH)c@=BKp_V#<{A0 z{*kPPF4lLiim-X1lUqQ&e6UxfXA-8HP7!>(#;fS8^{zimV9OfsW(O|L5;Mj@)vjw2 z7fCj7#v!me-I2JRq!H#t!Fx&Yd%i9^7kn%2R#885(LgxdBEbBw$sidtsnPTjWn1&t>EM{p2({Jq@d^E%EKzfSL@r8^4O{pq_MWWm=(GrgoXYX6F z<8DFQD8ujRj4x!@m3@xiayYdckH zI+l|6Io7~p!aBn?zs5o5z)C?JSil{Lo$|R*fMa<3F48FAB22?kICn1nvLq#B%PP-~ zuC^8YV0}@PHT-CCq4y@}Q&>BM#``0rwsPlpRLz^b_oO3gIHI(+ zKZ8B8_TB#UHMwoIF-CJFnOGbgAvza6x2_Fqrf9p^$26p|)pPL{3bKt-AM_{#OO0$M zIinz$&y*OZEi=6LccMRQd|Mh^P2Ll8Nh7c)?;vap4b{_xa9d z=r}z0-#|I}fzh89loS)*njx3(<}20Nx-%es!)_nJxG7U*&GOBIkc-MUC-;km8tu8x z|0Fj%;$3^o=0TH6yWYMP2C#`l6s@{>va+ryo)|m2C_H4iB&lJHe?w`EiamU27i|ID zMc@yT(MZ0CFF3{&XWA}7owGrZ%MWP;PcKew*<2+cmy%+WegbCT^0yFd(##Kb_dV3}lZn^1g2VNJbr1 zh4^~Td^wek8<&pcNzluov_#>A?i2YwIm-Hlq__qAn2?g!I)~eld2T)Kz?AZe>>H;$ zMh~Z}rB<(^5JkPd(38W}v4VQ~4^L2~z+JLb57{8AD884H=q0Q_t&==$nUGcEN8HeE zTc6`6^4vemuUl@0rau4v(D()+PYTLcnh^{to-Df0g-~IXIyRY#DEyg?La*gX?nKjK zAJ6`7P{b@*K{j)G%##x|ziFC1)!lgJrLxdrfH3Yr+5jQ(PS(Fn$@vSzo7_|wl ze+!l>KBG@wndN(|HY6Ht#g~Hw%XxOVLt5f2cKu^bC10Z#{!@b{$L6D#w__7I2Kp}F zrMq-@v*OQ4DAPPVz(n0qPaN=S$5E}$o?)i@9azWU| z@bELuztn>JBs>;B5>Yxl;-(j`Wd030$B-+yk9v;7B_}2|Y#6^S8_DptInjX5R&pzi zp>5AhoAC0Z>0p?gTmZjMN$VAbv!g$Xzey_C5V=a@O}#+5CGZD(yoff0*Ev5R7e{Qg;0+cFt)K_X>d*rXcwL+IWRVXSFSXNz z0m*m4k}4Q?Zsvo;Z7=*wZYplXC$8nckdb0@taA?d$2mqCo}R2p`RPsMCagYL;8T!} z7Qz`Hh~e*Qebe#@>vr6^3LCVopa9w%pia@Snob_zHz|Rb}X4+n>)|3nNw*_){_(DsMpf2oVV;4+{ z;9=lLT?a;6k3WZ*h@I%Z04Z(G&uM|*Tc3u(-yOSh!wX>Un1_9d2+2?-bufIs$PLMGy~^MK*fAsJ-%-tTt;roce9E&P)G8M`jpT*@1I|D( zzdz^Rymrn;^2QtH?SoTGB#6X5);oPTHJz2sJ+#kV9xl-tkbSjA{PID<%C|z~g5u$c=hxW(0EI7N z%UGE9J(p*orm}I;xSc=Z7C{%*XK_C(KtLG$O-|nsZHwSoxnFqzH9pQpimV?~s>TTh zki^|ZbJ2L~N{|mZCxwZ@1$Ph3QFY^s2*xd;l6Lh!DE|N&J)HXs+f!=yIuRK?X<8yW zS1TWnVhf3^TtE8`2>ofl@Si45?LD#WC0DVj*k0bBbF0{BAcKR}xmWShHax2bBagix z6y)*6uJ7JiPQUK5nmv^J3)|D~bsJBuIAjXKPZ()z7k8f+ZtW4kr?-mqmFY9E^%0(F zdpUM5+CzJrf$KX|coyo*{C(`|Ut9CmP3K5EmNW^{e4RPz^*)#tD9#N7109_CGRfxQO3lJu-Y#Ctc9o!6KgPATR`^nH7}af_bH4i3k*J6DN=WQL$3dF(8@)cx{?bcVoMQl; z=j8x*9)`K=&jh;0X4B{MTR93(-2%K^9cp~GmWQmid%{&=7qq7JDoENy=Q?zTydNF5$P`j z)5w(;nbF+qOQ_pFn=@|=t+7-Mz?>1+t_>}>*>uR{o+)G!$U}K-Fa|%JR306-fu1OJ zERFb$SPi6O_>L+aM%z%aEikr{RKN`+M2Ooi`bS*;5P1Jg9h;_1+nyX`WGlc5cr#|NB#HBK)NT1I1eXFhn7d2yUKwmVXxT2gm&cST9Ib=SJ> zwy9|>O>QTRqX^NvH_X4?!8p&odF-)iiFGnWrIE=3H{>Yv_pR&A9$02ut80ha?Vl-E zJ5STl)+VW7XNS(Vjia17W?W#g_RVWbyxZlR_X$}dZ8|+3OS2UAmaQ1T%BEO*4^Vsl zHP@rtMzIKi`2a;gp%quK1GRZPH#5a``?Vp%AD0<9&o$j>*OE21Z&!Lq2M%!GTz{O^ zV&hVrSG}N8sVMw98##F=c;j+_F@G*xs2#ZDnuAhBkOxEzt5hZO|35=9#< zauLo!ZU{b~N~?9U?G>1)ob+WpAAT!_m1>dEJv|L)T70%l>+SEX(j|`Nu`8%$V0aDq z^{hA(PO{b|y^=&|CU$0qNw))q)8!{51jHr10UgBy7+40 zCU>>G-D<}QrOxI+autZ{TalY_GZ?}003hXw1JjP5ok{kaaE%JwLa~J)1xyf6QZZ2R z)%IVIno=?6(rx5fqq_*JEQ-KKkWh~N=Nakv)9mz^>}}^*?~5dof2u-A3EQ7h&*xXB zY1u?5vPtEiytpOt&}OJjda+zcvRnCHTJFmZRQJv(je65fUvT(c*{cPvp77gknM@F{ zd`zW^kO&|GcwTdkndY}3(YzsWn4TAc;3>gU?Gpk!jPqQ4PjPt<+EqzbUECayJvghY zHO-_kLnsUa@8IMBPkP!Iy0q6T*Yp1Xf(lK(WOpg3Sn0A{&26bX&gc?5QZ}Su06tJh zwPo09m)4#ux4Dw``ShU+iD8~V{{TKXBLgIVD#2@p^3)jBK^az3N}r)U4OMH~=}t=1z&NXS zW;ynUDlj*7AmiH=1*`dRKktl@D{$;d$LCQDbz5_3aW^NUdKBNo8g86#WH#n_nc|WF z&@;SSPD&7YD%}sa6>UGV7fbS>)1*t2hLT0MkPMTOp+Lc2c+X4l`EtSN3M$xf0=kxxxwlztdx9^d6aKVL37NC&q zRw87_`oMBnd-~IkHxYf1N=i}X=wnIY`#nC*R9erd&2rPZXdmyOyHo(f=R>+4grkeD|t+^^mMWE1K~^%UifuA{0A8nQWC zwY(6=n|78}I3_sujCRQ9o&czp(A@2LtS)k=00}~a`d3C^`z)eJLrb@Ss!o3q-m6co zn2TGoVpSZgbs6o=C{%O!cQc#6#AXdX5iB!JA&emyiR2{UdVZB*t+cWXMkyQ+TYl_h z_1ZzJ*8c!w)FTp05LQArVX_$Z$gL|Vbm*lL!vZty<;W_hzBZbdIk{QM=s3L$OJD5k zpb;%o$R8;oxESsAtGa4w`c|tQ{1Bv$u`(h`cPPmRIQ1RAwXWByWN6yPDdB!{tI&J# z*EODWyIKDLd2c+c(3npxAGQx#-W=55GL!r6O_D5~MBGf1x*?DTQ20Coa(Fcr)KFcc zMLn`Gb;C%%DI*@Dx!avHQHFVBNmxf1W>$6tupI^mIi~5?lU*TUaulh<0&qz7u8wCY z-yX(geyF*+3wlL!LA5?@w$( zo1>6805>g<&a6ds744fFn9C?^fLAj0C6?V2a0Q42 zoc{n?;Huhw=pogmF)VkQo8m9#80daa`(6J4#Q`t68RrE}*y;#(3l|irY#N&JTQ3Vw&j} zagzXig>lf1$2BF&%M-^Oer%z+>JA7!>abb&W#j?35a`1P9`)F(D=V}bCvwzRQRRqI zjO(4voCE3n`Kd0v>3p=dK&Z-ANfEL=j%l%*f3pZ20Hk0xer`PvdV0*Zz%+3MQZ~pz z;QcA{^F0w)PeY!%nAs^=gCw!w4t`P(QVl~5)bh?4r- z26}yKF_PbLp4ApIMqNNVvO0h>TPoI%y%Q>wo%bmT$(}qO6l4|2!sa;Sg`6CntiuD>p1zdpBJxUQVHhibPEHtO`PPack$mPWob)FdKZjb%t$9aA z$x+iyijZ2vB6-EuJ^cKKBR^Wyu)Y4xTeP$gxV(qTb2A^41dvzWs7*4!1dxPCi3-u7 z<0ql|8fsji*cLU2gVnH3Y82`{N>cN&*^h`?xn1VZPbGm@DH+@cPhVkJny}LKjZ$q& zc9_iDOkyxLo;lnPOjRZj%M&~fqEHS_aDKIusqTtYxC&jE?Il|zp2rnb=P5gE$0<0) z^)%qHf*i_;6G%>2s34!EPxgq`ME?Ls`IH|s*bjQcOV_txGC?Pj<0h@N&vdBVs}8I< z{4q*YYjd;~8gF!CpF2&hdhm z5i2Ve!;nrfQ^~B)3}tv_-~f2-*0zh9dJ`C^Ed+|f^=uY@BX&SIX2Am$&d6kv=*bvX z-f#eX=jdy(veYF|hiVjI!tUMp6H7EUGZmM}ju{+efshZls*QI}?!%hrM=NU-#^(r% zNaSuie-3MSU4XH9kehh|1YieJI-hL%dsCWtAjpmYq>>g+xcoh7ZYKLhq?0YVUO*=q z-NiZ7bJeW}dm;m5ldzEaO(O%fw_q{!r^gMviRH9EFdbE}eQGmqhR@GpWP@^_lZ+n3 z`WlwlLV<*iODW)=O3R(Tq{Ug-Cbn71Gy(k4^0H)OZ`agSU+kITe=NLG-GY zc?4HWFha_)&*k841-dZ&DNWm1$crY;vS;SbR~_qBiI+%{>8+X1BV9_uBNh_}<|39a zx7);3Aue5Z?j&(tG_%Dt5(i`qoG+AltjmrPIU{x>u6pL0#PjLPVNN<3D7Qh*_?fnM z2RZzzNUo%sMqe!9KZJ_BlL?n=5)&Uctz=!PwhmyI%!SFrcdel%H)gdHe5&hXpn~!= zk9?NuRCi;a{{U5HUCjWUuHcovcgE4ef$3E(Ze@+WWE)83NWiUVXO2fO$q-~=k%9Ww zZlAK3GSqRGJay<*OV*VT5OJShQHcOL&|xPzL3}C){>5 zpl=l|nVHI!=dbI{R7;8746z?D?#pgGk^N~(vwGOSW}uqh=0&SacLZ57t+$2gflXm6 z$nIin0&qFU;ag@^wu(Lbln@5t$r-Cjv=I!SBZ2Za@VGz7(5v-Gm{Zco#Ws_)VrKId zdSr2rYQJugMykb%hd(p*AXbc1J*i@5Vbl~Sr>-g)?hK+i8b&P|;YmQl02~4;V_%y= zs$9C5cXslv#HJ$BAv`~*6#~a2OtFlDSPULJcdcELM92VUQiCTL&+A$-*n=`o=`$w< zfMPSpO!lqbAw_Bq7keD*GX+&(NbP~vkSyM5lq2AD7|n0oJO?quX|>eyOr`k8r69a2 zgE8y?a(aHXKUj9r5TmJw923bdS{a5$dT=VtdR53%D@aU@!B9Gi)sAPmbUGZ=!zG2AM8-xZ`ut+rj@@r(o1*5J`E z?jqinva7atWqQ>W&~->;AvF2kG1F@F{cBZONm}GQJoIT0$Ph<|iTOKo=}`TVHNbuP)4`LZT4d)1ckywVWc(H!;1AXR;43#gVBqt?eh7%yXv^t-XaJ$bH)JSy99 zCBm`nMn@DM3Xm|4gr23d$N19v%|7OzSE#xfG2KkCWA7mC*A;PW(&jZ_yGwJ$XhY%o zRol#(Gt&&Jb5^6$rG=Md!{z7h;2OqNqknYX6kpm#47x1pGNd-)!K!U*G#p5TWY=sx>Dj@q1j z@1OUob<$%8X_?MOIW(n-i+VA~2-fK5e#0&|GpHEgk-@6$3{BGn{uR}xl^l7)whtI5 zgH1X;vCdSGdhv~cdmNw!P4?&w2jPbfG$RV(K z>zZp=!t65$C$4dfRjgXlyPx-*|bU4jKA`vJ{NZRH$@B>w=u4Q`7_qWQ#X7<4%1x$FM`6HjG#eygVWmX;Dm zw-fo{NLE#Bs^gq)mCob~#l0 z154#xbTLRrxHVpH7Td+*FYKU^Fj>;w+s^_(?4gDu$1BJL`m-s37T%Vuoptd9wf%gYBBr7s!jAYRy&0pBjeC!rBAejpWcl6X02P!^X`8vEF>#L`?6dS zo<=yXUtHGjEj&cFvE0cN0Na5gqL@*c&gGeiB}reqf;)81YAJC>Caj!QIN#NTD@nT~ zbcsFeXXSZ^=T;X`)HdVHkbl5y16jPevexwUitg|sU5hg z_nN+^V|^vO@8$XB))r+_v5o%#E2tka!V!>qu>f(LRCtdOG@7R!eA#iYK8H{C`_(x! zIQBHZ+IN^gzC8E9sFjheqhxb3l?7Z7cMNcS^Fj^Geomb$+rVZo6NimiMJDg~HjhGt z9a?H_?o2gH!ZGK5I26CywrAN%H`+k?}LaA`zp6rM&;2Nl=t{EgKQHazN=EI>0i z;3yiM!N~Ju$m_>Ss$@|pR&)pHgHKN-oP~8_I*#<6e;{-`%U{};Ab+iFf4fL^OPr71 zKVHJ2Rb7N{#UKD<41Ko_w0n2he#Lhu{?xcU?vsydDiXjP1t;GaqNm$F!R%7%cqjI} zXc?Krm>}S`02Ok_Tyn7$opq9j(D=(2(j0B-#& zz;&owM9n>nj2QI`JI^lR-BM&5OB3?4`_xiexSmmJRybG|W@h{6w*tCo`~_nZl>0@{ ziN5lMTsPy2zyAOTo}C_}lI~5n48P zG32DO7L0JGI1C8xE4BXsgmXzT6c+5n9!ojRRX!Bbl0zqu#GXhJo<9m+*?p^rv1glj zjwZ5?&5JD)xgalN-#D!OJPVyF;K;}>K_WDE=-%Ffy=G4hX>NrLyRx`B247mI7l5=# zXK4g7fY{0x%9Hf1;fsQWq@Br?33NQiMT=AZ&`EOpV{e!-#vA%qOf?ZKU_5awtWPd` z_Z8d!0KzY(dFEt^lo5hA5Gj&)S4?REV&LQDJITdmR~V-*Zd(u7vz51+ErbDxAY^eZ=THSu@I(@#1Dlqmf^4Ld2eV&JRkBuH-SSQLbb-KPl;& z^$EN`qg`wh+nE`Ampl)xD|k~w^L)j#MI?U&r9u3wNaAU=djg{EspmJ7%+`k)QUC-u z@cY(7YFBaFh}(03Fxle0c3%x>vVgK#AS4f)%sDvs%~$^bgd@Y@SRFjJ?zx?a{(MuV zilmjCZ})$gIv47BLf*-k#M#3P0;G+fQQz^XCA{(<_i}^NKBB#PF9!H>IRO60T!F(E zCqJ331kkiN*NrOObL$v2Zy!lLAlOEYx}HZCs&)p3;a*NRfPW$DR-%?!=O+3gwT|uE zagcZ;iuJgx^yrfj*}#kb%wSZ;8%zwwGutCI%{*Fn<%i?{003^4`krB<$hL?PXGm8& zR4-Bi<8k-nj@4#cr-1s)7XM+?HdOm>=h2T zG_NR+*(KETORL4SyFqG8+il<;cH@eI4e2Y-vE5wdSq9vFJ!{lXi(=>kS=(*TK)h3q zm2A<3lF9}_(Llvo#4eF1*z2P_$*v5s0Vee%i<&+gYP`3`?7eX?6$2R>w~tTt?! zO7Zlrt{n=_*zSf&kmuAIvMkU$4?Kg^61^%Mqir`1ORY{Zv^$9z+RPF{h26g=9^d_X zg2%(Ujg7?fNYWN%-OBJ!xf!nROIe?or;9x@Mn5WKc2{NF&AAaM85;&eA5Us=t1EKf ze(iY1+1-ADAuWNfVEjPn3@M_p6Y2dr@nDFUu=|@{;>VJ#&ie+6mwHZvq&} z!N}&SHki*NW6wqhBa?uA4LMh-WR;io>NN=La{mDEjOtE6l%$BmB&)99si{}Pm&t5m zc%D*t-mbX=&|FgeRS=mWA2&94eRPo6$hkK`%fkx86kMs1d#cn56U|_o&P6#MLBh-&dRn%d1B32u7 zf~_C;in&&k(V%oJaET<}X+OWqCNNRYApLp@ZS9rDpyAo^fK{XisP#WiYr2svB#8Nz zu&{12sx$eDY?c;xNa$_BK)i(o57XYIR^^rBxe}vva~AR>J0l386lFqVoO}Av_rGIY zpWdr6Va7_IU&^-O(Da~OA3R3D;BG%Jt`Ayk=vGYw!j}&Tbt7{wT$HFFhBeMoRIyyeJgiXn!hZA*)p)5?$>Ok8d%9ONCtn%KbWkQ(=Fpk3@))3$WQG_Wx)gWXKmBzx=qQo?_8%$a>SAn_KAxC0oT{tdFLB0{lex@X2`wH$3myR2 zIVI0=PlHi-rP(4l7{&U{AMES$jyO%9tokY>k+-%|BAKX@1C(Bk)G0?zqT2nz>IAEk z_?pE30E8!4vYO?@QO_HUsfqdT)E=LOdJuS&adZ@}0U}TFspE0xD@S(io~kf&TGPi> zT>(;p=y>haTCSR>FkC>3)JQt|;MCfFrS^sLZX{idxX#?1j-4yl=a5Ve;T(#1$UbFZKv0#72HFh=&LxGRO-n}41s1$6J`fVBfDa_0P80XzNYMM-os5<%OnE)Gx6o7jg_2C>%#Fp`#_rNq83ke8gV;N#O zEgIJG$0ZwbiDBD!<~)K!2obrLZcfH5{Y6*}Bn(>Ip-?v~FK|veSF660W}|ay(S3ZO zgZWiCv<)uZk>t~DkV*>x6Fa#BJbRJ((^$nXcb4TWGw5(IUrJ(6H;t{G#AF-}neA6} z3zKEypnTA_lE=Kr+?77Z@vh;tEjmcqKFjhDK|l^Y4OdSB*`t?=&R}ts3hXiT9Vx6# zHC(S!-WF+SUQ5e;K}rcyUAz)|5Adw*S4A3$DL>B+G7*;qAMXYn=Cy6KXNxNfOBhuN zmyiLEPHMo=?*8C-*?RLR$n@`7#mX<-xvPYhhn&gbZA(p-X)Jo+?Q6 z>-gdcHMEPC-HeQb*zsPNG`Y3~No~=GUGI=TDv~W0W*C<4(Hp2JrLsRBhOSPnP1pIE ztSU;)o>g;Wcy}KrO|OvYw=0idYRjKal~gQy+D!b);DUac>&1I}czMgKCH~bPe0fKo zam7kJJrgKjv}c}nLGvHRw503DL??xV-badQwzIsSB5e#XH=J=(Nv3L0Tei!0mj@t) z_pf4q55STr65IvP-7zooq4XPN1U%Eap28KT-D}^JPYkW`9yKnJb2=ol+07ln9I!)^ zj>r6IQ%Jps{yu(8fzTec>`S28HdSPpH(auSKP=QkK$Kje7<+z?9^ad%W1nAYwJP@2 z6ZLrQbH(JgzJ@`%+IEj84yZ^29<^U|*74*v6L1Aic&~Vu!?7KpTWt-fPDmaNR5x zz{rvmCj<WJ2R_`_r`-HF(kCd-b$PvWjI!W^){-xV8Y+NX z%;YwA2iy7%KN{1TEoy_yfdYN;A4nZD440tIclQ3!b?v2W{EEqphi zB*fe4a7frWIN#HQk@(hr&MRT69%qd!BHBNYBPC8Yl1U?vdPwF$CLTmwsL9B$a*IRK zV@6S>+mp1Z0tMwyy(rN1h$0x%E!Hi#!L}Iu@meQku-ycBb2N7@zFqul)MKxHaawwO z0&A7AmUeb#`4p$OIn8?-+i7YS$+ot_4CBiHpQjvDs`iI;zh)84_{muJ6ONqsrzV=R zDN>E@d1w3~mkPm_4XWH^wgx@wdw&X;;aFbP$_(r|+zy0eg5-~-NUyp~7b}sB^{Q9e~*r8Zka=S{QiS63EyMHz(o#dEE%^@ioV+gp$0q^Vh)SLGbN|Bzq6z&O7v>0UMgy429)Agj1TMZ<(Igj{6;t}l=0*0%!6zG)GK1=KRu9fW1Y_}{*VGzMbaQt846%Yml2WpD+>A0m4@&432)@iM z@I0Jt*@M!gV#6gzBca7GysUAxc<-7{DegG7wkke{rL>J9vV(gJ7Td|DN1*AD+47jk>6meWz;qdh~2(Z zk@<=hhC?aOY!k&akX(%|Eh8T#yh;xQgaV#nw=1;9pF*OTOpBF#u1_85%jgMiIqO15 z1oADE03eG4px80^Q-m?G$cYCzZC(Z@Oh)i28l90 zT<|;6ug%8epGpWLr7$4_xjCQ^@&G$V0j7{LImzwE6ad5$Mmzl6(?nmyS%Y!Om25cpk~?~_fD2N`xBN>2R%YC7Qj#gAMHKKkTt&qI#1 z^DJNmB~Cqfr3|Ejv}dm!s0Ky4Kua(IK;xcGCz@M0M%&o;{Hj9v8QYJiG{#pTg+&?e z%zDze2(2k*;N+e%F-|DM1IrwGw@PY9Hs9XFGwP=lavP#-tVif$jXMhyxt#^0;1uJYs^;qYUjFaA~bR`3px5(VPHs ze;S2^4LE1mBnJTPAkw(YTX%QQezce^{7L}htvNv>s5tCMrQ|pIuyNQN)d+)j8$M!@ z=qbuo)v|ha4O2QX9HHmir9{!NU>76sqQP;9p;(nIpGIP7?uCv($F3>HDHsI@arezc z5=CqVLQik0?X3h-Ew(%@iUeR3wzHOYIZj|go*Z(71!9}bRtwmMft%6hs-+>kzJEOs-?ujRVQd=U`9U*=XCud z;x7|j>IUA@*3_q$5=Oa_L!6do?ezU?=dtRCw5>XlwA6jwetIuc&cv#2QmX|K$= z{fZ&gziAPe>ZK+MK>^& zw>TiFTo%E=0~i>^OCN=__-*92iKSTPu@)x|4ihYMl0NY+c|VnFd2npp(H!>R(^WUI z3mH&4WE!WG(0jM{{KxegUSeC?8%(d8D<;)dSH=_pjxaONUTZS@!mpI2^(w*e165lI*YGaaNVJ>Li{-mr06{<3Cv~j3h zqupOzn_(hKwx1x3vJh9DyRncCH+B4}(`eA#NhIcJe$djai#iqE9?(El$Rhw2;~&IN zdc7^4=`unO?&q3V>{>oSR0GiPXjv{9Su6eH`i&b9#cv&zt+liutT3X+gE{#?z#ovQ zB$&pe1uSu#;-@STMo=H1=whBE!=9kNW3@VU6-K|o6O)iRYx=E3Z+k1tn)Pkg`Q}5EH z+KLV^zfn-QW*{p72O|KAEny}#vlzyCJ?X4pb{MND>GF^3Qk7o2*^jy6o~{vphi-V| zr4|CW$l3n@SPvZq6*|hyNhyKXrZGhpK+aHV4;yTbQlxQ%QjKcsASvW=mK;?Fc;o^8 zO~V}l1XI4%7$8chIN$?{_{CbH*_)>mL3NqhMORRu=PnN)g-Uf`9TS7x7GAZE@*?G$ zSMssS9)g8v8F37wcVoB{TKieGa+{5fl+@yMEb5Vxag6t;e`s5_-<0I^A$Y7#QF2E9 zXnH+U<1e3+MAQ*x{(_xZn^eI92A+2DaFo-^ef?5rg{v6ytUX+F}F|(2hSEiF6%WSc4_LSoBAH zezXk_S2At;9LnHz?NusOZL|A@XVD7sLy?GB^N*L1C{{$yBYlUjJXDRK>MD_ywsm94 zIL{RC_(wH;!AvBA0oy3P{w$|j)0B8eJf~TaSwH`n=-eyNDQ!DE>7RGcynJu)f2c@i$ia7IP} zuAzJqp)mKkZ)o_bm%-5t=IM`NmCY}x*K1TOGn8w&Lj_+m=Ijuk~{hcfPL*+c&+S{>gnMojhMRr40xBdm-dt#dU(jegrdkUq7k5<0#_#;YPPFg<**-C(|?Cei> zjk)^NtKgik?zIQpJy7#o=UkBE%d}=4&g^2Cy4B<7{ReN=>8vFlzo_->jI-dhVx&sL z7zB1|PxwP6^K!GIMtZ0R{A*xpT8nhHj34+B{*?=AnuKk&{D8x#2!F=2#77B-f}LFz z{LE`tg%!Mm>kL%fD(M#}ukf8HoL+I;QA)tGv=RfG}9)&f*2l4fD#l^U8IzS1KggKU)mXK`(K2=$Un3&y(RcD z8^Vst7Hv_P2WDLV09u52Lr=hGzg!OLia%ONb=@iS_q&dJX0tI0zZ>agPwls)K3#|%ct9x>OXWcDJ`Z68okm# znY0jydLI0mN13H^z!mNn{{XMWH%cMS$xK>9}4t7m(1=8VBEcbWB8Oi>X=pdA%8T_J zBfSm^%JZo1Hx7RgGeEl9xQ16#(C%H>AB{Ci9fan|8p_~|B-4O;4=q#*&zne7A(}?H z+`q-pW53d^J?+lHi9=)RGf5@Sn+SR2Uc4fyX8k%-bm9u6hNY|os}0YNq~oX7r%Pzo zMtzDS#{uQwR7jR>9`h@K{lK|2up1zZBonD5oRA3og&dJvAvwwQ8q?asO8t}u&PWZK zGCM$vo^o;0qhV^qm~KW-8)S@%iBZx+nIUB-uEWJNfV!YanN)@{JMO_W$GUiO7G~q1 z1CP$3D&%8ye}JYbXxD;C&pFg_$$*9iIfJYv<=8`+9R1LD9#0p_;$^pne+*8>E zX|>~HCIM2%j8Wzt1ry9cA(5NcAb(1lIHa9%CB#T^z-~$W1yx_2bFoG}GAS8Zfdgng zj!iKZjhRvipP=K615odp7Qx8_p&W{0iArsEQ``_K8aHJFdHnj)XbHvZ5DMUx>Z~}R zT$WrAp!)Tw5;CWNGye5Rsx#h&aL|98s-T8bk4jT^(h-M1y#NV;Q9cLEpnXj+NaOB> zC*0zw3I5S2VA~PTIQdql{?M6JD#EHq`y&-m43EK3p1Vjmr z_(F_Ozc?qzQJ$qZsGH^am}ibKw2LO;kT8CfSPM%D^3Enz1E6QD3r#*}@jGhEi)4-m zwn)*6nR3cYu<86fcjS}SwYNAN8bdfAD@d8oPV~c|_LX;I&g6CPQOR;kW9DO8>ZA4ArV$cvM^ngZih z0OWP0^3=F;i=1O1b5XqeP5>u8Fr?D&m6xIS9Wz3(?8zNbvOK)|Qv_pfJiVjRgkpFK zK=(APsLhfNdmPgXhuOd!sKqtoP{fGiB=s$taM*YbN%~WQf!zKytb|7#WPi^w>48!N z0-ltHJ*4A_Pt%%a{s|1mg+b37PuDcK2Y^QG`eQV1 z0&W0&pc6xu#1hL=IPK_c-Z9Z4pK)#E)E3UZG**?`O;W=?w9M zh5&!Sa%l~~je>1*Po^oX215h@=bpx$!6HvJa5l1$(0rs*hVTzSK8F<=uqbdcdgQG* zJ2>dTdyG@K2&J?Bu}gbr0*p554O#_tif3lr)Hrv?R%NI36`U@=6cjE$D;d(xRAWez1# z^~kD1u$d%~7e9q4!TFsOF!dRxq_HZ3UwO|^rldCzraoX8@+bl}idjYpMFj9b?NOAP zBe7*JeR2g%*8%?Sao=d*(r-bW3^%PSARPw!RRti_|({qMlj_1 z;+o|F$Z~y_iwuOpvA0E*2mQ0fPaU$4m~zLdBbs4Qz+_0h@=hs3M11`{J2RB9FJkeE)iR<53UC^SYpa6rXDBJe}D)6*dT0F4$HF$EuLqKtnCsN#)6lq_(0#(1e<5XT_~V%%~V@k=m9 zBc5Bk4xg1P42@z@_Y))6Jt(P51m|NOJ9MIfYI1|ZI>V5w9#`{Y2r;sL^N!%xedhK8lg{LT2NmT<0Yz`Ay_aK&PlwW@g18RDJhWbscyS(9J^)KV2z7$6b!s*+tIb#)l`sDHHK=w!_&BsCUZNFzg) zP!F)F0Rz2eoklQD8A$GPP(GwVJ5@>TgVv5{pyh1ZE-}p;g<<`^U8RUc9_FHLLVic? zN8?M{A^SFO?q5;)(dH+r{&mfZ*<@4mzEWV^(inrC%&Io?)1@5p>^?}X+15?0 zSwYN`sHld&V#-R)4Pc4$8F=lu9AFLK%7V8tlBOaE!QP31PV*I@Z!W!L-*!x&twA=t z5S^;Lb|$kH-cY2FNykF8u<%17=;+eSa&~=!<7T(5K{x zXW1!8B#gpN27cup$-bfO7erFGy40kFJo|<+W9Dea6rXJNs~%nBkDB5^@4x>5tyTb( zDa1?(>5eKl7i@qRkc@Q5s`gPt`&K~qGD-@WCLoOGaX9?w79e0taK~uIS!!V&(HW9C z2m^vxRBW;gZa_z->J>Pyfa=S*&m*$VHjnye%_xo{FbQGn&{71?7*M99L9sRnQ$3q$ z$*0L4#PiFz#a4{`p?x{26qall(4Y2Jkjb;E!oTkWM3=r=fR7UTj=8F`LCo2s_Cg{I zzy|Ia)KytkV<@IrlRX(*B-KwiN~{_}RgOjvN)ZtbQJWv{W{X@`G-NjLVli>PQTM)Z zpneryt`H~;$(-T9$^h-y*ES zXN-}6NCz1pa1UDF5XLxF&$esHj#r43r39mOXM4V}xAOeXNnmP5a;J3Kd*A*6#r>(R zJYn`#x;KT>WH7Dc7Pc!EaV&YmD`Pv)Ibc023N2RTX^Snct93o}npMoYlx;C@vq}>n z?a%Ire5eB%A57P%7|vbwVF z=b<12^{v*9B^fo%oz{d|rOPu0J(m&AS` zzjz+c%!DIboW~=og*#aFdahLT>h?)1d_G#0^$NaUfBXZJ@XV6i-pye& zahZa*n99VoVlt|VbNnPWSJVP}lU;V%K>0xn++vU-k~qN6eALG$t_QiVQ!K#M!%C#8 zTi&+K^uKhwop@Rkq~zsoY(yhqp1JI3g=K}Zjsp|bQwQl&c}zw^oP7;OcgDe$*;#rK z#d?|@x45h&8QjMmdQ^T^kU?g!L}FQH zU|hH|IdU>`MoG>y+qFMy=ZEH`IZ{bZ2d-(pU?)6adQqUR1d-}Kl&iJ43`cHFF_(J= z>xy5S2R%EA0C3I@89s#3mg#_gnWl!$04fJcy$!rRN0}w!D|QMuQ?QC{ARSbb=tVQl zbATewJvgbw#j%iv7X%LBM?bAQ?Uu?&7KDI*ickKva^kU+Fv&`^t$!x}04tf*txk$g zdKE)EFb=o}obD9mlnko}{Ho#AA~2YZnuR~zd>_vhTkR366C6&U_A+k%mB;M7gSOktd#K)j#QoA!~D@_w|dcIeq$kD;csya)XJ z{3ZTD_545cet+a^TIf$O-#ffx(wzD=t*mb$ymALjk@#9%|UUf!)psq zaPh+u^?4ixABm>3ti9-`ucW`oUtXgA*WmvE$el|tCxF@Yr;zLya|5(vCbRzlwyc`R z?ZWEc?3mA==8c_k_quiBn;yGiEHTWNcFh!xu^dXcX6b-?pK5D3!GAmd0KjGbLwM>v z{{RR6MwlcIynhNpHy^%7)0(Rt>~c==D6*2_9S(k#*@nhY#HQ%V_VR1< zHKke=72v~Z?8MQuo~%dXO)Py6;Ay404oBl%HZ>pRb@`|eu|IsCz*FH6`GCu~r+vL^ zZr<-rQWh9a{{T>#G$@MZ8`{dKS)-6B_B9Wdrw17a)YnCIt0Ym9wsSxG-zfcS9$jkW zsS(&fnLTlmJ?dFXf79jS^NP$ zKECv9mf2vji4NMB#MzXs*+Ri9Mf@u^ETjn z@F)RD;O+M-)|e7ElmR3HJqf58A(6R{pJk_RMaX97{mfE{5Doz+*cuwRY(~o9hFJ&$ z_&}t?ar?5|^(})^tK|OxtCOEwEIoo#7HH2WJa;1%KFssBm=TW!0Q?0z4&xRmor8rL>}f&} zSO;V2j8lwfImhA+2_FY;@5}sYv@3w$l}{ze{_!G$0%Uo3J-gGeN2sKD*^YNNK8F-o zE;s>!$OQMO$I9Hu8$XRZVz0_rlkRB*Lut!VU`$qc%5q6RN{QW&5Q@C?Cjy`La#)?f z{RSxeEO;koPpuk-%7WfW7?-$J2eJ?9Y3zj*F755ukFfw`KozM-yWOT(*TY2Hhg@`_+nuo~L z8eQ#n@24bTKpV0Tr9!PB$z~qh=B18C2j=P9fG9}?$wFXZlw&+*m|{@d#7U9dE@>X+ zM^!v~j%kT2GnU=*k-*I{YD`YioG;~3WuHHDX!Yw!BRL;+vFt@di5g70v0lKAlmTQe z7-a4}M;ud^40y-oPzC_!<^$ch{HjgyDLpel4k!z32L~RM#fg=HGVb=-ii_qbq0EKbD6Sd0_x}LvQ`a#l zSDo3r0!Du-f$XMq$C>#O2l&%Ql*E1a2OUFyjZU}Ntvi;y;L1kwGwNvAGyHk)mI9+o zIbz|nARRJk&1zc!pa69FiN!rh9PAO7a3?(D88skvXUd#o_;}4$dnp8ER^iltvsG5n zqLV6;NPCui3LCdUq?xOPkbH!%uWC@yA?iy5j=43M#ntyPSn>Y=O?psbMog@#&FtH$ z+&N7)SR`Zeg5#g1DJlm8=J)AX5yRz3(@A;dfyOa|{OZIm*Yj+*xbq4P*?*Ns)|WSM zR%e5nLr;I7ur|~?|%!Z=xV_xFs z7#u5IMF~9y25A=UBXSz_5Jqs_D+V|&=96d2hx@Ah{?<-A@G9 zInp2~TZie_jMLeaV;iu21tf4eJsn3+m{VJFI9$2ot~mT@Y6MqzeoDwA2-B$fRk8+s z%|iNyJfRu@GyBYr*zNfG)-Q^63ym(ud#iPhS=LCAM41YAI;S}Q0D7=)JV$?~+v-tX zM{gzFw6I4L!5i#vIE7rUNhBQP1J4-7Yv$`_IM-H6m8_)F`82;&cr~&3g;G(4teann z-W@_7(UJcE0Uc>Sv?BwBZ2IjV<6JlP?yhwEJX*w;bKjdy)4?Q2%dwb95S_!I<2{Ja zda^Z(xHa=*deFlVk91$?@BWlRZeowS0E3^9f^ajM!RA=?eOF$cjK8!oUD4PbLMB`? zw@$!PE&NI`s)l9-TPNltZvdU(>Vum^{N2maQE;w+`~Nt1^Sw z98`X6na=jlu4_A4)W5Q{xo*TwD~u{4sX1bBGk{1O7^r zo@6>G!VgWk?f+>;xV9@x>8s+B?moPT?B4c?gpu{2JdSgAgC z`CDCouP}0`ukSq#d#mdkG$!I`&%36LJ{g zSaI_LLF8m`Yd=%cPl+roF6`N2i0SjJNb8Pfj4Edx02#>odR54Di}*DoeQuD*1&mgz zrI-!M>`x(27;ZnMYZ`KN?|C_Y!Sw7}_Kr8Zxo=j~f3mdKy7J7d84(k9&{^0bDO=9MAsN21@ym$6Rcd58OQ!6gu+xFxPXZU)L#>xb9n2UW|7Qc6+(q+3X;T)#F9JXpv^i^s_8yuE^Fz(b?4gu z0OlyVoVwos05TQv3bvYVrLwokxodF#ckWvXTX>MK-8d`L?{V*1I&J!DOkNvpw&;uV zw+GB4B|!fGXQ4j4b~R4JLe(rZ``CnV+MBzb=@eNp+M!hkW>jUkEsO!Vzd1CW2IEZB z9n^tqwbcM-Ehbq??gW1b1Ot-QBeX=iKxC5ZIRRyhteVT08~ zf8$!PKo=irG0gt}-Y5aBF!oV5@s>T^I(`*e;#lTobYRE67XVk@#x~IUS1Xb!Rvb$j zXP`Nz%F&zzm9w9{jw%z5F@gBg9V8)%kPbhFt)ebnSt3O_MP~KM#V6bGk>$sO+ZB|^ z`@t6uG1LQ)e>#}CJ;}#?v?dlV$*B3iePjH(Rds9-R1SKa{{Z#sH9Od=NQ!^kBvOsT zB)oX^9cZ{%m^+8gPJXoi05U`TOfoUas&6dHPBxA>??|)E+-wB*&-0_0EX!XoA1M84 zp$<9`_|b_~ z-Vbnu8ctf+b~F*>jk1mb`U8rH!X3+(W^Ynzx0LzjN5`)08c_)c<&lZ?CZ7ETYjrFX z-Hq5Ipzlm67C|`AZYiP`KY8*!Gf2^8zVI3T^&z5ViA!w&W|g7a`~#+WBB~2$(ek0Q z_2Q&eL{f+vvL%hgk}@2o21a|(7^H<54a1T*8ft~;5Pkxbl^t*eJw>5l!rK_K zg-|kBw*t9u6536yL1m@d-rQQjcX77j;@UFBV%WqG-2fy3_}4;M6Zb}XQyBpqoCE2_ za^fjfoZ&i6U0;7QIl@h;N1>VF{XQ)-Nt($gx{;#1mt$OlSdCl z02hzHYb^xq8KcbL&#! zy$9t zC?oZx0dh{`pRF{ila*p#F^xZR!Tyz}z@l?j?jPFcn~fCefZfMAy&i%>pX{_r16Pz9HqvZ~4Dm0p8r z6&lQnaH1^xu4*ELb#v?mGzDJ&0F@1bMUik-gQEe?an3&~N07+bmBGhh#X=V&f@#4< zfBMuRH)2L)W!k`Cb~Vd*w%}VPm<{xncJg1Wb4whXK2I(}K|O~9p51uHYoyzbLC51> zbMXhnOBLRqr)jsbrl)OkCw216lsgDj#t0C}T>K4*uPBCR@cww%vjD=yEu$BCmV z(~KkL{{S!Z9X6qN9)%B;dh%(lsyssSTenQxg>9v#P*^VhH+KMY&0mA8Tcrn+l*?<9s9E*T;rM);9(8;*0HoSfi#Ra=h{={A?m zWi{T}(bhL#Er>$E72H6=gOP$xE9Wtks^RJ?T#36krQY{f*=zp*0P`!;of+~qcfOx@ zW15#!ytlaV1a?;@`uT0{CbyCsmXTuG*b%fj+K#!v!1=bHdaH4M>lNgBF0*xWXXM(J zx%)ws#WPN-Kx3Q|rzLt0I2o?d^@|9#HPhOBT(JWJHYym5g)NPth#3H!kx>s2=~=o9 zbDy%YNs7eeEAHF3AadJ?01i$@E1osvto@UFKV7`MwCSrdQ-8{5X=QEoEk?%UP`EKc zdl0uXToTO960uC4SQC?qo5joqm2ReQvu?YK{VephAnp!x!5IK^$ILTVZZ+*b*4_!` zl4KL-%a82xd50Z;ceii@zDE@e&x$l#WkW6U5hNnvb|XGwIr;ujeqIhwLEjaM_O7IA zC_O(lr*8hfWG-hVD;%McSJ3p?UgkLAgIRNPs2~P8avu{6{Ge}T^-w_S1!xC-Ur9%n z%1w-F5D0UFL9o6)16~pRb^;HRj*FJF0KCnk}XZi=(Qi=JExgt zhDB29R#{~S=4lwPWq(H-Mn^yjfxxb`M#aK`gY>Ru{{UCGu+=SX{?BhDbIOsZOM~Zg z)%I=sqq)yPpK6Q#5}mhK5G*WZR%D41T)Vh^fk?;8oNfo7loQ4))5~)QhEjgc{MzW( zq1A@O`y~C{&a!AczOD;npzl#G+!Es+ppjK$F36@_mjGld9A~{L3*EUswe=W0QpHh? zXsaiG!PxbvR8?uIuBDMAZNLS6%}E5(#O`f_?#2mDYKG9K0I1JQinSf>%n_7^P=l%1 zqbKWKH#M-6tmOIABk*up+odQifx}c%++4m-ogv-Sm&H{@oe9}94E6bmsl9=kC7T?N z#*jZJ2l~|lvbW4#&faiMO(vy%w=tv%C-;nCntZ{^S`Nnmb@vqEySOLutobLqxc>lO zG0Dbu0J*4DBtl=zVfAA|o9qrIp=LS8N7Pa*j7}LxzcooEn?JmK=b*(;=TDr7)rX}V8UFyjg({UJ=Ey%< zjpcFC{{Tv0nUvv}^XM}`iv&h{pRQ@XTzMUTI$)K0d8B{9X?(>UWc=_c=o*d)qoR*a zX?7tU1vAbB;aPF(nnQ4l*ChK22WD$&w^mkwv&MYRfrmAsb&F09&5{1kO685xp4~c{ zdR!|G0meP(<|V}GTUfIRyK!PWZR<>JX33OfFhA~R6@%ufIKa&yZZby{!p8UZ#h%T( zBy9R6F}286A+iT8oCR!FCz!dwVV^-uzatyEdQcWG+-p+H9wN0(-mWu>%br{7g#vrW z$M;a}{#9ZaWVwB@sbk-sDoHFSiy4n`_U5Icld+xTf&gcC{{VT(6ss0T%faad0q97l91d_X?NxDk4>RO_>TjM%!nQp|Ge`;((2sg| zl%#jZ)|JFW()VU><@!=I<0C9iO-tk{#uZ8TrtEB<7w|O4pwBUS;kfF0QZ>W?79^jc z$)zz2l1R_jH18}g@eiOBwG9zh?M%n_cFsW`d5#52CYNX{8kWa%PG$p=#CrjnXfER@ zr~U>FEk~gcGnOUMNF9f2czJgaQ~~wrO0Z5(Gi~}PsRSe*8H-V77c-_y!6|szbLh%Q z{&XEfP__p##U@V}$gMJ`qi@HtsG8E<+a()5xv6n|7}S?kQ(a!^-)xqL2fCl}sfMBs z2bC!L0a7)Td%jZ02c`uZVL^bvw@*_|DJ|GuJ%@{uKjn<yFp?r;gG#bi|O zOyu?4Nu{W0J*Kt;Ehx{XDGc$c;OCB{j8P@93$?-kd!DskJvI&bc8%DcGyeeVq2Hh@ z4_oNf`H@KWUX-nUZ6@Fu0q?~{C5%hEGQ+pJ6ct`e70Q@4Mh7`n=lRsPB#N>$6vE@> zjFNcbrf)GLQdA7|=uJ^uC1QNpC2|Kr@{i|FMYTr3S#$K=kH(s8OrOt+Oo7Q>p+;!} z$FQ*n>S{9$qXK_;r@lJVayT5ynU-Vu);gNkF=ms};psCyN_{**1G%7snS$&SpR(Wsq>E;U*0 z&OXM??pRY3U$tO7-`$hg;ML`~J220mU@=g&m9sa@xjnN<^K=^J>=EjglN>CteHp+% ztxmGa#1-;3`l-!8G}~jrjAPsivGzEGdt+5m(}B{O=IRdJ2Ry|TlHi{}xu}K7$T&Zh z2@}PPNKdxfoNG@LZRRoCt03k($RTj3fl3FyL`AF*4$Jf(nph22Q{cNqIas`m-$)uij=k>$;F>2+x+1L;Qtre(d1yKljO?#Eb_&r9Wne&df8W#-}8!4?-$K1Y$j- zfO~<`wtTeq`r?qH0g?~>^G6~=b7wDg4)2(}jgE_-=|yy&Tt|@;6Y5tKR&J7Pu6vYM zS=3|IQ5|icPjzA+ksu=&1a#-0%C0u1U5HV%o&doa{A(xeT2hijBJLU9xWOLhy*3S3 zOi)Zx1+_#+usBkZhgAeq%(;$3MdA#Bu)aDh1JPM6zi{#LH=Vch7M( z%elzMEX|h4z{fqf#wgS^_0#psJw8N)t;tp0=Yb$BSPVywS0D`MzfKKSZxc?oT9xV3 zacyNY!Mx4OvdOTv0-PWmlhk1Fde@Iir0kogblv_YuHVnP`5q)|EnKPI{%?Q0fJb?0 zEycY09Fq+{&AYaf`$kKHEUGrB48!=9js{LS;q8^{l7yo5=y1%Sw5XEPmZC z`GRav&KY_fuqbiZ`ie=;a&9#L0P<(IZThlQ(|^PKU-|VlV(_+&3d|DS%yL5TY-wGB zM*jeLQA=R~{{UwnrCk~|jIL&I(a2&*aUTXTCjr5lD zznABiSXq@y#y9+~pnS&&MnUSt0mg9Y!V!v#q?>yDQuX{1FqJs(O+TCe05e|KK(Ms5 z7IyJYZN#EqE=lB&ZU;ZaPZ{SO38|9TPqVvwqqZre2PK)Y$r->r43IO7XB^babLHDc zV7z7Cprn9q4l&f@>rdUNw$T)b>ccO<%Qtg_+Pz#Z5{4!;>P|l&HPz+Q=j3-%qeilX zoNasGR$H`@6)_LpIL6X2G4!jD*~sj`jikB}E0e*D1tPWKv$nBM zke2mlZP>4+qec{a%KyF--m*8=Y zyi+8YN<%7ueY?}p2|~rZgSdKg%>&B{aKs+pHA1r>Jb}3L(u_vOB(e3upb12ajvtZ1 zr7XKaEnDI+=L{V9ie zJaP4>ft-w=!kdA+<|KYNpajIDKRF(l#UW`r4CmZa_aHbWy}6(^M@;s}G=@e@n9hGn zLh=Fkg-kJ@m=T&|FdY!%+JGWoGyBw}%h-x`@PCB;4JPjVD9s>1H}xP=G>i^G0DIDh zPI3butv`HZWGVye%>YKZo<)sWi?P7kI@W_|GNR|r#yC0T=h#$mU(IY+%2*V4VIEkI ztys9$CXzCVvOhu>CqBPg8Vi-%O}QA_2>^c>+n=RG&|IO~(MU1=&T8~}z0lgZjP@mg zt+-e1F$WH$bSwu4=}jgpoT#>ypB`L<{*)U>UQA4&de=uSgwk>5fPGVnrEzEE0*!cz zKZKsS@AajAz4)lO-!BF0zm9Mb}_XC_C_qSVUlrvLyy9%u_OLgaKb;!2OZfl(GM^K<#&Q< z-;YY>lWQ4GujQBL0|_OLb<78q#JT>ZAVvo=kg?PY2WK zlZB~R-h4u7;xn_Z#(E<1Gu-_-^DALiD;-hE+m%HvJn#9Vo}~|M zT1~x@x8_L}gwuG2=TU?~eQPbmcP0MYBA6H|uiQ{k{_aL`>C&yPiz;ZkjhvSD*GA^< zS;S8(B9&=346ssFfbItb4tv%G--)kmAhXl#E)f3!XSbIm%`Vud1LeU{oQ#jsy%lD; zNR=a0Do=5mB-%+T6+tC_ZoE`Bz80R=!sgsu+q+Gq{fS#74=}WhPBFse#yj!SyF|K? zj>&BVqo~3W{HdFwk=V&@{{S)Qxybg#bpHTjt7%j4^S|oOkL>mQ#XA(9IF=a}B9Wph zGBG8vqd6GkpRHo+z8h_7^s8B0Bu>%!w_bC3jHPuN>uehfZ20S) zxHL0H*eM)~p2U+`)5u{?eDSF7{eNAEj$IV)q|6;(Nxsze3ucPe(j|g;q+9PWnS!eZ zWDB>yEBCR2czK5fJTcN31s0YL6^y1yXmNFJv&^&qh& zNgtI|ayTm`H>Z&Q0JEaDkp`V@Exm=jGtAOU6iSaP1D9YhTk)$n>NjKxc~Zv#SPXH2 zP`hEUK_}k5d?p=XsH#cc*Zf`o08_4wFJ}b=#CZD`$9}a7uu;n~AMawM>e&jJKVFq5 zl-^l$67%1sZf$ZQGdSeu>DHYb%z*D)el+Z^3EDC}C?|4Y01vqo&@q0}r12XvUft<-$&3Y3zglUMOkl=-y=h!5JUZv@pUhLlvF99qBCBvlOf8Y!S2VGbMs_z| z>q3xNv**Xtc+ajnQi+h@Zd2}RsZ+aw$?cl61Q$0fBZ3^T>&7uvaadC#XFOxtq8ADr zDh6jgfXP2WTXy~%wvIse7h9AJvJaGJ>(>>jYinn15~M1m5=ysI`O#?w;&RT;iW*4X zJojbdm|Y!CPEULemDovc8Cww}j@yoNRVULLM@Eby9P+?+{>%gTa zIXeJ9ophI0w)Vwc_vaD!UE#F$i1} zf%L%Un(_IHM*I&$T9VlbWD!SUa})mnvw%N5{i~HcXYrM{DfBv8t@!~eJNQ3j1oZf&MI*z zh?vA^2;ku}NNwDm!XbmtDrf>Ie$@u$x41E@b=Y~U0`mD4gI~$>cfiP@VR4i8c=L`< z(~(Ww32XpLoeAYje4~XJ=m+(w$80C(PY2OR!0DP4QWI>0$ROpP z>Ds5Wh8Zqb%^3rnll@I5PkuiNYpR|Kmj3{N)d=ft}Em<`hZkYY8n%o+7&YRBvryvPO*gmSS*RdsZcth=}~l z$Dyu?pq@^t5cbY#sb?mBVwm<7&+Jz>HI2Qcm5Ru~D2%35anEXZ+96O>MZAN@Bvqkk zR3DW;0a3JM0tnmw>hoIJqArIe#3Tl2nLV>s7F65vcjK*8L^&l=UVptyBvS1kyx2V# z{A#W%B7ZRb(xiXDfBN)qz{cql=%TX1Hu9*f$NR#q!yKXc$p^6%UF;S`jmX&>+_$L| zZwf&&5`8w)S_N4K*w6dQ_{BV#LjkeRzZCD>1J2u$HPjm8DW>GGAvZRCs&=)FPUh-8O*A}gcB`rS9%*Vl3hQ=M5hm64 z4p{#HDzO#bN6I&P@zReZhB#Ir@y9h2+c;gL1CQdx7GuzzWmA@QPp?{$S|ULYwN8No5GNaU|W zQjCTOs|i0|ln9vH;1d{3`krbDEhmtW*Be*Sc&Qp!OexyFy-({;RW3Ijq*E5Ac+p}f z=55^a2_~n9PJ#^VRU~@Vyea7y;%TMAWA{fM+|uQW*2CsxCe)CA=;yJfi*-(bdz^A= zz+(RZ!y=DRMM?q3-ZbrTU6jneNXG+?1`R~__~l`CKkUX$XcZvxSm)N9K0}nW}C7w8wEx^=&hI#mvjZagwLL?3~oAER3Y>V8n5fDaHUm!j}5J z1s+nU`B7K(r)C#JVw!Lc^11dTnjY|@k+460c&D^1KyBk4@F^WzAmEYT=K~aKJqX3( zvvX?UamfT!t9rS>Ne89}G{%FFe6z=W^q??I0LR_Pqfux`C5l0k8|X--K16w7!~s=| zZ5PbR7+i7!l1(se+)76t;xYkjb4ABwUlJpM`_a$7DW#Wi+ds?Sy+*tO4=2zL2en2d zlsHiv;E%jiVvCbv*=Wk-zDHc{rWxQ~j*L$j-`1-VK^vo0Q^RF4KD5yzIolo=9e}~3 znFWhJab8d;ABm-F;->>{J@ZuBS%CZP>4QzqP;T4T_<-VA|SpM#*pr58(iFLu@%s6EtlZVjI&K!ThNf=HF=j;av3HR5wV{ z26+ZCfEhDRF{Tb!lkBFSFmj^#xQl5bXu|Z)D6IBfzyrK{;}lZnVakcpG?p?32+lr1 zjw(4kyBN310-!xYmgBcdP}|j$&BUXo)h7qnrCGO**Pl1@$*yu`1u=(l4DZtQL~ z7oG;xOZyQ^~BSDD#w+vW-a-@U72Ly47 zx&HtN^V#XQ32%2a0%_jk&O(KinYWMwDH!TG2anFVe+o-|bFJx;Jj`uRhpie^&jwaw zhR3c0{&h>@9;0_@uEQ0z?6HK2PTl+|IR^vWS0)z$hT5ucZN7W=IVfOg*Kd_s9X_3* zY4F>s**H;@?9YU|ml6&NWYqmD)_MMxX?rzV1wCdpLs?ITP*NpwAFG0JE{T*~+L{=ebQm6hSvs^nm{5i56iTTcg?t3b|r2g4_}O zME9<*$Nn2WA@Jvy22I_wiDMZ9aK;#YNX|X$$n<-7G|R-9BPMQ8GxN99;P>lOgUj&s zXs0{fdH(=ilKC9euoUK%&sp%Fjr46^AFye*lPq?yC<%6eVMod^K|Yn%#c(&K$jICS z0+07c(!7ts_F9gMs7G_9Y=YYTfJb5+GKL@xzg(PGz3J_-Ei8b_kWquDhh|QOU$ulW|Kk)yP5JcjAIpTEaQjeT#|o?j!jcHw|lXL3Ont^ zAKEHVG?FMC4;bdXUv$$_ONa}wK*byT%A+Uo?OFF$QYrwm&IUQmo3r_vsdKAJ(rt{R zsq2+I)^S-~%a+DZJ9wyedlr*L$t{sf6C{RA^dl6YP%?P+rf%#* zFztbgRzOd+am<+=hG_@@;GC)FihY85uK_A zN&Kp%pNMqJ!#~-t2l_l>S1hc6CqFPG46g@~kx}@BGk8~4U%bs{FaUQu2*q+U!XtTasBw1Re*=&whEYi^axMuTp%{OPQ@N(%m}sK7P8Cs!CUO zxzn$SbjGln_}(;j@G`88EN+DhV{StLaCZ)Ij&o04cE(wtiDaFmokJ@9o=k-#fLrDH z0U+SE0mWh`hi;!pxwm_JXf9@!-JU^vEaE{NfsS{sSAcLi>&;%(G`qX4ZqD-1Ljy!p zebAki+A!H@%wcxAk<%xFNgn*poUdf(*RPVd<9)vCnDWb`WytmYHcdzD33Z!|<}vax zQs88$d~GZTP!4#eS@@?)za?#NjJS!W7)Qe*<95@Jn2d~pk~7k>VDSE-9M;xu*1y^I z+JoOL!Q0Jk%Yx4Q$eB_LD^8c>$e*;|Cowrzi9@sY!Ui00N-R)*dlAX!nOxGcMyKf80Z zZE=oAIM3&)brjb+Y|t#eMDoJOB#h_FVlk2QHP7jK9-*g6b8~MFpJyvs2vQhiW{O#t z?#TZDD92&ICkLs(tm#Ixr!H=8Zkv-8Q;Kc{3W|bl_)>1^^V6dJNV&v~#7vXoGK(MsvPGP=->t#tRVn&lm$30<@fJT1!;c z+P8f_roZ3~sq4Suba>+=lSaXg20iLB?fu{dCif?n2EO8l@S}dn`WPq5iAoL$0DUPo zkMA6I6wJBwpu3;$@#-sEqKAcC1Ky6j;+f_+1hL0%1x;%-LSWN|bRWVFGwn}(0g^*! zJlw|)Nf0i&+6>l1R%Bn}dT+o5*+vA-MUwnv~l`6ojb3wh+g*TctPc zchL;3#Dmx#D%iEO-T|GIbvZ&Q4Y=NXyOm%#108<~Z86;xe${rthuW?eanJh0KrO8&A&v${I*guaKmdQK$j?E=PO&H- z@$nfW+a`jU$M1;t2~NUnVzys!k7u@N3nREJNB#6OQb})az!rIU>bUFr)n>PccgndL z{v$)UXiXU^0rMAw(42mCDVk6+7%@C`sBwkBi81u1w)Sny8n5C_7Y)k`JjXo-dWu6V zrw1n^zZ_ISSx7lKrvCRN=OlWHE*2**CUVXB(;7z@3cwDhnoZ7B<%Vby1qY!cur$~X z+)2w7$@Da#zFcGx?kU3gQZeP(tI6ER`2+A2O{hG|RKl?EHk9Rw?@7wQqBO?X+*jr4 zk|_!XZMzOnU^%L$?qYw^A!h_*mLu}TIa=QgR7|AsdK!*vkCw%afme12P&3b^Gwl%^ z5ZR};1Yj1EXdfwLC!b1_Y-<>Ds>jf;KU%xKg3vAQ;f7t!ZRUV@!+$z$_NjGxJhfGY zRDu-`9DC9W%XK5n@`q*$N|REXh#d<>6pDlI5_bVZcUzBbY+~HWe9FQj_lZ9*2R`)_ zl3Po6<~$cGE^&~9raiO8ZYEB{lwEqAsM-(>Fc}6uIvJdjb zZ7lLK{H&^@peU*-pKJMEGKvuJeqJjm;Of$;DbuO(TjE#S&g;3)8Z(64p!c@=?ej;I z>b?inFCO7-Enu~UTQ<=~$`E|r`REt(HR=m9<7W3&QP6ZXFlJT`j0%q5{c0Nhh}!D8 z&t14Cx+4nGs;X9+c1LEJl5$He4>y>?Mo^@7P6aT_B!B`-b?j+8 z)&l@z-xOR!)=3x_Seb`&ib8jS#ZRf=P$!uG0Lx}zdk`u%R=@|4I&>7qNEBd|-HzZI zkXx`_!Z!LEt+jy07!R#G=Q$)F%+YWpWycr*(iCIP22ZF0pcelCHza_2WYmHsP%ydg zlSl+@o3@anj(MpPBqN4E0M1FKXFP>W{{SjclgU&g+KUK~Dk#oS{Tnp71CYvp3X6DA z#A6=jqj{v@q-b&LMeI8hk&l=a$I_5Unf?<{B+|2d(EvR#YE8<=CL@vGZ3r5%D3u$b zT>1(FZRJ?0?o`uqI)xm13PUhf+Cc~DOhe>llkd4F+?rr-E!Ea}181lwk?BwKP_Q9M zUiAoXocxC#$YevDh1{bp^b{_a%i#uq%cS z78vuBjD8)>a;uf-7Mxwr0I0`5N-uD=j-jNrwjaEjHRn9HIW zmaEVe?YQ-%f+*vZ$Q85eStzvhHM(n4U;AQdBiJrB`klBn7`T=2eC9sjkLgvW1YEZHt;{7R1a(av(YGMzYKYoyf#!gKISx-!# zTu=c$K_86(H?D999_JMtlKDzPl?J4A$2c?vz~M9a&@v^sW>JHT_ooT7#_oMVq}<>T z5e9u|UF*wWk7cCBOe7oG!)^~FSH9RP2r6oOZ7h<&-BRxNHA8E?lF2TbFF zeX67H##u&BZcPgs1G~!`zq~~k3l@r@%W!*BH-#Li0;3GrAZ!5BmP{|r85r&bFc8QN zatQoQ3XriUVJH2pnvhDk$WjlXs13^o$COxoXaZjPE-46&g5$UccKBkeRfDT<(KB9|(8_&28nTYH1ij`!- z;I}^X#zWB=2l@Kb)Sb98CVrF+icSXwMt$*3Qdg_zK8G}{Sd3tPG{Pi3N|E%S1apGH zH?i&ks6@MicldVIUM%bIHv&{kG$W4 zk(y%Agxr=SA17(&89AqKgr1R_m(7eFp-JtQQ%K%f3}kg9{iW$b83ei8ygK9_gPMq4 zKRh4ziV`ZzaG{ac9q@!za##*zlRbb+OkifaVU#Gto_6A*X)nPaGHvgU^(0_6Op(c- zU9|G?Dv(1T_k~OK8CjZlQ;ef@$x?qxn%O7YiC#CyaFoy@aB!+|(5rNz0cSQJ>b8(i&GD5TEsCMwQP%@GrE%&>vR2`wRs)Ts3MxkVN8JqLzUnHhE1Dt5{x4(2 zJzNjsstb8<_d{j9In6z;5-tik9C8M0gPAU;Z!0WMi4Y@Tf^ch>_>XLwhl6fmWgje& zxIf*)b*_NiZpcW9EAtGTXWE&34gQ;PY|(5o##fRE6~zoq8d!5Wu_2p&)H1{AmSIuF>-$l)q*5rl97Y{_^)#I)0FCz8r_T#KG!Qa`EoGG2qbr}ov&`T++58phzVu@ zFzDGmJ*()MBa!Vc0)Sg3%EN=(-o9+H@cL=qCV`snOxj$Af0Gz0`Nl`k^It^6By%8UfhCQO@0me9y=%6- z*R-V8-uL8;B?hM(`Tj>uG`}!V0}oxiR%PFs+x)38Pe84Zzg+aImU6*#yG^qIJ9S#P zY?LW6D#lNB130dhn?|=tvYo`VL4Q@eu3o+Ls@1ZSsOmM|FS10P<;q=mrgwsIl_#Le*F|{+m)c^xz9AvDY>nqCr0^Jy=hN#? zvbeUKU5iOlRP!{B<*f%uJ>&Y^1&ysuUb5`><)gl zF^rWM03Si%z8$J2$T-Lz*{$d$?4#(vBWiElUVt|A+DF%#F~>Fm!jO(mN8w60llN4P-!&l)0QP{P;r0>_RRof09cR0kf`mJ=hqYf>;iekC(1ew^l{Swel*f>GFW5jMaN(`?}7Nz zZf4|iKD4`Y(ZKY;=A1^+f=w3@5igUL&S(Xg{{V-28CRhUe;PhjJa7L1zD*~n#}ZeJ z3PoqmOMJghln2inT>Tdmxg-8rkHpcS15Y71<@mte+JN%scx|~K!%Pb_kGpcH_BqWv z$ZY)5=9aCGLF&#%9dHkEPvZjt>0;6Dr-V$5Ol0su#Y*2mA)0L{=Fm9Q4T)@Q1EXUWb}5 zaIo+IPDwm>rWncfZ*G+2jojiiEPLQ)uCAG=uGd%y!OjZ-M?k%bX3|*5B`{ch(r|H2 z!5rWz_p9@rMG=e35-&yosj92Kc!DFtBV+rZky7*;)fGsTj;oJeY3L5pyZZIu)u9c` z!-+Qr1ce??KbWXe-tHNE#UOxxiFiDHDPG+NVlxtvjBjjXB|nu)Vs$~b794Y)1y2(! z$M>*FD-YsRgZWV9F;DrsXOCKM z0CGw9%{6xckooq_07;E|KMHA(3;@EEvYe9M)La;Z$+&!q2fZr*Mj3IM1E2@r)|1X& zgD3EyL4bJ$fgXaQD1pgh{W|lE)XI6}ezX}Q9awzH5*g>?kb5)Y6tG_?!OuqytEE*ivmE z)PVQge=0-ILzDHOV?vU0F`unF1U63x+K}Xo9Da1WfbY!!DPfPiPvJmpj1Nxus9CpT zukxnG5FC{m^(Kpjhp>J8XX(Hd8@nma)*$xgq$;oU`qJR%mjl=e0W!K4B$bCA-7`uZ z+T;n*mJ!J#=414$18xA_pT>}YPH=?dy(U+s zw2YPdXPT(61S4o{4@ROu@_f5g4}MKm!q+b69fc`BfULrS58rYzjkqKlSj&Xl9Bv1r z9zR++gOt(W9RC1XGBLsawM5A--NGJJFfScg(l2_zHjb4#A%_ z4pv$WNI6;w$T$PsRdIg^lVLa{deR+2Aix!K??*E3D>7zaKe|4Z8_T$GNj`#-O-kA| z%QFG%wuRKKUj#Wh9DKB0cO96}#2yjB_vW4Z+#D7M)}?!!Wg~p53FHITklb2yBo5q+ zP}i7Tg;q|Au88?4*&{Qq)CN zo$?3Sn1j^r6*>*WJ9gu?5BSnNrC4G-@t&O3H=6of?M6U*^rdq5G!ekgFc0HS3)~(@ z8Qg0+H@#jR{+-X(p0di|hRzSF)4COl%O2%BiO=a(=Cg`M*z5{-1k(=q(+wujdz07j zpw7&JS82z5b)!Jkm27R1KnFg-syS9Wc3d!0+zgY=L}r|10IGTe<&#pX-N_y#lXu~_ z`BKxM)%ubMo#Vp1Kpv%2B>r?PK@*V22RYaQrWjwZn}h3|nyn;r1A`*Ju5u{Y3yxw! zp^F^%%{5_#2IXcA+bnpf!H;MGGC$cSnIM(eVT!5kw39%KBt}6XfTVU}O-C)os*E!u zbAyx3Mv&Yo8<|{o4H)TDm?LbRs-$-Yng$|EZqb$zd11I|vxgSxBUdRJWIe*}L0}{&ewX7~sZ8$6q#+`#n_T zK)L$T_qq?=6*Ujxc!C0YmZzDd4U{A4*EIB5SC6x)$8z-l0N!W)TCd_Mr230OyWG!= zh}55C%|@+o>`5>5^1#JiCP04lVM*wDr1LT8NBb&G77N>;*kNOW$O-jjsjw42y9Yj< zDg!28{acak$MvN-BZ#rsz$~TpO0y=!aW~PtK zlmO^Mj-WP2=T#0RK+1iHZ}B;7!_b>keG@l@=3ysXnzJ96MC_BlU|FqVFZIO)2m zNo_pIlI0`LK#j0}IzG)ZMxeF96ZHdb)wro-%13Q5nGpKEu6I zwXvQhb1Ml;HsQFFkItogbd@$pi0j7WZb7a`g2Tz)P&n#k_*W5rQZG&J z1vV?odxAWf7C?CzAc85QPK5vwLaF}bOULO};jjn?&!1k^(F`sgn*G!){y|F(MvuUf zBS|4bU&&+NcG^e2hB-cHz)q}B6*bPCZ!4g58$jR;{{TvgT{a@26sQA_nE~Rb6Hc_C zl_^==>ZdAc-fHD*`=u5#Nd>96mD4exz}yeH;8!W7!*$`?)cY=(d2+L&i;`qj*^Hl* z1M?i7_^#3@Jf#_)WvU3&EM2>|`Xh!4wK#G{ zD&DXE0FgLl@a>G&*H>dENf?AIxWHBCCqA@2HV=vFP}HoW)Ge;Eh~Bqf&<~tla+0o$lLO+taDUqe3u~l6?O4w0+;n?n=|d6-NZ98RNbxHfYEME>F_5 z-$mO3k(H2uSQQ<6)pgQ}DS2i@7|0-#n)GPKN|aOVj*52VMH3>9Hc~W!MtBt@zCyMZ zR*>iTeJPBv_1r-9Am+5WrHI7XIRihPN*u7r2ACEQ18yXbQB&@PRJWdl_1XqMS`!f- z(8rUXsirXie4{3uTz%zGPy5s{X4}B`z~X=)4?gp@6$|cpr!z^xWl`4m4P#ErfG0NtQAATmmLFz4Smr>nWg$VWc4DPji%=eHCFknl|w9m8oPWFN+Z z7$-YaQisR!WcL)-lK_19A5OH%B#t2?ZCJw)Gk_`S5{W)^jJ8L}$CFG=M8)zd#s_i} zuj5fmb1mzI^7l4I0*sm)w!=u@mi^)ivPQc={vMe2#{#pYNI+7T2^eldV*?oOaZHm< zo(O#F>$3u$0)k2WyHx{q639Z`ro-5;^{nMJdq}9qu;;R2FgD^APy+H;f`2NISUtM$ zc~QYV5S)+Bk|urOqm>ww@{RZ=o(<7mrDR}uAh_#JF^@oPmLZO5TlXz(gTaho(Qz9` zAT4VYVUHMW)FRsGD8;;?iQtA9$LCF&E976^Lm)xwas^Y+n-=5|1Xoyrd}NGaSNu&^ zK#m)tCDRpoY%SCh@ z!nQIhYi%m;P<^9xXgaeDfmeMjMYYtmE%k(;h}sbuKf@UypIn-z(OSMK!vKWu{%&m@N&cE|YDN7JN=Gv%k8h~F%2&>viPHI%g76ugT2gmJHyCW*Thn6N*e zN>g^*2GctbdO7P=ukWsoMI}Cnu2WJg$rL{Q!zVpW zI!pFdFC4>nK&J$s#;C2!84$=*1EC}j#OJMC6574S(QdNt!_;5$PIy|mU(Egi- zaav+)l>|I-Dxc!r+Nruc+=N^X2bMBF98lGPGBuJ-+yq~ujDA$d8^_MUzM`X&Pc489 zIO+(;^QIZwAHrAI^HP}XP8BjRKMYWCgbqQ^A1y{Ma0XFv{?g`@%&xgul}~UK(`^Gx zP*sU-!+7)=r)>WKW{~br z;5hXHnq_Xv-}lV}9fCRq6pfNIx|4Lfc;x*l0hxwyzf4hZ5w{L8M%Lt)BlM@Dzd`^X zN^y^j7RaK)7z++}wm!7rdGnGnDdZop=Jc(57g64hygz?eU~&`EM4c01tH+}AMhHivjrSR{{TQL zMYtunjrpN4vm|CCr$2@$Uo#twX9vF&3E~I$q=DZ9ny;vMfWoT{z9U5(3e|Ayr7ZQ*kYAQT#X_!jSC8 zL-|syh{KGJ_o_g04*-mIt&Ga&W`FwhY+U1MKU%SXKZ6v;$2eM63y``Ta54D`X30qE zfPE@(6r7Ya@B#i2MTc^@M#s#`N79vJ0P&B?r`z*#tBPC>_@ctO2G-~Z{HP=Y$>WKR%C@QqRu~B1I1!?Q z`Osr4$;)H60-m>!xd0;%awPyJk^!B?MNcUCiY$^Z%!q*YJ2|Hbt`0%p=sByc z3gc>(Q|r5$Sdgy*8g$Qb&{7rvhckS>h&s>~Ek|-&Igc3ZIj4Q8 zcVo+A>UPu~bZmGfzY3T!+k)8o;+@3oP3FdW@#~R_1gOA;10Pz1+^FCZ$JkUx=~Vs9 zG3(7cip8@kfId)o^`|Q%VD194-u2g(7*o?7MMT%&$AmL4(J6BjqRp1tar2MTnT00- zfIm@K`_@o1<`(||ZMNo_nD_noQ0J*RG`Yi+-112T2i(*8WO?Hr zoKs|6u71$KA4US5g6u-F0mvVPHKX0wanr3nI2{v*kpBR@z~ZC;fq~9Gl&m5F0MEJl z(s=}A2@lhyS^@ofQ;&;(?8MA9x7L2m32azGdmS{XnG-2lK@3?gsE9u981wb1f+0}RqGQxom&$rv$gdC)o_7(~ ztwOiL)`k?nT-z`Yta!0K+APa|4)PM)AGDkDvaske88x-srBRga&PjI~{xpg2U zTY>J)j8worF#B`tDI^Vz5riB!J;~=Z(2l1oDqx?xumSp0o*;PygY8w_7!J9oU@Wub zaM-G{vk*Z!6&n%{IjD>K^Fw1uYp85zw>hYY=A>c>rW_xwMfEKU=0-*~1U{-W{OaA5 z5Xi13osai+C|rGNnlOy#YPYee#oF);V1K%6qLi1~W;G!C8lv9MtVtIG_?VJuo?MQD zWCH_}g$Aj{$tXKmiqW%{2tsd+k`F8x^Y~XvN$hhr*5p2Hu@F^JdFi*MNVoT30s`^R z85Mrw=E~`dGL<;v-l?#+AgcL_4^u-;bp+GsM%vxlsl-`5Gn$0zw{Q323P-B{0QKt3 zkRlRC%%{4L-_ol|0yAMr+y}Qmg(u8XQS3@JY1IG<#Qy-acYiZgE~XbONQfaler~^o zIqjKA0o6d~=Bnr9$OR5M;i?{2#)Ph38B}vb(6xLt?ETDRGnym@cOa}RUx7&`ic>@^;aCz;`3o5Y2);`@RGAS6^ zKb;y2Q9_mAE-~mS*ir^YJ%|*=kve2&+MG^uGAV->^fACz}FAu#)X?1>rtu0 z42+EP&sx82eKC|nXd;V$RwF!n(@NxmX!jq+iylrsW~6;IE&!8p$p?Zl`PPlbqXY=V z-5I1#L}&)n>CJOf>UWadE3}P_lgPsTDkm;dqMVE0VODk#$g(2!A@E1k8dk6iEMY>j zImZ3mRS)ec%NLUjPp5jh7P0_U3em6}l{_DM6q6f^L3?cWvIP+C1FHkZDoY=>K)!Tv z#=W;>XZg~dUf@DeV@JmyI*dV~8uHx3iZ|v^xi%BfxmF>SjmMbyz zau<4u3Y=gbdHgGD`$?GO#0et@<-yO^m^BH&+551hdUAfIrP70Xl^Mwyt7M3vVpY%g zvH4W6NMmiQHaXyxJbqQ8mt|Cg1P!0>FIr<<$H)*wr@vEFprf#yo7{x`vOvyGY%leG3DIs7UXl(`=&fISode+qKk+^P9XjQ0dn5e%~%i3ySzg9E@=@tTaH zkPLBSu_Wg;KGI1nh**xKWYa)(9C=6Ff+<)oFo{MmoDtL-LllQOjEsM^ijbootf!87 zG;%tG=hX8~!E(8c$4{7^xII4_a>X={w9bi-R_3KE+X+kLk3}>nhcT<9n+sWd$GHzM z807H2y=$jgV`!C>f~S$Uy>MnB=nwn`wlsruK?)t>4a*)j{VPQJ8OdK$pnS$jY?F?o zwPVdT>D7(Tm-QTem7#NS1WAL-4&0pkR(N=2j1tExc>|5VTFz-VVaEHECb^5uWxGiw zW*;l0LkIE6%~O&ac@@4_X2;4*O@aAU%h@b}4IR)~22o?e7)uP26n)@x{P9aZn*^bZPNb;oxR2*rK%_1Ew+$l>RFRTBc;cXTdszI#Y>Zp0 zuQ{r+u{_VAm-a_)j2%ZnB>t3%Y-D4F-?aS7&BbZPZsdrpcB-iPVh0PK)YGEV!^OH- zZP0^)!SR#y#wbzj9No%Fv+M{JN_J4eu~K={{{R|00ydrj;*Yb-6ppcQqnt)EG4;hx z$u!6|z{5X#q6Yr}6HN<4G0&GK_|U2U0H%C@Dz_cQ%*efOy!E%#+?lU1y z#{hjX-mH`6E@rcJ>C9x&6vo*}t!|x+jc;(@QJj923Ad0jb8h3g$i-+Q`BIXz&l;XG z`566aW7MXGLU*L#e|?yoeJR-r?4~UAv+mDnP+aKLtDzwi5kT6#C z$;N3tMy^H?Fb)`xsiz`ip}_joO+B+Q3fLLwY2~eiK%zKqgp-;s7Vb#OK>O-Gpi_3_ z_kZ7jOGtr3HR$@sFhe z#(4+RgPL~m4+v?B;{o}P2lA)oN4Mcg=Kz1zx8+NfBcc372m~Ix@##*<{`jQhx1}fp z(0)_^oaFr3{{VqgfgpDL={AgT2jD3%JxAq0ha3^l^QMJio|vPjIpUCz4^d2FkWa53 zl%X&_@jqHk=RK(NI{d@+pg_pSfCu8#-Htc`K>E_|+&Y?OA0VjX+?qoW#>e;+{#0yX zjsW~=#hhT3T>WXtNgR+ql(zyrf^od(*i&#-xDI{E#Y_Rg=RbutmAfgYU@1)%#Du72 zMLwLGul<<2vU1JqT7FyiAC4*5Y;rOBR5)GgQjRzNm3f$3J`x7&;^aqm+F1-N1K z%{-wamdB!4lw;nP37qx(DRMFfKT381Jk-W=PvM#aM$4YxN?qUV{*;8Ol6L+=fe!{ea0WeT zeo}B43Sea;?&6Knub@9l082#tkfT1d zzD!{7GJUDzo&Y20Xu^i?MSy6DLF5n0o8+q;?H`b-2=vBjFh>A^^b}YG@-fhy4@wQc zIr)#&)3*VPu%I~4-Usob!FEODkgy z!yp($$G$0>F8XJK-!-SQT=OM6kTA@oeJNOc#%I~5U^6VAKq^?Q$m-H({pz{pBYeRA zMx+sy0}Ou}EG}ZFlFGOQpK^JpY;XSnR~2QIy+t&$0n~m1s=~PjNI3bko^Ufvc9S?z zJDiZNt1^1 z{{Zit8Vizgs>juHMTAKmw~}`((&P`joR7+^D-rjG?E0<^R3=f9aHH#!ii&&eF4en@ zdv(iG*jBl!SyguhY%~Z*D@|Az z91qsBMg6?c`EcFxe~2HLQbqQJ{{WZYHGjI`8hpqs%~22?4nCAJfW1%WS)Xi@F_th7 zL6gtxS+|$>(n*-*Frf4p&*xJrv5FjE+0ZdP74UQEnkxp@_ff`v(Y$B)lu=Ntr_qnu zvw7l4b`y`3=bmar7+i11v7>=X2p*NnmZx3Vr23qi7^@znel(%iG;hWT#y+&}AR9m< z6oaqISPx1Ik~-tij`a&ph(IrrP5|m@HinZe4h~Nz-iC3WKqt2us1{P15bh;-R(t}dgxD-FACmvnB7q~il=0P~TKInNd4Jl-_tBItD1GUh;+-vnXT@Of)J&)#{7mjRvdiFNIZ;=4OjO1ivA3Q z^Ci{{*$#i&KU#CK3UE2By<1W`UYhq_S(Sq#B5v9XI|N*w!z?m;3e0a4OK)$eE!C=v z+bLp*#T>7z`3{KPurH#us+t;@0UFJF97yHc@tbkQy@T+scdr6pUl82Yl9! zpRCQPvphmkZmPL=W1ldLmB;%%3H9T#s-AxsE@w&G)daIHu0N64{iPLlg(dO8ILY^_ z^6DuP63~3zFhJ>5Llzi#*@yeJ456Alvl0Hu$ic69$n?}kNvVzh05ysbI&|aosy7b| z`7zllG42mPrxhti-c_&(>zY$%AO(O70q5oC6^qo>Xi*TzasZGItvOECS!@% zfI#}3(7bYZ{b|FIRFW0Oh((0 zI43l6g~kUM{vqv7G6wlo`TqcRm2eJlKN?Jo@w9Q&3TQ)%}} z`H9cVOeX;612ljp;CB8QrYjQUj@Ta5y!v(TP?u5M0)JWoeh6`n%eIT4u_oL%Vfa#W zpI^qKZ#$r5{6VEvDt>uK9)gR2{lFi+_2!ez1fQQY*7C^V7xJbCI5_FhaZci~A(k~D z$-e`#^) zWSZg;^Dvi=p-2ntb6PUo`D{wsx|uP|j6weZ3P!oPSiq9n1|5uyq=Q0M>KF1eCQFdQ zcT#}#8OYE0QYSZ-e4?uo}I>PVqGE?f0#x_GyA!ZKZYuqwX@F<-7Y$xFrUYz4Kx=; zCTK?{EH|iQfk1WIR3_Z^&01Sacb5q)z#L$<4>f+)*48!&DUsbye){r0f`t|~(UK%Y z&LP|g>AZ}7R0)(ZXMtq)EzMYaXqssVmP{5WX3XR1PD^WYGv|~U$IO_b%q}$Q5p2Tg z_WATVH5{`nxWp+K0~%bYO6}DMbU!tFxJkG!2O6J&*09c1@zczmwLsq!|06kei2!lR@AFVJk z1oFrJ1y!*aB~|BPo}oXbUxEu?m(07BbKRmN^`iF%tUww4GoOBx@W;@Ptyy?1qi>e( zITslu5I>zlX0^}Ck~Hh$I8i(yr90Mz7&{FP*@FZ{6 zhR|7(c}y4{nEwE5((QfU!H-;;h=_&^%QByOE*2~oZv1-=X#=%Fvg8aL zpISWgyY7H~wC`ZCDU%&T6Q0z@bvgapepD>MiO${)OSm7cAS2y{I95MFOk(ZNltA}t zn|R=6n#2Rh{BuBDh$$K6N2hv-qvt+y%THmyvpk&;O`>JU|NJ1M|H_ybB> zLU2*Djyb1rXt}#+1;GIS0DA(FnFbF~IpV3TSmfbx-KZ$!jQqnq3}8{sVOYMbgl7jo zT8*v{FakVXRk0JX(mIwz5ufTI)g{*;DD)ZvZ}eX4-GQcGcn zJ(`1m7VnoOx*Upp$Xu+@`8%4W^~7D>na zvm@$2qT;b9ks-$BVffN5t~tv${0f)Mken4?&YlZ*{#0lhkQm$y2%G-^A#Y_g^_76ZMf|Z=a5>}jr6|7CST2Y}io=jaH2Fk>y@gA( zbN&?*#;4c*`Jh5HQSwZmnW)0U&^|tbq*#+2?&I2&MHtV@e-S{)8rCNq$j6?>lvvxT z9X_V4ZCqd}+1yqmzy%s>3K*elM z8Z{@=G%S|Ujk^N-b*qLLn~pw}8M2E!E{F3olRMT{`ixR67QhT4{6$~F=e8+)we%F6N6b^gu0(jpv8FN> zJnuj7EDF8lsN)0jr1HjjKT0`8%u(|8;D7=D0Cba3$tYww2dE!U zT27K5v}Zn+Jn#-Zs$pP?H#sT+^{r!VF+V9)1KTu)(5cHiH6=-Q4t8h93@2z2v;Gx2 zqA2Dek8*0kkBn_T!D&_pevxAxH=3?eTPn1e}Ten}R#XlnhBNW9`j#{6_ zFc0Ziog=cH$68Pqk~yXY&p0NY1_m+305}|u)ZT}n9{8Xs9SJo3*ciyBA%wTTwKr>) z&hFjwQkTaYkJ6WT1pLH`21WUOYBqhj7{U6~uObnett+NT{V6wKL~Sq`zz3eO~Wq_xWIDg#H2p@G2-l5jEKi2fvA z&;Es{#7I`%G@SMv59?erJF2i{F8_3*qW3efhFs@3kc{{Vyeo;EV4u&Uu5PQDKg zY8sA}1(=?};nVCUvVvQAOZlwvgayXmkO6`~Ey?z-ir+)j;?&LUtP#o<#v4$-FdLQF zo{D(GaqsC|x5FFe8m6IV<{v6Z#GoEOc*C6700>3BkPW}hhgDqtgN+HmrjC7Z_4hqX&lB8 zR47v+QpEK+$5W2kuG#N*UkOSAe66P^->qAZXGM#ZT3AhquhM!r!dTSu*Hm>pl%hO_e_!>Ds^xV-UUgNk zYzIz#Ni~a?Z4Hu3a?!t^shik>2Q?p<(zz|kKBlWOcU8gq(Y);$3z65FT;0L0$e#qZ zK^W=Rsi$Wd?^UG=9n5bcV35qC(m~dY>>&7W^yK|q)jRN9=+5Qnr zpHc-k7&!_~ed)k(K2Sdz1#vJ&NFxW@m!<|q82xFia83qkg~j;}c?aoITidkq?1^&N z&ovq=$iPOYK7zF@G~3m1WM+*C$pDO>YAyqAblBj0w5!SC7uV9Eodhs`_SQ&?|x)|!j+`7F)X<#V6bppoEG7D!}_4?;)stfZTIjWe8<)?M7~W^P6WDnWG~;6}na z?&I_|VpwK(5-9mW;O7Ug>sv_-w>GLLd0t;#$^K1e3TbR4xW_2;N*m3^*E%#ZoGaplu{dQ?kiniNB*vDi`_r~XV$B&_4qOdkT`4u zkPW+Rdyr;4T--?Z7U11pVK7t3IN-GCtjK zSp4J;r_j@$;pJdvF5nNloB>vn!J2kRq$3Y(HQ{; z1s4@2TnrpAJ&jBuk!FyB@+NQr`A_Lm{fEr?<1vB9{I%Ri;AyRP4^p9s6Sy6i=PG&p zY4Q0&G72lPJTPn@(xiCejZ9u}R|k^7jQe7v@(9LfUZ4OEQ|(7k+yo(k#KjJC#&J`5 z;S*;k9XE6QsaoCQRavl9la|^@2kI%FLU~~Mh@+q_kZIb&xmjb3la_D5nz0jqa}3D* z_hC~(rUkeSI!wcLOg!9>}Lh|Cx6fRvxFjT}pP&@r< zlStlJWbyzbjK_i~&^03RP;`%;;PX!wsrS60^{HXFn|W5A+onPCat&xKZRC+Lh^fI{ zqo?2x6w*vhvoT;?j6?^$NECoZ7xSgOYg=#<7gck~3<*5?RZ%3Nc8OCx*_2YcS`ODH zC^MG8=hl&gOM-Ue=}{s`(HFwEt`eV+xMxLC?kQX>DPgxOk8ad?j2ECDxXGxD=o|N9 zGJOwfvL=YA4;(;$vZplDxLU+wLP-kBev6uGNgI%^H+@!|WI-ydNbcF_oKgGMJ3O9A z;ZI-Ii=Y)03=x36urW_7#zCZ5E?I(k5)7OHw-}_736YsyST~_wlnH}wY>;qAr9`nz z92S+?PhpCBB!_|n9_2xn5YlXC2|4S&#rn8|ME23U*<1XZd)`9qaTt6s8^AtDjDleqBDu9w&)2*KCXiYB#p9 zjPrE(>GC)u^%yVF6mmvNfGb<<$ACgP>43tIvduVOCe-xDAJo$2 zA2EqfjE|c?%BuheE=F_dQ_Eqgbu;!z z4niCrz+)7pCv)<^*&W-ZX&K{Fj4^LOwJcI7CA^UT0Phkh^7)4|MnJTgj$}Ch0A(rS z2Tqy#R;QS}k1a=hZswFsxB+dLw@t*HepGTHb2BC5oSp##)Y5&4bGlYz{_}BK#K`Tm zMu2~~59(?I2x0SNoOcvB51gp21VD(wsr6yk@~4TP88dPI<|<`?brHULp2D7D`A+DD zKC~pkvZGu$$Om!mNx-J0j0rC)ud;*vYVs<8Fq=odDOx3C{;f&%H2HdqnH82}*9?90 zP7}%(KQ|q-Q?yK13Ifz=1~_+I`x<(M(Gk2m0o}2?b5*+)@kBbGku+^#-9fu`$WW zKEo6nan1^#_lc)=7Kv#jjzhFhmh?3L04;xrfJJo`kHpeBN@o|0-eM^?+k|H z+L*v(lOz2o@|X-^PtZ}aOmg`AC;^+m&&uc1G#MNId49CJCI0^a=}Hz%{qNF{3~60Q z+%(@deyD@-srIqpv7;S1G-?_U2Dv@dQy5I$W+3}jvOUcOdQoBAssySA=~$m(PTs@s zWc^yKZ3q7VuR%ovBy&ZDa=)Gie)&Gjnmpoo2;YrP0`vp)q&yCsP!}NFdqbS}peZB$ zT92uzHxj&OKT1O9`==hX4&p3%9RMELr7`!wsM*VOC-H1k6v{bWzWHK*odYKbsyP5s z?~L>-`Bii>D-g}kwkgC1AbIQ?(vo0U8&7dfe=Pb{Z?h0`ZeQ3FPZ1ya?9J`LqT;uh z{6(F?bL~Ynm5BS!LHsD7WVt=CDf_Y2g;vAh_NVQ0-?eaE9o8l;pkz1cNG4ozSel2* zaNLnfVL9aBQE;&+xn8($&XC-UaKD+Te6#)PX^DC>ezZ0gMBiv6i~;%6OvLlF{&h*S z8xXDX_N7LWLBg^3#ZAXz!%BG^{vx7sr==-Lag!SX?kR_VbU&3Q*wujd=QP8N{V7g; z59LkgKDqX(Wg$Vq$gMkBq;&wN9<`bWHK%U-V;qcEMF#J=m2HWjC+Fb(^HWqd>^^>R z^Al3ZG%!TcO6sViEKfixvh>{urRVvcT`5L1lasPMgW^Q3b>e9uNf}I0B!4N#x##h& zEJQ8T4>m_9yD>k`x~~?krm?SFUfJAA5<)pEjzGpovB0ivw7ki;?QX}=fyI4w3R8tR zt7~KCs@8<6$@6J;cV7%GF|BHHvgAi^7*qc96aN6R*REOVUueT`QoYnR4SCPQ#?x&r z?jjRP*N?QwBnyC}fwv#Sob~6L?;^R_{{Xs_ZUZ<6oL7~Pgq3F6(D!f^VCcpv>RWp& zcy&V&Qph3Q%XiINjje5PV?|Thx}VmnTW!45Kw_%iMl+75by=59K5qT&dmodE@$i~+ z+xeN%N9`xwj+0V_REJ{O^+IYlxGNhpDFnQ7xySUVO{|7O5u_b~3J2xQRF>ZES7pOs z9!ZP&VAo5NIuua1cTS9|Qw(rIrZM@|Dd(0{9%ajI&&nM$kIStx=E~;Xh$^x!I-i$6 zhH9qwPneumE#Gr!uEUx}RoY}HpG;DQWw=La40#YD0NWQG$;~yR*x4|l{3r!aDx{iH_y>Xq@~Tlp^Dr1;_dq{PQj`ORILB;Le84#) zw{uK;u!jny`}U`yIy? z=dq@ki%MhI-@ZgWcJq@}yzphi6=ms>kZG7g5lP5tBH}nFAytQ_ zPg;9P8QX}!JR0S z=~Hk927afSXkao*^!KD9HciceA0EE6(-QPxxc8~ILd(+vlo-eg3j24W!EyqSjtCt4 zQV5V|fsbmm#WC3XW|KKwbRDSWL3UOs6#S}4G}8(%$8v`+>8H#@L;M=klf)eGx~wrrQ;fzb(5>Ab1bT!*cFFt!GOc zeWXC@qD4HSrb*Azv*!Cplu%r{t~TH?>FHIVwwftKrsh^)I5|9iCbN@i=!#2CS-z7h z9fYY;w=zO}#be3I-o%6Tsb#slytv%b!5&Ua41tQi zZ8b#lnlEptZ5S&YOWQkFKc5u~MSnUxV1@u^Xgh;`b!=L^Yq@WH^20t>(nq!`D6YUQ z9FeMXf<$j%K5xpZrlETrtG?fIg(?S1cC*}9Y@-~KhbjunGsy{(e;j74{{B^vG!K%e=jU*( zOMOWcpE4;Kagsuo3;0x5mu%_{yFgI&1{0D$I(E=kW+}BJ1w@Q^>b#$&H|(milF1-r z{pDaQQR2B^vd11u{nbPm$9|;Lw##vD=3AAx^2x|v4h2nz%*@bPVP$-Q*gBTa(={71 z7|8O>)#6$J9iu5lE~LBVNbQJ<$2tzq+Agqvp| zB1s#65O145N{Gp{9gxOjQ^rTk-t{M&v3I|k%k%?3jw!$G&gjMf`~^8~EL7+0ae=!F1e2uB+Q!{iU83#eOwOm=uU z#(eh87xNXoimv;awugxI5ro?JfD*phYNJ!_2bCLN|t|hc| z3mg(hAstZe+J7paJCs+D`T1#OWnupSJkB#hNXp}5$$|Gl!*lP)HE}IeLL{0A&OrIl zD*iocDK0HxoUfL|bo-}wKD_?4!FdqO>~L6x$mzFkY7&EkwVSqkRkWQ#xsMyMfJw%F zgA}&c5yqrE5w|?~jNN{enz+bOi2w-l2N=gnMh_YJB2QvYD(q1s?r%QTIp8w2NhA>k z`Q?aU^$?s7%+)2KH!_-8Rfsaex%4^xYGj&eRaQ%u0CqVbRn`_efLn-s&Oyv%Df%99 zOK)SRInBk&5=RP*ar%m0_d(qm@?8~DrQh6w25FH#2z7Z+raFq#p3dAkDD2UKG35fx zeYoINSwJ6m&5RBRm2gR+-EJF|=4Oy{xw+3TkL6BZx(Ap?9oU+CPvs#-iCdly(Vyo@ z_QgYtjB)p)Q;)`#&<$dTJ7i9O+NP-qfF*YK2Q@Ldaq}TRfKi{qqTXdPFks!zFe$bP z6TuX>B>8R1;~=o->6&!$Np1jX2m`27(4ShT=YzD1mdNNy=~6370Y7PzEO{jIXiWu% zHN!6fCB|?Da5MPR<6Z7}ecA5A{Aj}l$((`TlT(hPBSq}O!^DUfaN&Cv zAJ(TwB;iSK=~dOCZVYk(pF#YpV(`Ywz)QE>4h;#3p!1t{GBfBwrIEnguedPor=?d} z5WYe=$vo%!RjABu)ry|`RDW7&+$~{>+m~o&C)A2?j}87Jn}Dj>x%rPk02ru}H6etv zxjl$D6q_B3B^!*s&^wXVqPTMlA!dE8%KW`*ASH?a0M;{P^=@(XrE8ms7zb0wVg){6 zu&Z%y7jO)Hh~}QN#NTxCdI7~jTNIOFWJ>9uz79UW{d$S* z)yX^AM`crrLg)Zcj4|tzPe20Xq8{Ay_|dp*LH2AO7EF5QH6(V-2Q1B>UMfZfe(27B zgaJ{Nk;mL+9k51es|D^kt@z}UKD5S&gObPS8lI^t@<|_6r?U_~ZNy{K6j($8OlKsI zL(XYU%y>JOfBXj~m6qJM&*l^K;8O0lKmb-hK}%8f5P2*P6d*qId6BL&Du567vrZ2S zoa}F@rkO3nf2sibk|~IqIR??TV8h%~jKmHK=BTt$lFpKX-MI#wo6C=v2h?%EnB=CI( zD99t`10%INi$Uh?ut* zz#T9tB#7~c++3+tSIRig>p_kp!{x~zg;h835<$ay z1tyVipg0?uN$r|0iL)+*Ob`Y>w8n&FmifP>LM|X~4CC=`X}*1^KP>D|yP6wAvnLU# z$=c&SqLd~_3=KxF8-3SfpZ2ISg%}+V`&4Kek{JC|A8gcSD91Z7N#{yGfF5v8>QgBP znE9gUR$_dh{nyAm8Y#kVe&NTx6c18<8w8Lj3<3F=AE2tHT=ySLQRe__&bmA7Tw=XL zmHG-sb|m9C6->|XP4oTexcN)Pfgg2$I;}Ep?g!yf`MJgq=S(u^@uc5yNMk{aoPa%Q zcqUkv1wRmK6DP2wG6VIe8l0}^Zam7&ye?22lwqIlwOC1!yW{FB8_db$^QjWy)Qzlu zmAr8)W{hP)^fodG=nWWBM*_3sy>5j8`c;LOE1iUWD`?I#*v3@l9m^q9=j0!iAXOa` zA3;&8gWQi}Pgi1i!TK7zA}%mWki$HT1`~5*=qrrzwf)3C8@G|90A929>LbsW8pAB8Kz{5N;KbB7@&9$@n3fm-Hv>`Xu+w(j; zNAD@}bV~mKiOkP;wj8O;w*sJzge;?XCzdCvs@CXSndIU$4qLk zlc^2j(>wcXg9YNqI&JOgn$LBXHyKH8aHkY?#=%^aR%(ys6v{G0sIf_9DI$O5Iqf2pG370@XUa6Hk{Sl3BK6|^^B<;laaSH z`2&n9`BEwS!>&IHa*AZ8)3wfeSTyT1vSuv6{oE6b^v)`Tt!syWDnSrABp%hba{@Az z6Ga@%eqy}yT;=78K_L>fvP?Yz+x`{FR#J}0>86w2mR4H{f^2!BX6FZxD%>_!mn-|5 zxwnqZ9zp!8npC?$S!O$TWkHKShCM4@%JWfADmWL6WscpUbKZ(o+kWyK=_`Az)?W^j zZXDfhaKtd%k&kMlK9eLa0b<~uHj&TiT@Ad#MT}0HWIT|kuhev=N>}Y;Y>IQybC7P=hKZSE%B=PVrZrDo~uLEzPU zd0Nc^OwA$=Rz9E~u4;7VwTjloa|lTa?M#u7OoNZF6%lse00uZEn*g6`w<5LE?}o>q z!75HaAy6|(8i6cOp&b~p%@#;xX>$U;CRrU%A0utS{HjDtSqph`c|eRSObZAVw{cyK{l`!KRDEmf^Q7%%!;4ffRpJPRR=GkNiT z9rtj84ln^D^QYb0Lb7ek&U1q&Ob@4euRWr)pSe{F*M}tjRGx!YWz>ewZOa^r><3H{ zx|?ql4*NXlk%8q{5rOrr++&TbGuZJ;qvggJE-{hLXy)<`Uo&EBC;?#|#9R#XASd#u z&AcW&#?L7npDjVh*Pbe^xw(g!Ey}BNl7NCgDzdWQlo@1IW5#}5{{W3rXqK!S7D1Tp zr5k#ZKl;^Jki+Bvob)_Zsg9u+FD#ov;QZWvRZKMGfw5i5^y~Q2Y-tIyO!A{0@Oo0T zXcPjuKA7oK1a(p+vzWHt3gmxER*ndxSsf(+_HGa7KwPWllDP6n{&eM)&puND?rKRc zEhA^hBo3RHjMEn9Pkj865<2XBo_`8_Dv~fz;N;*EFe#y0!!whOyT9Hvp~nMe z0PR+!w}vtl&Y<_o9xA-12%8a1B>Dm|Rj?;;EKjc$9vg8jDL$DryOD-+bLeR{#vJ9C zpRFdqe(}_>1HCywBkwW#iiM_)Ncl7R)1sZ^IN7(;CWO#fc`KX<$sLZ|3P+8LVMrds znigD)F%6EuW|T~;(0IwA4nevI_zXF{c1)~y4JW;MW1mylgqcY1d;G7Ru=}ih4 z46}X@M^FiTv~m_-GtjD$Oi(~1 zqq9g6f}-^#@rsq#lk*JzRL6ozy0YZ;@0wbVLv}5DO16auoEU+OV;DW@Ce`ew4YA>s zk1Myg*13n%$Rv~aVvyLW+Du@P(Bl}P&QGBEV!E9aFy#D~TP~_sY8j5{Q-!<}77w4>{ zbB|6vDeVL863pgEe}$B1ABJj$rTiB0#+NZ}lwm`vr+y8)J`UXJ+v{LM)Dkg3EDCAB-LqJ8OeCy*hwEST#@*6s*QVTkKE4cNXl+r z9CXh#q8X(@AdHo6H$uRS`eW9uO+67jwk=^6Kvrq~PC>w3rlZ0pW@%>L=N~knW|A9e zqh{MYNh0(a!%?izT6K2&M|1i4^AKaXFnSC|sPNsD%J zq_Q8wrBwSgQN-&kQg1zE5@aPqC5uTR*)*asGB7ed`ciWeiLVW`ZbQ6#81wR|B>q^Z zPGnLS?WbtyB|*pMSjjBb%sizB9T}GL5!Y3Olm42jxK}!5fet_88!PbZ@v=y#?K@18nIj2dAbx z)rHh8W+FJP@BrZFp!_R5+!G0kNmT|vg>oC~-m8qa8D(CDgKfyC%+OfBCB1+`%_xzN zI1-+JN^~z^sv`2^jhJK^RJY~LP=!%$7DjI|7otfi0<~6XtyNrG51){YD0TXb^Gylp zMKsp-=yrJ$Hh;LtK>FsPfzswtBy9*Mfw-IxdV=a`?t0Ua>8AO5O^V1(t&1cBe4 zDqGZ~m5Vc@$2P{Cw&B%DAdg`}eUuH-w5&UAN`a$Q0roKTBl=Xa6eI;Q@-Pax%@?>9 z;%iSXMh!5HF_KhgC#MIcJjMh|BP^H$A>D@~=~W7+ld$>D7mwZ%f$dI`HJ&5o#RPaG za}FCHoiP&0s_!LysF^XtOBu=ic&aTL%_(PS(4So3eE_94z~>`){_t~(aD*&J2uK5x z&!6j4tK1cq!;;kkmit=gumQ4vI*bW(kC^*|){&cT(25wIl`q+*xK{nsGACX-Q`4aC zAP*X!F`o&+#JI&nBZiPM!>)QXgrDclJIReWXhs3`%?|_|GNR`>=s2TL9W$GarF@v% z7&wcqM3$NP=5#$r0169yz~OQI+~YLh7?#fjo-xo5tt}W_a@xU_N6yy%Ak_of+eG{> z^_dp$LUp0cR*uXvU-h!YWH)Q&gO=%i3 za1XzFHVw&ANlzv)0s2(wGsnu|eu^rzQlqgACd_|7N{VS@k@luS=Nug3ozfMHPcGrL zwvpTrDY!y$!Oc|>P0;zAQnUoG&761V8KUD$%$Ix$bH~0ZlHEoCAs2y>xblArgvO~L z+<5KIX*S!efr^defOh7l@1X2HJxWzWENd)a{J01Q^r*$tgYv=|Sas&50Y@8mk3bI; zg3jJXIEaFI>xx#8?ug6h2WThUj+FG7w-v|=dX2R=*!-*yvp5}&)5xYvY?2MH7$2QG zFuEFM4JnM3Opf4+n-fNWt42>_oM2Q@q!DqnFC8q-|E+%p7eaU;3x;wQ%Q)3LKJ<_N53DfA&n8a8$%x1sX`|w z%3pFQQ@QXIf$4%MvI~gY6msN!1tPkSyD&fRaZ;FxBm>9Ro8`!#D@v>Bm7rH3b90^Q z=;N?7q3$;R@ndXy9fxM$mTwla9@r07XDL zvl2P^iKlr(Jy$;GG|43(jf=SU%_=x|$v_*^XZ5BUipcrGnDIu*$j;;#_NPA3pd2r@ zDUsm^%HH2v20IcSy*)=tMRA;AvFuGRnt*QLbKa#Bt8fY&b;0I>NXY|`rmM(i=Vs!* z)p3I4^NNg!$MNEUqK+rycK*G96)9hrCjcK>uyK#PThkO_9Ak|89z`n-n;z6Tj<~q$?RAn2*YZ5V>E=jgB@E@4=wNc-YE4%}gVR6R|ga4LwkF z5rOSRg5@$L4fo&~^<2{8e)BFpkczkEt6(UO$6SQaBH76L(;y)U8705ne)jhdtDq>WB5aNoYg>ygt1SroL$fjg_(w6k; zUQN$cA#yn6pQQz{)AOcgf^$mj11Gu3qdZZMdQVCQC?=5oX+S*Eg(tV+MyxI%8OOh+ zSccV^fn~zc98L~)lUgy7zygE{=%r0PS&d1xu*8icA1DYvWJ--^1VdXJ5* zbZd2o$kSrMF|H0+45!clzlrv)!sg{|{wdnZz#p^evrf5OfWvqn%-4?E+)t?L_d12d zkx6kk&P-tAbNt7z*YX0pGMIDGqPisC-r4i+Ue1K&)wljgxo|>4A{YnIbQM*Q1i(PD__?jzOr|{mZBAqh)v}hlq zNZe!S-_Pq@S+?_Mh%Xs&`DUm~YSx$2!qc*)SyaC?TvDN02#B`s!bp7{R&3XK+6*NB-^^v`;G#Vipl zk|QW)z+lIb7NU6y2J<=*=r}bR$Q$JwNgnydSW92Da@Ur}o}OW1e@ct&OpL`mxBmch zC;CxfOnS<(NQQM&7(a8SYI*0fU9V;W%10tKKD>3PJc!Xzq)1(x2XB}|53d|kWoC|5 zWVc1Y;{>1AH2MnH8qCFu$O`Umt`8rDKWY~QPZ95&9zP0VT-?pM%t4%V+%iwnqCvc2 z;Y_gPfJvmJg2dNXA8BBwZO%Sk0SZ0F4NkW9w(xI~W|nN@5wIi=$2AbQ`2mVD4}It{ zN^O-?vATmJoNmwP1v>_XW|^{C4hDaSjMS@jaW2%AlW84UbAkC(kL5mINn<2%5;Q#2 z2`4Oz01MMBw7Tv+%WPwHSWCE3+(tjAH8HcbU>DB>lhxP&J?k~jNE<*N;*>B1264|E z3{_n{$+0}vvH68oSlNHidS~whfPUzO18HwT=}gLw2|SuYs&Spe9qMd{a?y~CO*&-A4PV`|5N z>xvpct}$VXG4d$E>co>uxhD#E&weUk*g0X2+07{n_kkGqrlZ)Kks|!WZ2Up%QYhyD zwokalI1oK5IV4qd1sLG<12pym<6BCshB@s?@0m0DR84M5?ve)}6OsS}k4jjtC0v0V zKp$AgH3ZUzBXXd|Z~*?4-M11Gsj z8xz_2saAS1`VCM48;;^T=Yc`kUmZ?8X-tm%paFe{{{UK=%**p_Qhm)ZBa!7-8zLF^ zKmBS9cO?~(6@lsl9E!0W=}dqkVT=Gq>PEVJ3>1&H5qi?MnC{m?pV{tQ;m92Q(UVid zX(WW?k_TWaR=AbO-zyLWCjK&Auzy-ysRuJ-(m5C8ScqaUeto_BoYW6&`5?;K&+y~< z&}3th5r{nxT5j1fmt)U3EsxThvjQcsWh9r~>$!==Pvz_!F#Iz|nimRjpFlHC^MLgq zg(VoRfwo7sLEN{sJfRE2Z9e^}ceC^vUYQ1?bZj4!^EAXLkj8eG?bf6ds;JC|>9;ik znXq|92iKZXiVx095z_*axa?b5JjCD-O&qc0pVFZc#=Qy8xy3Q(W@!tVY5zeR|R}t}u80 z0-h#Z^4SO1wJ&vrnH$qnk8o$lm{RvX$j%CIE;Kb2a|iZG1MuIjsrq015Kani9`+A^dNNj|2c`!qqmSlJj3 zF;jUifn@rdQp+8#{{TAiA{aQ!kO?2;R8U{Xc^ZGD4o9dpmiCC?7fr-^)Gc6=t_lD> zsX0_nLGr}im+U(mW%PTOvwXR!3dbZ1<^1u1!wEwH^v5;Nrj-))EZ^@MoLfT}+96IV zqd9e7h@4~5np<1V9$cx&z##Vb%{E9RjBbCJec{OBsVs2s1Z@m@VAQBUA1OO~=QU~E zO%npIfU4WiPkK@?IavmJ{M;Ik1FA{1j+i_OZ<8R965x+<%@+$3g|?ACS1vPphU5P%7jY*&QB~qUMZ^(P)pnb4;xjoO;#a>6f+;F z>q-_$2!taxm);2NgUzXq}0gWRC+ILlS9| zSjM{c?f#7rxyq{pE?h2wo~9b#vx`V}Pl~F_3>cgxo;5DjkT=$}$h@Q5%!yV8B4@%kzq- zD|HfHMc=nv0yAvb{wz02clMetM4u@4s>^hM5)_y2Gg@{QuYRT3cE%0?U$r<#K2>f}d#`BGWMga24hKr%tuoc%0z3_b`IH!3<&n)LY ztyNgDCDo1xTws25uW-NtlaKrB`BBV;W>{-soP)K$+NKy~Cyj)CYO76_AfW{E4hj7Y z0VHVI%${1P$=*8s1t$9r%)SwVVVnVuoElAoysB}~X0!apVTE=*$H~+2rz-LT$&CL1 zc|{z-%3eW(v@t&Wg)qq~$VZhcC-;jf6$St-id5&Z`D%1+szL-l;Pjz8io=p|oB~gC zgN#xVfwwR@Zt6*-+RQ_FVDpZKmlA=MhjAT+P`w2xAC*y&>S?}E2j-2l*CQ06-QNuX zU#4neuaT1KdU7b-Jct;L-*;-`f@(1up*tbq{{VKZBn(L<-Lvabh$PMxNj}4^77LVq z%^B?=`igp5sRSz=W49G_THFob8N*<;*PI{HWG&C1w86%m7eD+^MflzF@NkbW(xa_@aRNw>V zOM{-BDBe1USL+Zkb{>e9r22GV#f~W@igsj zqH^*o6}Z9OGMsx*u|G#;$F3^T5gtzQPsDt6&$*{yxkxl*Wt<#(14DUxHzS@qb60T@ zLd_`#SJ??!`*3+z}sN_Nf}?9-|~4)ZetiFm_?S zl&&(s8;(yO@G1%e&N(0L8i(z%k~6!SLwJB3D-l(6O_^gIim%~I#yWnLP4BUdvHoVG z`(v^DnC;xs=0Rp(3Kuyhns$!snxfOl#~8=qnn5I_XPkW~x*ANoy*uMR)Cp9Nl$xrF z>~{>0z*GFEJr6y2rOXy5^9jZ=`O#HOPo7Dli?Fd@X~D%VDown4(%}7T%CYI(j~S&1 zb59u^M@oA>>}+o=k3|Gk#wqT^+glN=MEcd3tqI2N0qISJipiIsBhwhCG>lx~&OHY; z(F#ynwqq)i+Qq2tp;68=Qv{8AV15;r*NT}8WF&vnI*3iE5F3X<$V1G*bGs}i}rHW)(BXUC{u0bB)*N^zJ$4%08 zsdW7^4<-oC?SP%C&GQgF2TnUzM-S9|k&9g)=6E>hHHM2_U-_7c`P8d|I&|w$s)oSM z2iBa@ssXTM`ks~b3q*KrUt)Vy4S#Mn^_53oaa`AkWoW!hHNs`05^P`hNB;m{HMF+| zDOOc)olZgQ4O{T#jg{AlwA8+~N$q5xYey)^W3=NwyyCgBDY)}Trl(#CHmtALPrUT+ zhw((760wpcW%I+#**VKIl1TL)mD9Hs3{XXCk--FO6j4SNG(m+>IsiKgdjrX@kfT0% zRF`=(>M+sei;reCvIq63zHmEJ+v;jETDG~O!T$h+Y=Ct(rZ6V3K zgv#Bp0R#C~RdKXvHSJ`T&U)1;(q8+u&Z08Ci5 z$XIkp@(o;;_QK*_(B%`08tlNv*r`*XV z>~XY{QNc9#B(uN>$0rT^>!%Nhqggji^CO}aBUU`ncSe)x8gfRh_Oh%q@|-9?kf#`u z+ArNqyL%LmpTwHU5YI5=q?qF(OdJnEifph>v6&;55gF(X3w~IwxvkKO(1LP)Mp<&J)pK;2x&0V?-QqmtWpCTim9x{I`A?Sv7* zf0ao0s*ff7#QBNtE#Q-Ao=H5l<&Z{DXV>XjaxJ`QQZ4MkxMD~0#b`b4%<8+RA|cf+ zl$`!zv*r0EVvtI3ddbfpg%V2P8UvcRAftr9q5oN5LHzG_asps!duLgqK=zaJE@@q$s;f= zA#X~L__-XDoQgM*##q#-vOmfqliL8(7{Z{ARG*=w3V9e|_|(%t(I_%22Iv*IsQ1RF zVkysd>IDJ}aC7-kMmf$0yJDNY%MaaWj@~4fs?N(v4c_H%} zNaO8-2{f`;KF!fj8*|7k1yj(Ql`;oG`BLuV9R4)%X>h1rkQD=x4@ze20g-@u5<1ds z1{UY29;X!GPe4aXZur@;xpPk{ykq9iTy~^}BODH+>6(n=03HXXYD^5B%5&S=k$}k| zP-C`pLqLTxAjSkh9-t5Yy&(HA$vFqqbBbXqf4V-sr~#B`C>OWOKn`f4a6ft9y8i%L z9tgIE+zV$LNZ@@bau4weaA-p2Nf>p&RLvG$LhOn-5m^53B#*o);3}R*KN_AhZbGuS zAZK>uE%ePrBPxy1N%J4P3}XlUD6&DQ9l7}j;%LT6;9&amRm(})P9J;o2$ibuf*fuC_w1;8M+7za6T(w(#dFoOdG41ac%s^=|F!gG^M{m~;JkwQQ- zBXRG2B&2_=U_D0^ z7;@t==N$;*o)7|ZarHfF$-RL?oMpp)6)9(5y1TzBi)kceme1u%eo%0uk9vC{3i3Zc zxk7%l)C|m7piq5t)|YS~^;6$zCWMh&r%~9@F+r227aoAqj9{-S2YiO8+Exbuf=6uB zLPq2{Z2Bnc_|m#SlP5^RF>G>s?x_hy9TfddRP(-0hmPdtqHB^4HWThnDCS5xTV;op zw~djeJx^+pW)f%TBc9bu%#p@h4t)U>rt&awRdRX*RJQFoE6MaV6pYR`g-|`| zImrhqFPYtr1ZoLAc;c7NU*c%^{^-qR$8PuvQ8Dzvs|gy#%MiZQl-T)J#qn?tMI`+x zS=Kh&D+q@f&rm9hPqcpRhu0MxtR_Na9CanmYWb{*4Xdx^3qp+PPTuE4yh~t=zb5Z}S%+vD4{WP2yD+0C^d?INWydPkeJws;8sSe$DPI zq)Jjf$F2Ya3_XwGR~FXRCERD3g7i#$+5CG|XmxEi;%$Y@_a*STj~VtK{d&0-yGUeY zjAl05jCCL9(wti9sG5C9!v6rJCz9u91nx|NK9u*5?6{F8c1)5K$M=86tv$WFTgF1i z3m%~Ks)h!M8Ka1?Bb5?1KQUTtNXeb911wJ?A>@zY2iP7(B$f{GEJYQE8FGqG=|!=O z%Hre`oQl%6n#MFLw=$In3JKgm{6#e5E~0lvL>eW#IgVsSbJGB>DK4~Vk2pL2v~Ht4 zNX<9wGBf;!Bc29M3H>Xkg3j97VU$I3xlnEc1M~)#ZzXVL^1$^_RgOK^ihj&o?B^u5 zx{X3BvnbGQDz zlYqGVy3)3#cX4dOYeESm0hZ1^ao(=$sWxRRi-ox)?RWGgPam17?UKyK1KZrmAP4Sb z1NdgBte#jPk=K#VMOcRX+HNSaxnYHLBx0x3txZL=v5r4Aw5gLg$saa9Du_cA^0am^ z%M%6r&AoqGmeW+3;oIa)@{X>=5`PSeo=r++UoK~oH*T1WXYL2NDI3~~c`fCEWI^bTm5_fy21 ze#vt3q35nZKTK6Ydm^rUr)E9zjQ+KD=T3$x2bXo`4w)R{qc)5=U`p@Ca2e_fbNuS`R?a~&rtBPGVxG}W9s|VaeF&$@_qgtgTW4$^ zIl&#*ifo^4>E_NyW4u+;ld9y#%0JztjnozrFPPqi_T%!R*ISDAGswN!gu1wl^#^uw zLL0?(EqCVy{ux`PXtOIHmN--%faQtGo(|EU#*toFh%5u+ zvFTa@E&wVB`cfFc`>JuDN;z0up!X6;#E9Di_(wradzJtXD2(tk>smM}atBXU$f&U3 zV3NbH2}PP6(F#p2+_XwYI5@>fvjtE}753{%8D+|pEuT~dfUUTar}CpwGI1b0CJ_O*BbAkPdJKA+|Wev0r>R9_Y$1G2;6wk4sAcDi_c&4nR^N!{o_mK9AvTl1t^_;T8#y$i)<8QBoFtEFPDz^{7omB&n3st$6~MceXvj!T>$BZ zsTR>T1@ojHob;)<6biLbp>ifHR*a;RaLzjpn5mZC@G&!w_y{!!IOm$3B_jcjMQa+% zsg$WcgsB^2hsF**>F4sVA@QG>z9+pdtamsnO5-B{ah}!eF*ZrV5tE!(Iq?HT8rOzo zaJ%NTK5}D&j*J2NR@p`)*wc)yeg6P6#;t~R@ai|UwLE!Q*|wO^=R*We8d%X!@Ux7H zt~51}mRFSb!H}A(eWAwv zBDIp|?9j(y4b0G@D-$7S1$P|r$8Syu?`y=jUKr8z$l%rOqPuk&g2f|7+kt_QMif^u z;olut-0N{gd8gajTS^w)CAYz7#(qU(f%0Vb>6+#L09WyqA$U@X-?vx(T5afYJRL`( zNVEO7s#@u{P~BWenxf5Z9E~DIVTC1=V3snVWjf<_NF$nAbxmG7_R?b1L%M1)Tm7x! zLd6~ya-;wka3FF3>M}a#zPIp(mld>@)|zw)Z8s9C#E6al@W(Y1XgVgF40hJ=MH!Aw z@x>ep0>4eb0oRkyy=L-?>hIaF!^{2-o@ISXr}Cqp&~7g7;6G`+GCj4`#k(Df48dH5 zCj){2?SV}34xJ_4)s4ehLw{=km1VV=lqoC*ALiig!5>CAu9-BAHVHh&w%H;(Fkpy> zbA93tGtYlor+=ntdV;6g?BlrzNkKZRZR6a1E1BgOs&zfBl3M<~tV6)oPoCNwPMu|U zf8nnW-Q8Kos6iAGi7lsbw5xxsljq>=QI2`T6IHCm)P5S$H8-1e*V(~_HbU$X8Q3s6 z1TMlie|QBQNUrwlO4D@}iEk|+o;d#Rnu_6lah{%(2<_y#4H85o*|0Q(1GlaRx3zAt zIH^YJD_4E`JG*{8md266*OIzRxtF8O7}91yjFLkpCTR#_?!jEKBZ5eA^gMQ}&}y>8 z3Z&og91qW>Yw5aGowCNN_R&R>Ofg6DkH}zDx}-}K0YorL4>?n`pTfO-vk6-bN?iI~ z-@in9I4W+G945DaXTYp$l^w^mM|Bt z?cDu1sSFkhs>Z_P^RziYgYwOKF>>o;ve6Om?wLQ<;xX3%WA&&Yxh27lTzZvm)uZKU zvi|k$u0cNFe_BZ4)8=uu8{@=65oVV1M+@8lGffuSQ`?CV?octtTbzEBS%uM3d#R*3LXd!RJg^2o9<>^o z$t=^mWOrl!HGAyVD9e*1g99Hp!KiLt(Hr+^AW_`5N8w4XtQV16E*AndJoO_cnz6e! zPV#*PO&$C($IM9nl&gLt2W%Sw;E;L!X=wVDsLh36Xj0ATNV#v6srm|@805JM zVvU%Cl3Bnw^vy#gF0M-NE7X#}^XczTVn?}TZ!cnHPu?Bs#1|JMD{M07sZ;}suOu== zi68`T9dZb%UG3w+5Ej78eE9zW>k(9&6^BW4dg0)c2XN#bNUB9Z8=H`QPg=0?+RGCV zQ5{ZJHBt{gr#Qt`-x{*1j%CN*D!|maYpBxfD0SWfft+!S)Pc&?>ufbASo@3HK<+mANFW%NE4Z)UUETDN2WmLsz_rjb|Ygv1|0=ohRW7e5;Xf<^RJm^+sz<5h~(ovPBBr;OM=D5I^?c1`O~4b^N-F-k59GDZ;}h;U+4$8vlVme2PB(jJG{Xr~osL2DdUIQ|{ps0H z`vRp4wL*==fz+ByUB`V0!jZuaKNC+e6V;e|=9g~nG1t`6h=zG!dv&Ien;Ic(9Jc=e zOq^1xw%ilXsUne~B#b)&=qbvm2pJ&LwxHOJ7S#Eq8?o$7LdrJ}pFR3!tz*-7_kOf8)5R3P?B%bNJFS%m~`}9+=H51;r|W3>=?!pa2IW z9^Gl7rBlw_9=vy?^ZCIe+lpbR?SPM$r_&UIHXLq0LrCn|%AEURm}i&xV$CasnEwDM z?(O)RcuX7>{c07F@K{8^pF$~GOON5)KA=-iK(i(bk59^sU}UL0_7x0rOn=rUao-rJ zxADrFcT83o+p~cg`te93elXut#Rh1B!AJVzH1RA)7^S%NE4{FDo$c>Q_Hv_xwEBTo z8M1gdA6iV3dYW9SmJGPT0#T2GOOL9?NsD4TL4YO8@e+ST%E<%p($P0(kN0$RBQ^R zA`_j=(lO+h=A7h{(J+iVv%IssH!?>FyR;?#;8T`i>-4P$(ydlQAY>2xMH3(&#<)EZ zqOsIc=2cvR0ssy{@xHQ=ocd$G9s5^&w{g5{B$FcvGIoMF_7%MrIj{oSmKf{MQ4CEdyBnn=Ni2wC^FpjY>844b*fv9uSpNWdeq;2= zs(){X{$3Z$KDo%NcK6oma%A&Vjy`R;u87VO*_pV>1HvMInIuLYpyrk&hT*og%C0!X zjZ&RT^DL^xt0IbCZ5^zSsdgQUEVO$nxjSDewNx{G%)86o`YF1};>I!_{&Y7^P@wfBh zk%mDB^rxt3DY*{cGdRi5+yaMaW?UJYZ(L@feo*m|pTtrC7yel&_oVJS14gGCZWtdx zMOsND5d{|#Fb9-y7*$jZ?c8J3RErd(U^acq(m>0re=r%_7zcy$j5py>$snAbVgU35 zfmQy`ah_ccf7zs4X_fLB54SZ}VzMM?NdN&DIp;jn&^9rZ+$jaNe)9G7H2(l20|R&G zLKcGUILRaOq%27T2R~W@I-iw|3bNA4$&)+0^6G4F(@)Qy1aZP}mbIu3iDWyg} z=&1xz`UCjWfKk)8y$DwzG3WR|GmV7U+Y6Ep{as|gvLrX+GNyGrJ zE`K_1)Ze$x%X$i^(%TXNX;0^hK`pRdp>V$Wq}m;scWNo*llXx}R93ZPpDYvV1r)i3 zV#o)uH0^|rpPe||Zv>eF`cMM5ELn|t_tf+(Ac?Yg#V?R}@0yWUj1Sb*suXjYVr6eB zvUsY}Mht{+8;4+XSLY+kz$c$hwL$Gc+URz_Q<|4?t3AXNpz}(~dN)%^>p;eyhnhpd zh z=&rmu9ET~4HV5_{P2Yf-4L zZI3+Awq+9VLspZ znN)t)s~URKPuHzGwKo;jV`E24xNCUbR^8usC6pZgb*hoOs4}B2?tz=NVp!ivZ6c_U zta;~}+Ge)8&dCAD$pfuuwjxVXz3gbPND8I`HU@j*voG$>kKx;`L4q`KTNxad=m6RfFONqiL2u+{omBZJ5|4z>Uch* ztX%3hO>=PBmC0v0<3Igwl~T^_R$?*^?idkJPK^Z4RIHE_jP=@m{XVrxETFwAmzW-Z57V7Mmf2@tEHa(LB%R~=9!+J81GGR1CxQXb>S@1ak#N8uKykUpKT|`O zM1z;REDMK33u`Q-H{RGk!i2rN1eBXN=PbiGs9D0PU$mDVk+w(U(xTeA%V7O~l^1;i z$g>69w(@Qhzb%q7Yf9?zCL&06H!ONYQzU*hj>__51TH%u0;LwLpf>ev_AW9hsWhx6 zmgLWUa~LSoe9U=|ZVx|&L*~pF6?Rq~@JHoB&m=FkC1qjP88kDQ2`)=9ADv6rsP^bE z%-cw5TL-TvpRGRGR%uXtnFl{V0Q*n^7FAP>j-+D;)BgakO7b*pz{43B`B_|(MUvbb zxw16d2aNM@k}1gvf(PeSrPJm`6G7)lokFtX`Bezz1~a*2+y+M0!2VSt>QY-oRxnY| z@s}il^yyalUZmPcisR3D7)g{MgAumiJg1Mwf$ ziS8tjm6SxRKaE%qGllE9jsPFdoz}v$X5%&daYrB7)J8`fU{hKMe4;J|iVmOZ>NfWl;X*2v z=n+6C-`2Af%D^)M0XQD?z45j9^c5~mtq0198c=!i*bi_;NgeN(z(fQ6qz5#`dA99I zB_5%7pS!0RB~XTa#zdw>6qht+a%k^}r~almlewFor>-gSK$1Q(K>qZNO3A&0Rn%L%dqt4uc9Dl0m3XL_Bv|r1!g#~8 zV+XxWaFE-wgl{kr=s%T0CM-_TfuBs&w2Hf8B3wLTCS?d)J%3udx;*NIqzDuby}LYq z6=zC{2XQR2Wz~ihwgz*@)SpVwySu@3Vj?&@a(ep_RckA`?gs-Y#&J)Tv9^&%G6v6-SMjA*EKWw&9h;BVu1X=@ z`=^pZJNbKQ35eh}MsdR?e>xO=!OO_3LktpmJwAT4Zj>kAd>)zRtc8h=#XOV1#Y~nG z${piUK;V_Y#XeVk89c^*>F{v;bmUWa%$yPl9)Oy-(fMSCkmPa5r!;XK6_gR*df@() z`Co9kpXOd30U%V0Z!y>NHE_h7;|-30XPRh1*Kg}Wi(NyQgf++*<<`7fw+u$LmtMNwYLIC=4sg( z0~kHIr?{**Z3h4__Q|Iak-?^`p4j%}(Ydqy2R`(`2+vTwccuhV3C2!)H9vHK97d-D zpl-C8a(Raov;mA`QZs;k2&3fRw{JemY3|1#b%$;{QlkuV8}pzD!VH}7LG`Ekaktca z)5t@DbD9R;czP@Y1aX7F8KY(~wE-VoQ;cBx;(-Ez_l`caSXU!*s4_?9YAEG%fs`3F zZ^}*v+>dijXd}nnC)+exl$smH4%Qz`icgz?`@lY+(s>JxQHRiqaEk{SZ^n&7K?(vo z?)ubwUpqhnew9AO^v~4LV-4FL*{5M5u?0cMIQ7mdBI-U>!9KmJ;kJnS=iJa>ivy3! zrp$cCYl$BiUOURFe4mT)(7#{=^t0p>&~%Yj=8Iunoc(zT&Mw}Nr+ z*126OHb-z)WP|~=c7;>ZocC(zqPZ%~l_}it|MZZDliBge!jJ5d=@c)s)_*U1^^Y8)jjLU=vTJV$!c>Fcv2_W z)9yo@1Wrl(dQwl}=%a~aTWO4Hd16N9KIXbuX8T+2B!%t9GgFq07hrtx&P{6!JvFRR zE~L7ib#3l&OaXXZI&<@CS*V|1N3UQtK7QXN{}NvBjCIA1KP2+yRm6m zq&esh6~?E@Hj&fH+*4+RcUNrtOfkrVxN(}DW`&L&S~m1xMNx}l;~}guvf4<(PqZ1|uSg+M;Rh3Uh+&!yg(=yc!`!Wu4arLD8 zJYCy3sY%aq_=+%b$KzFGE3v;SoNvWD%}_q^KS4kYKa21*y=bspjh#Qf--S0RpT79_ zYM(yBlK|r&55kaKU}f9Xnn5Od1Nc5sfr=% znolV`KRQ~D=&knsr{_>P>rPAf-0 z-XrkEAc!YOhv!28zw*fb27u6MnZU;IJ@H5kjnd&y;Yd}pkqG|)fi@|O*9hM%Q33AM zhB=bwIr~O`3IU&^OZo#+Aeon)tN!maf+<61&Oc3}iwJ0q@^gdV?$h_k1_XbR6zzl` zz4{7qT#ijU17ul$;ynA%OoU~B6O7Y}?IZ|^6b~~v2mtq>2(de4F9YjMSnf9yzd7|a zG4qc=KRRiS;q#VIJ*a2^EWqWY0DURj)B+3sl+Uv<`_G@oklI2$2hh>4K+qcH7o?ky zrxjjl?%#-&6@5uHWnhI!!UBD9nv}!{z#MyylsmEA8L>fh$M@1k!|PT>q5lA5@~aAk zdTkWDuntN51xkl-<{?XchXGXkVx~nSA1aT+qi1aVsVVo)DVv>#`j_MWnp3hu)s}al zBP0X#qN?UVKh(E9a@12yRxXSViU;9N10M8j0QaRSl0QCc&$-+H4(vY~c2o{nQYz!N zDZ?I=##N9$Hz)-5rz-*mc&Uy#^!ij}5!#Rl$Q$0EWGkAPpJ?Y8rk4y4dIpN%b)cSU z?m)m5ALELaP?-6%yN^s#kUt7T#RSx`i;nb|0~BXH=>ar{Vprg=`=WqxTxJXbA#D6U2tsJZ`Aj3NYx4Arb_Nsd1@jUM<8?S>A|mDR67PnP6kh{D$emk zgj!mOxcQmSYH=sn(+C01a5(j(ZaL09Yt6zxkNix^kJ|NPj(sV)Iiw5-1Ruy!l6v+0 zE3nuFIb5$Gkxbk@zY|UbXYP;AfG7J@h6ay$+ClkGBDgP!T7kQ?ve87x2n6ycVtOan z9G}X&f&oH(tHiuZbvB{mO;pJvZ;F2^GyTO;g&)`PslrE}9j{3Kr!7VM+j)Mb3TXE6 zIF%81e|vcc@f9>WRjM&%+>C#OAD8m!Q5oIQb<GVFi6S)?6^_&u1YZd)Nk1u(wDfc*vDN0Upvfq@}oS0>T{o<;-20gx@0B^Bb5|z zOAt@6tucEtsNCx_yM4@L56AxitxvYpub^_X!RCK=Vc=IpV+Ekwk%bMt`cAR1mLjK- zfJm!Mw?=>7q^3T(mB9RKO5)~C@*~5x78yQU6(IdZGRnrvWLJ2kEhq7`y#D|?X+4t* z>2{2#SoiIg*^fDAT$7K(wK7{fX)Y0$Fsm;aImhAFwdc2%63Z2oil>Zi+#m9$#bbE{ zZ7W*a1CRA(`RCi9rDhjKdTGufGTZrAS>tLF2tL(a?gS(w*~1wp?w0wp_}1XJy^h_S zEvjwms?0Dy4wXauCGIW^viUMdSB>uN`q0#sxj{A5s;JkyS7-{oL}U&<>8Yk%6O=|O zeF&{jvNqka1;#e{Q7K%HsqIwMi0)VGY<&RJ(yJwtH0_w=gQc5+3Xu|yQ~3i&^kOVM7#LM4^x`OUnNdx8l1 z@lAV6&7s;SMemGp?}~Ib19m*`pZklse_DCAht46(Z&A0IbNwl;Q14>1HOofAP1rmf z@t^UdZ0#1o8yLakZ@pSu8%Y(+@)at)C!86F;6+Pk9g_Ko(5%hZEhq=*F;tU!Fwkg~XD5E(1Y3b!<$-V^gG0so_09uG`?RT(i(uX+a zBhS4nw`~V&5g8ID862N%no)3#+uH!u`1Gh|J0sMfX*(+>(M-6~u56?$Bzat9NP{5N zd&_h$b(ME6GmL#{@w{L%lvZQV`cdRc=l2UFm>pIlkJg_Jo$Hf}Ne(--YzOC>E}IiW z9nLToFb^0J;M6P?R34v=U(fE@4Yjaw+=j{gb5y5>X?GIMu?BFM+6UH&Xf!6)DsgbC zdTrQf2;(PqamndbM6nf@xX%F8 zd&2yw5iC0sgIgMQj`xv?rePFEra2^2OQI8Y8==YmmP|A+#_2VD?b6GN37A@slG-;2SfXP3dMMo=ggl&72KhXfl(# za03gU@${vJNfh7)&OyK%vT8%+5LOgoamZ!K2iG+Vw$p;)bK8+x>`vvGCNeHIfaACu zPvR;ylm#KY!o>9qG5o3>>Rg{N9y)c!Jv@wH9j(_GJXK#(Y)Y(*OER!;To30%7|8(? zf!tJK@Nv0V0CAku>m+RvE~TH-I0ByH8prpFRd5GF1}bSB-4PtOjw6IljZQgFz9&TQ+%QC3`HRPug`q*{c3of<1R|8sT?aO0Q*!TcUB~Y$mf;L zYW2RXqB5UlfR9~-8kEyu?l=2Z@l|}MM8LrcpaJx%?zeXm<+n)8arpgeV|bf?)N_n< zADu(yws57n?Yf(H>K3;`BNVBRGC31HGm)BVteov$dh*$++Hy0H`St5UPFcC&9^_K_ zgJeELtlPhK53byrog$U63kE;ztwmI_hyj)0H1nWtw!eULP)W&$M;4}J4APpM5?20CoPuq&tmxS;%F=@B;)m1p3mA>(?HfnpIfG%eRiy{iFPv zq=mS{BdFn!4|7fPn;G7$f7v3QV^R+tX`V>I>yKb4)dH}p%1%#TdRAb(?jU!l#65Xo zpK4zv#~x#kpro4zVe2ZM>_sV+4_wnculCsU+*7=P+!}Xc&^+V^IQ?k*Ok=C@O)#j* zz{u@NA|KrY>M320$UfN+KPhIW{kcyYTj`2 z^#pqwk736$AJUa#&)(ht0DWefY#KzKV($Cjr7rb27FT8Bm^)}4Lh-D zJnT6?)YMEOUch_Q**K;Wy*FZp0}nVVyi$d1ed0d~2wq5R{xrEzxCW$SSwP^ENE0OC zYC(a|^`?`P*BRrbD+R^{ar`3`jIE3-4ExizDCf-SP7XR21W*?$v~SVo1KD_{Z4qDw zknZjcTyPxvii%~HK^g==iaLcEqQgwTrNQT3ODeFD{_C-9hRDx%I+(!!!n2-k@_Zp)XqPOaP%&tP?IUQROKb ze2k!OD~#f-CR~C>8y)JswWxs#uPyvd>T1HbmT-ES75ann9kCSdU<)4f*&;_wGUQai zt~uhE()Ca{$69SJq^8QNZm3V86%EFp1M!_4S73BK;E76dH!EM;4%^FMcx&|KOHOW&2 z87sxvn?n&K^*p9X*^V~5k=c1P!EO=0c*>sY+0A;A*~K6FsFZPz6bh@TXqK0;gD@)i z`|5cWlyH)Y-sYa(E$nbn!wZ3e%l_*TR+80lHpof$IjMD@5B~sXMdzgLGVTB?f)77V zD+ld22`&U`0_Txc?NlA6hsn;anYyt$e;a;0)AIhAAMDm-7iVZKcY=R}jMe15hE6=? zbLs_k!fBaGEf4b_KYO1;OZI}N48N5;ob=>=bYOaBuTwFq+J=KKB(^*{B>bA45zwvS%Rud83=ic16Q7@rM0q^HVtA z`t_<_Lxb}sN3AfyoN!0BGfSDF@}on{Oz`9JG^L04hAS`Z!*+Qeg)frBA2U#-!;u<% zo{lj{QJX(H)fI`rMI$t1;DPzlZi#zfRSLttVt!UqK9ry^>xzs^5biTi z-lSwOB9Mh3cL0M-`4^l3J*nf?gSR~Y04iWGvg42DDk97|QTer4!XCYTl%7(03RVlE zv2Rd8`kH3)dp16%t%y@UclD()4Ddf%ELSoq?j(!?exjT_!a8H=R*H;uG=&2U5t=L) zE8+3fkN6Oxrt(wJXWEKEa!)YuMD+cK8P~pl3QskCYO#~h3Sp3g$2B)$V&QPZ zs5J{k7i9`h_jolIosI(Y>rFC~+uoJOVf{D+{wFkt0Muqf>GY9yPB3a=bC9;E?F?Vn|6+hDn+tm)Z(XwzD@;8 zyyLZ228>+@xBY5)xO%cwl3&)P3!N6)@duq8Zz5#I?4XoyP8SG?vCaQevazly3SO*1a_rnmrsXM%#>zOTd<6`*L}3F&J}@JCl#`uSOtx*CpWF zPqEx;O5iKA4!)T+))GB)TH%$cBP?URLKzVxeXgp@fN(~8(y}QzAY=+sN12~$39RtH zZ~RR2=>4x&MDT{d3_u5rQY0MSgyBm*6Z~~i_8y?M!op`)AX+u_=^x<8{KdQ`&e7+!w>082QFO0{@wjfO0m6L zc^uc93SOckDKf6tKrnIG(jhTURFT1~iJTp*z!HtQNF0w*TIdqvY`m5j!LOu?=2tOk zY>gXvhTXrFTeOi<)@%?%VCO#dswHgwU>XZAr7Ta{?bE$&vC9;7x4EahrbmEdmg;X@H zxqELI{VDcP#4TWu#-NzjoxGj}P6Pr`lnm#erFpb3?4y3m@+zIV6}uVoNMr*R>WBx( z0%HcB9kF5rm>c;8YelC?0afU|O;EbKf;jtt&4t#dW+mi^C>X*20QGZJq`$o0c3zA(Wjtf@te2WUxVSj=;MHHWJ}|0r?ZsNf zH=uhIwmREk9I&4<;541d4Z!r`n=IBr*%aYdlk&JH=t-_>JBf)TNb8;ttxClo0l_}x zR_dZ_V>wf^+}16oNQ5DHEoQ=(0B*XC0M?u;;1fZ9HlVl8)1f+Eqy3~o3IMjQE8D#}{`Zoudmno%5} zkCzI1Q&k^fI3r^A_AALUAc{uL?aIgWH3_zgcQVK!M{k)!vCCBeld_UP0DcuLcUKXG z%&yyd1I|A>og374ve1d*>9#B=;1a>HO)dDjoL9#^M7l|lotEE&Mh zYI<#8)VSJo@rcacP>lZo5;!OS0Iyb~)i3RWM{ZZjJT6;zPhU#OWi9^zEf3(;Vhf9i z@LFQ&j9~S}H1)F3O?Na?S-+Iwk}RHtN60k;>sPU{4*Po$8~M{Nu7$_?w2~IaGK>a( zymMKC%&UCv?0p#1l%}*oQI71o_tVRr(hr;az#4_8$^?0Gy)ntC@Q9-c^r@nn01ulP zZ*@4S-*SqmE!BvOq0gZ2QejBO53T^kO(f8q0Sd>?S%DcN&{P6{n+Sya(@8A??TCEW zaze6!-MiMR>oW+_2$VpeV{Xy(oOH)uttXJnjK+=s z00OM%Ql`+m6eYhkt0R@ z-XGYhAI_03VP`5BD|QB^EKfU!zZBJ;!n<3P7)GBlhX>RqYFMrq5XlDbcZ~5?OLN~I zswtt#;0OFg3KkbJ6B#7I^3^f@(TZq}VB4}suQfl*(3uC}){_y8aOcxB`9_%@)-HDs zezg6L2_Z*5`JhOu#3>y*ZRt#D+_n_9N2GLFA!69#v5^e&XBBIxGSG}T8-Fvku$^d^`$Snq<~|u6&Kmnzq$vg6w_p+efB?%7h=$z zNh6k1K_vQM{VJ)l7{GS?C>Cl6$UjWdyX-q6#`wYH@_p%6Xvq0kRBLLZjGxAyE!VIa z`cqfzEd?&C$zjj?G@;atZ|CVssJO;y50{Rh;+~?=X5urPfHC-_YOH)`kZeKNG=z{uJvH!c0v{*=c_kKHV^ zo3JEFxqQrR$9}ZtQpX&OR9|N-a>ao?eJR2QOrNwk9)wc6>^6}7ryK*HQAvV2(kml2 zH?lDoGe54un?nvXSzyUZ$|E5uQbsZAqPp z!AyaUYhkVs$FvZm91?n0LRuW}a>9~{l0EWjAXJ_2o!x%4)@|rEuwmY-V&R;SphwuA zriL_KX|SY>4|;&gWDEg4I@6lmw0j+Z^**%ag=38pG4e03Ii;v*R)q>XmdP#C+OEV| zzG8lYmu6HDswv)Cz&vCQNTDkOcMvM4LDbWo@qiYZ%ohNu$@Hq%7byzmhdz{>ND{d; zu2DBGNF8f0QPoAX3gq=YxuJDdkq?;|L}P$S$Kg|pIBsA^mNdZml~`mCdd6;2R)aK2 zN8&13+(oQK<=j9TAi;q?qM+1#F{a!stcqchRt>mv2he-g(pyH65}+^8Rbv`Uj7WC@ z)}z^{8&p?ib8C3$VJC%j+hM)KP1yYS{VJXIk!dE>uyGOSW03duHN9}H7T_GQRoqA& zt13H2nas|I%E<)ofMhuQFeBV2JW>-G;UcoW+wT7U_tC@!t4MG2VeJ>kJ7ZY zJ8Nt70@$=SAdGAW8%JUVQG-IbP@%3}_b|Z`93RHE_L5G|QaNK`>nb?_F!wbqk%W9@ zPZ`MLioZUC1-w3Q+HL>`oyZt|ovNg}7>w_*%^XvjV3868K= zfMG#6U}-*OW>Tawo!;-Uicg!f56Xdz z`#KJXpREGfGoES89Q1lkk{|hKb5mv5dW+;ITz<3&Pz>!KjWfw|d6EAB@2X$3^T=cM zYCb?eWL+?ykf8mYPa%H+P4bixh{xh-!*IX|zm)>qK+xw3r27F%WCZ^JtA0JH*^~RA zeiVnyJpTYnU_#R1{{Y9MpQ#k(kRGLVs^whsu;!Y4#l}%+xLC4C$0v#^sg=Os0)42W=zOf4^MF7in&b|yKMH~q zcbN^yha3L@b|cT-?VR_a(6_C5t)7BI_pW~RG?naq`c!^jJq~EtN3AQ^s{uS`Ii$$% zL0nTv80;x97j`=SloC7lrjvuk7~`cYjRzErpo|lbaZAQe6b{uT25G10Dg8V3rZ!bc z11B8?E3g`P9q9=p=}#PvpM@b@_M+@$@?A*}m$#ve5-H26j1BR(;Zd0*WnJ)-wL*iq zif&==Z~p*~n!^u?uSNRJcU_!+`6B9H!2M*~{_w0#d&H6H7jdFR z=gTNipf)kjdb(a8`S$kz09b1p_e#=dy8A@>V@ob`xZO$D^TlaXA5u!*&9D3i{{WIU zqd7uc-pXHmfB7Qrl{TY!Gf1()1UvqJ;$|M1?Oh)8j%zB%GC{r@K#C3s6B^N7;C$c@ zq0MyA#8gnXvXlP+z<>E897TD~SN3oJ044tbUV4;;8w?XMvY%ir-anP=PI#yh+Wx8ysW!=zvRrsysMrKgW6P&3*o<5cIRHo$a zwlQzHr5vS>M@;^;Vjv_fo}<#J5b>xaatGbUF;9-*hQU4YT}o(|6zpu-q8U87PF46L z9ghaP?}OL>0ARn@v=@_bdtWv#KJi`&{{X&Oe=74EYlasJ-Erw&hw$%DnS5_1qBi}X z`!Z0?pWvb| zf$#6_Q{6nVsoLm@M_#A$tovwhCwT56xcNCOG1PyJ6K`aWh_0-LSnRLtMaY?y2005R z(n#aAMGQ8v?q-W=Ba%9wVreeY*1^lh5oIm9L5%a)>E5eJBv)~}!F0*Dovfhb9<|R? zSGK0nT6q#k_T_|Z12086ZIj5?}yCAdF@MI;hMhThmc2{_F{1cZ|BmB#?K zYo0fHG->9T#K1S$Dv^eh zYiH)k{JE~RNvPc!I-1#-VRP8$w@lN9cI2rEoEBm##pLkr!z!Z=LW~T3YPcZw$nBP) zXzT^Yw22~FA-aY4akY-apGvIG$_Nb@Va5p+G+t7logZ#H9;e?mcGpdcLG@WH#=A%0~*X!w<@mTR~`cx=W6# zBS3#Mia8`MXqdumADPt9CJu0o&(gJa*<3g>%<99wz;XCunMoua@Z~cft=%|GtVBsfEhWb4D@10A3Zz#w?}ebFr|arcOw!P|F%4wZaRQVZ$@>wL~yrPSwct=8?A(fE$l$ z6Y32TH_P*E13dNVNxgQK8$s!U5A+m>j$CeJUf`Z8%yIe8v0YVw$=nKq^!1|6>J60I zXz{~Ft?$y6S+Fw5PqkQ*(a*~9gYS{~RcA-o6=T5d#sw#JxYNGFivT$X@f6lzcnm@I z7^O}4U{y{ANF9G#Rb+9MIQ%%JxC|S)!B+nOd2v#J3CG=G=xMvL^5b{7G^9A>3}@b) zY?wVq>^S+!81I^TNN_UTd(_N5yEzzRNwniB#K zeV|heV<+Zc%9YSJW5=UWf&u%-*o@I&7s(jL{wand{qs_1ugahf=9*dm0E8#KEdg9; zjEo*%WdM2sPB{ntV4wqM2e-8}qGOTG4T1Nh;-X^_$yWU-TxfY{ z;}|3#(tu+vk+dIinip=Sy-Ea!zkjU3S*D=v9?&RBj_-Gq<4KRnbb(wuNJ^rwL2^#kZB+(f%DFi12m z)c)unT93#(__wked<)PhBKai zfYkF#uz}|;*=z zgZEe(ciJOUmN?_TdZxurcLxbp7G@+J4pd)dPcG4T9AA1=80D77B$TB(;?824D zW@*D?B={=et0~~VFn+bOVW+C762y;=S)87}-qp-Ssfd19r)cxnnt9bFGVU6LfS%bH zt5b?0#!T)O7!Vz-$Om9}sWOP1l2muia4o7_mT)g3+`w(ipO&i&i`AFSeL`1p{np_7 zReMF)Ud{JCA!Uey-`6>)-%x@g0b!HS6N>X;sOpyUNb%fE!MdvzBiE;Do%~AoNUM2i zAMW}L5_9T3Dt)wi57@K58kM;$R|g$=rT*2n-UBe_r#0r2c$QGiw)%8oJy@Tc-vXnT zUNFNd+Sng9KtFkK+p&*9{VO+K#rp%**5WCKK*;x~CyF_x&T)arBei*5hl(|uI7Ce& z%Db|mi1~eo8LR2y>*R!=DoH0Ga99NE&U@n&)p$)@pJgQUJpw&GE!mZWr`}&wDE~jlC z*TEk!=m(`wwIW>L1MDjgPP}s3earLbIoi)(A$(Ai_qq0)P z$zUCpZJ?RHw|fLbofjD_U7jlb4!nYny-i;f4mNYNpXtwW^q%ScXy#7=Aq~V%}7{ zyYh)(yo0dd)tPkbITy;9Zvf;Bo=?3}ZO7dcvU;33zX^h72h-)Nu)16;Y?TWEk(}~< zJ*wub;ow+3j4^E>?pEUm+NRU|IVIt{A-0IX(_NFhV#kF9CVF2uf5 z31o$V-0r8g;f&O&A`+^boVNg|&+Arh^isEfBt%;X$IyFKhDczG%Zf6xfsw{JH4dzk zvqf^QhHclMZ4i-~FdIHt>P|gR(d*gi_e+zTG26O6*qjJc^DTM&)H#uB|`~(cwFQ`ijVg^;SGfi81#`>smT} z&&p4>Xa45&OH1Fw2 z$4pe%p$P6M#V_YZMrdHhkw)B{W9d%oNlL>SM+Y>R?NS`lV3G2vC+SYlVG-@g>CHyP zK*l>%gpj11C z4tdBmVB^%+Z8}nqQ<|kj-K<7Q#&C1#OVXT29dSvw)0*7CU^zG(flklA=}iFTj!#;5 zG+ltB?&l*ky+=dRnct-@aA*O?9Qxv`>N<29wwFDH#_=xfZwyHbksMwHWVPsnA;TU=s0ryWih9j%XSR7qz75(UG%XCXu2aoAHv zg>!XuE?RVnS$%gC{{ZW(=%UoONPfvOB9a3H<&J-qPc!DcqHdCE$&=nkG`ki!3P|9c zthpcx&$x_RT|>UpW4hyVjO2Rp#dNwtOp01@B9gm`vFY`u-3uA63&(a~m@gp+!S}^C zPV1OC?Cf(*`{rQG7-J2U=9t#uMiIiVuFh+qeKvPKej=19;hl#ymw#b0#vK_LobFi8 zK&X^lRqQo1^eZ$e0tb?2Bz@IRa((@&k~A{yV$29UfOGi@MYVx92^rfxIL0yBm&k!; zE9W$W8C{9D{{Yugq~7DQ5<6sf$d8hK_A`%qm90!M?~>tgbBxJ@`BVZGR5Aie`VapA zUo^lYBj$v0-Gx%HG}c-+i#Nw!_MFd zIsX6(w%>7Bmf9$#a?(#MOWdq`g-hkwGJzfR&e`t{1yoNf%fqy}>^oC}p^rP*9?AtZ zW{K)YyyX7?E|h{q0|qGMZ1pFP$QopEh~!twJ~{>&AC)}-E&IZl&Oum#B8xu4(1J;% zV}lAP&)$!Weg>i}?r?@dj!76e`teqzEcxEjIbH)Xz{MVB&<@~A^y4OrH@IC4jbwBI zRP)gL)WQjpL>v;>80294@l)Bwb$2+CA$hhCNiBjZ?d7ERGiF7f3VvNovQS?I+fP)cw-0yhsiv)I`{Re!Os2iw*KU2tzM0-ZsU+D27HoysMzD`d(|6= zt`H*3iW?o2E`GHWZpB3_jeCf81;$UWf1s#7(gSd(6y*pG9S9)w3QZg|ncj=5aaDRRi$la|gn8NsHByooR;WMlo)jE|)wN%NA;l6#X=aoHCZ z>RX53J8|5F89${xq=k@liayWkJED^I~9B6Zlg|-S?2N=rhF)jVluQr;Gufy?Caz$xun$eM0k4NER}8 zWGO$w+|unyK?<(Jr#%fzY-u8Om`F3w<2=w$U5tZ0iOn%>lyb4-@u&F%`=AT%cEqEKdW%Ltbt_aM9$88384oowNS6b0t7EoT z6z#GD(MCFPN<7kdQTQ54QtCS{f-EcdieR6uD20H)Dn5dr`@nKBkF7X49+jd*G8c|x z(Z}LAp<B+$MCZ+TBFWp3CXMAqC0DDsnoP_7?86RBK zwYc*V!FOl6wDN!L(K#E59E7q;9(U0D+KkrnV7?4t2 zk3)k;vt1B#-*Sm7{3=&GV68AntMa)dblR(0Bn;r6o9T*1M;Y6*>xynYg>y8BkKKl5 zAMVtVtT-S;I+NH6y24|~VgCSp)F zoZGW5GnK|apB2WNmM16(KD%nW$Gx|*u{}v5t~DH0kUD9dEdDf`cqY`v6RzYNfi3kN zt1|1wx`dIudUR=R)#Pjr_|IPTo*`402;)6T1E0#8*5R|q1D;l*RVp#4MGk)y-nuG; ziJYC!BdN)6&mV

    U1vNd%m9D@zXbf8JOy_s&IHgqaRdOt`)zC#*;hVUlPX^zV?OH1s4B zQzS5Xd(1HpP(aNpt+`enN@tEhrs+$#y`*~(jb`VmWFEj(ch@Ip*e*i0a0UV9t?dea zNQQlql!8diB;aT6QS6)Q9?^6~D|@XBe4`U>tsghy{&UX`!&VgbE1h))!jAfRl5#14) zBanbNC51-IAjaebdTyapis%lkyNvQXEaPbZ0H%D>h~gsvmL9zYAWZRv3Ti|f6JUii z*|waTe39%=JiCllXwS+Q)0&Yzb=19L<_P zWFjEU0B+%(MOBqnGKyu1Gtrf@O;q!Qs==fsSma>zp%D<}8L|HMXtl+2Mni7~BNrRx zAA9Et2jNxP;R1lnna>A)e>#AwzT8Fz2P7Z8?r8Fqe+@BQv$^tix{k*^1#-SNjjl8c znAQ<9H1Go-7=Pa;M?7M>9iSh&2Q`_iTAPb<$t;1RVs-=axcB$;HRERq$y3(JK5w|; z#;#=*=YP26?=)RT`p;LI-qGxu;(KR~)U;uoL{zchvVz#a&PU2KQznNj*4lcTJF=^) z{jPMrXiEX*wp$2x<8d4gbCX>*pCdh@2?jQ{(exFh0PU0QUS zN?2!7>zi*cFH@0wEA;V1lG#IX4YkMoeMuumVr)gVUNN2O;Du5!0Ra1F4Rj4sT_)Da zbkDQPW2M|$JicOL<=p~+xNP8&xR%E__peDO9Ta{hoI4OJx)~(lYgAo6%jtFe-JOk= z0j;I@f5ABmO)6bKQ!_=U2DTb>5P5Nw8Fh9fV3E)^bNO>ymy%Bvjl`C)`PT~@7^2(; z_QwM!fs5_8X`r zx|!5TapbTPNiiXr!6X28ayjDyv#hi`l#5ijn$_o;{#ceM?^$GIRb8Rv!N+zxSGEUI zYq-jfy1$Jy%HtTx{3}@GRT6)_-QVH#f6e5IS$wtk_wxS$f^!-sn|-F<$qN|`pb}-B zl!+L!lwb!S<9_Z2NgszxwopD$LiZS_iCvFVjQ6J;p12<7y$l9k@Uonoxty)i+h5K1 zI&j!`MYi4VkU?g!L}FQHU|hH|IdU>` zMoG>y+qFMy=ZEH`IZ{bZ2d-(pU?)6adQqUR1d-}Kl&iJ43`cHFF_(J=>xy5S2R%EA z0C3I@89s#3mg#_gnWl!$04fJcy$!rRN0}w!D|QMuQ?QC{ARSbb=tVQlbATewJvgbw z#j%iv7X%LBM?bAR-dd?4Z5fCAPyI1mxU6LyG*qif*Y*7_XI8W*tItB9XJ!G{0P~%~ zoU(zHVE+J>Tsovi6A`mer~9vi`Qod6qBUY;iPRp(P2bYE{{Xh|KlAhOf8=5H{6F)4 z5B!F!sTujkJw-cu$&53T=ogdvQ-0DieoxkwZrvLzk@PgycYyx@pPz)k$UeV^{%_Cx zjcZ*A<{RgCjCxa_Mzyt#5@M$ddfHQFvFK&?)j#DtNoAGkL|p_`Tqb3e~`Yv zL;1f4{zKHW0(cFdT6qq^cQ89fGHX6fYRN68xqGW+f(9uptty3$fx!%V1D?j9gT&fJ z)G|wNsn|^%L3 z>CIFZ@tM4!$Yd$MXl{1&&(f{$$3vf`bzyO|F<167y|>Y={ZVwQ)2n_*dj`|liKA&f zSdYeJ2*u#QoVlc^>rrsJ#5$X{$2i?E@a5Qb{fcA&ETz6vQExFmbW- z>$aQ#;QZO^-->{q<*wfs;~wlI$sC z9zYp59X}dHf>Vq}#2;dFOb9`j2P`v8W@0nWM_h4MJh?_klyDBxNX88xWtE#gQ~pMf z%IWh1yB{}D7@Bg#s1D8tr%_WREraqo@0?Nv033t))3BQ%ED+~!C$=fcw`OoMX~ZLR z0e+^Cs;)50pHR6ptUHbQTN^+)>`4_OZB-_NS8~yYJy2T?mX0oaXhYn9+U+jr)kw=c4r;_L2r4|d2t<2-)byLnd?I2T<>Ir#S9R3_s za$3tLQ?z;@ru~)ElvZQgalon74?^%@04M`F{s| zyX7N+nqt(LoufEk%A(6Ye&*5Z){;hYKI>!HiiZ+3nRQ~lfgLCU$XqbV+W`G<}7T69BJt>P5D*|QR?XwjZ+9OswQJb8cEh^5q{y(ND z(0Y_-VPj@xQJ&c?P7cJ3BL(%OBP5c{0reDEL`xw1tMdB(?BnwlAdrl< z3n=J8G_or)ovwa^il|anEH=lS<1LbZN<%}L3${^QGj;F(0M@6jVooo}&PcP)9rl#S$P)X}hK`19W^1xA)~#lvPmI%LzD z)V2XY0O|7+ih7bc*ds3BPI<;MYC!7Gl{m-n@tUmmQV7be!>IoNW~!~DMJ81wkoPS3 z6gO^zNi$aoAo&SjUeuwYL)4ZB9dc_ii>vNnvE%-l^q|CynORkv*|$@;a+++gNXO*` z$3IF^R1OEt@6xa%hsu$rlJm<0jAIA+)reiM=Gkv?<`f&U{{SkFtuAii%4%7mTBVtJEdRBjvak;nLM8Ff3h;BKdWQDL2W)coDAZ5iabR4DW5@JBx^7kdFS^>A1 z$s@i$#3GG$RqTepq)p_UMlKlM0 z3+`c@@zT84!#DEJHjMWAt;O}+wz4(!5?mJu0*$1v@EzCy<0KQ-zIPdn#j5ocDcUi& zMEYNQc|V!qV)0esT5*J|mAWq1JuvDcoIs=T{{ZVz{h~nPAP=s8`qkySPNS$vpz60$ z>XDnT?71YC0eJ5;GpIRjgbynO;{%Qd*01X_9VboGXOmKzVYQ~3-b?0+Ym!3q83bgG z(TpkGSW6X;Q}%w>Tia#Y{fr(n6?=333;d5mI*#Fk2bi{a>Uxnngz;*TUBH@slFCBM5ec8&=MD)nWRP)=*r{!$yG#3f#?&s{$*s?6tBHLck z?=FR{uB~A`!OkLzBi+q6g3VmzJoTXlKsaf6k(QC5O-{sWeoaI(holRM^ZeSCb4DpGTJi{4r zxF&JC9dVxY)V;NmDCJ9-UO5|LGPog|&=J(v8DVF7{vx=8SF?>Iywm0TTCnKrAIHp13X{FQ>C(}%JuYDzmoXiO_ zF6^zCE4Xl~2n1(nt8sX4+@wWh zn-SkV@bCM^-H>p-K6A%joY!SMz0Q)9X*SyP?Y{l~R*Ee#_J>pC*?Vb>;Ya$HcNKkRqa!y7M*SoXP?u-hHD^65% zB%BlVzyhmV_&#{G5q))j*Hgxg97bY*M65wL2%u!(a&yz`l}jze#Z69=*KfJ)_&wId z#|u?n@GxMw)W5W~`&jNw@wih=I7nd$sr3vOf zK-(GH@`IC-c;jg5PB(4*D>bI6d46?kk22&1WS7g>F`c-?VDXcVdGDHuye(-HK*D## zdv|Rl`Ndz%499Ls-KLO}fLD~V&7mC=J9_*?;BU4o|R;pxI#q`xEFqjgF# zd!)Z2MJmIIV@&i1G}&4+fReUz_p!x7amFw|8e^n{F){(i@Yh>K+`6(vigJq0>ywI4 zx8ozrj|a9ZDUtVrE*xX12O$1+F>-s8j{9g#EM1dP^M3lr`E;u4*dVAJ^*R3l>(pv@ zu~v~3{{Xf~r5lDxc=6~u(QvUacMqJL{b~MWhxnLeW0O?gS(Kb@9C6-}XPLOz3Gbih zM=)8IzF=bjtUBcVO*{YI2fYCxZDt@ zCnA(K#tf&C_|v`flT9tt1keQ1T~8?`t|dLb@f8!zE<*;!-k&HV^`rrEPUD}gG^&%8 zVrXa$2(@YBgJeq*Ha_@K`O-e8aOttcO`K%ot!J3e93RGji~$({`U(QY#=p4To#?#t z^8S?xnn_Ms#yfxpDjk4emmiBzK3x9rA52gMmz=Vy$>o(^gJ=~R%!+WLEc>o%B7}8w z>;*IhUjG1<4T43Ha8-k&0nTyGKPpF%$k~;_$6>`n7bAjc!A5`j)FC%wMr38$z+iSY z&G^3JOHU76OAW)@GR+9{V>l`ds182@YkzJz2Oo`Q>MXDui3UyroaAS2PC8Vn zCCu7hnF4D9Naoc{UUil0OhiUEZ!E}0N%uVT=QY}>Y-P5A=mlizULm*A?xeLgcb5`H z0Jw2)7+|sGhH^;hwDH%|HS_+~P4Y$;d++6KbouAplICF;*n`Ut*EuI0 zfG7FWg-N8ZPWmsyPTp%y_IlhDpYoYDB-&~-TV3jxO>ZTIy~E2i~pme!YOjS2eg;LMAXeW{m4{C}2kl z+j-+TZ(824)Z)~jf_r%7Fi#51k}`lWe}wa$-qn$>YnN6Rmk`4xlq+pz_ONc0pE%`# zRUwAlZRGR!#~!w)I+a>cvu|B{X>Pl{{{Y|=o0OiKk@#jwZSQ8VnmEkCTg+u*S}_?_ zMLGTw8!PGoJxQ+IM#aK`gY>R0U4HiL$l79Cs>7#8eB$8?7xOn2L53T6M#<->;*q>j zD!g|F)cuZBSBPvOoHSvS@6O&>?Z<2qPAk*E<7#1NIeR;~TT9y3`90In>BHBRCf_aZ z=62IT<@In|9S3@ecHoy7^#qE}v1uOC7oE~c8ACHbeq5hVYOq50ZcnX!J_8x`x?b0o z+O@s*`6JfD*7nfmwTmK1+kguDnvw~niQL-<-HZ~P)eWIe0a2cr6>2-%m?J3+p$Aj3 zMo-qeE^lEcS;_OJN8sSIw@Of31BR%jxVe0vIzzjuFN&&*Iuo*H8SC>CQ+oq6OEx(l zjUawb5A~`AWp9|foxI?hnoUakZevIiPwyDPH2H&+v>lEB>+UJTcW_VRS@KVJasIwz zlZ@;Eb5N>Cguj@>>c)jP*c?ql%yW#7sH9mKoHCDoYLZJfe|Y)NL5iQwpE(h$4@1ZD zr_3uB7_SEzK9rbFK3~G2GE1E7U#9EEHWl%jvX{Ht?-Od&>{{VdoRVqi#kbbor z%HyN{l)*D8!!hU3W`Pz6jQ2lW(|ow{I{tLQD)jS6{{Vo}`HDKp`QTH~H5?H~MIM~e z>_R#UXPgPbvg6k@hT#{kN%j;D%+}LxtgQiOjQO1d4r@f~7MvfOBmJJ0%NwOVx^*=4 zxK32_)|lGOlPJhwf85S12hCD(fto`>!K7yBiMmKcype$dw)}@v_MQWS9TxS)RJh#^h1ow}R z?xEZKs>CqKa{FUa$G<#Ol2}g`GalpZ%}YfmV>`(N0M76J^O7l6ERUCi>aEhW4xe@c zkr4s9A5X1RzLp(3Xt}$EWFsOjtVgi#QtY*3S9=mcERYkBt?9V|H7nc}1LP`wR0_lz z+%9kofamy=0)~5uxl-g4!7arKNv#LU`kKYZ1tT7(cR8tJxn<=@Q|q>{mK&r$H0}qW z;-}vrz-E)%ErCr)T&APW(hM|=*%&zknuxLt9qcpcX>D}-yR{NTpDF$_)a#pBtq?WD zWmnYq{HgPGVzA$|s2_a(CV_SiF#J>vI`t6be|oEpQr(%5JOr;$8kaimK1N^rRA7A5 zFXceHjlS%J=h~x<;*v1oR0GhFPBHo}7efo`6rno?V^yn7E9B!9~p*n03ktu^J}lF_n`+woBXer?e+ z4%igqCpi!>1HS;%y9)zcswQ_Y9;^j6JI&9Aeh;FaKN?9PSui}NQ{3PaPm0K?+?mPi zxRXmz(0fg623k>{Oi~%+Q^C(2Nf@F_U>9qI0QWs=yn1XK^6eY3JZJv^*F(QRRvx#} ztMej}?7b;k`r1vvG6Ua=ic1)mc4dcebSNskmMfJoY>W}2>Cl>@wo1hLvP$F*gXJI2o{MUYg0ko7yC01-*qJ|{6qy5(y+VxA1&?83 z57g9V8%6~F@lSkpr^h5HKvO$o{fec2q=A|>Py}ZmTnY`uXgMkL2PU4(l70A&;&=r~ zH1P~uNb^}i>ZD?gLqZ?4M(Q?}BhV?QD=;5?1wP#>Pa@lCJGX5frkVCDb{WP`xy>4d z(5o=OJDG-YkhI|-+q@$lJqHxWu`akviBR?{f&D03NtFtlr;{C-L8DPS5L{}r+njxk zo7}LbCckRHdB3|SvB9g$ZgydxKEPt3Yb$1NnR0t(lji6(%h)5;EhacwVEQwFe_EYo zm53|kZS_-{fN8eJgBZuS6=Upi2=>ORqo)IKVr9hc}oEI3%Zf??lJa zZ24*J^~E7X10)~&=8i;!=FVQ~9p5o|8yy!v(u(OkxQ`+xC)BPetlcEpT=yuhv#7_a zqB`3?p6bLuB0xqk2i_j;g#WSqZtZM z;nK79Opv$V4FBbL@Xww>kL5gf4Tf=T12 z>O1)LYSnRWbe65V>C;ccr{H+A#mT8RO>2Ewac907g2MK(2uW?ytCN5S7~>rA-`1wG zGsyx;eX=Qv{D*z)^A2ZD^tvRUnRp70zgB;Edu~f_-@Yl}Advl6^Pr0`*#UVp))7Vkh_j#&7`~p1ph3 z;@XQjNL>s)lK`K{*RPh-qll=v>BmJSw{A^;7J3+GPPCQam9NwMCEIJA(5gmvE^-(U ze^FMUvb&V#5I`p+?#JU%*ys_>8%cB`S0{rQ3Po$fXKiAiAua08+p%9$2q?uQtdZ!e zMOg|o=8ZQ`a_oIK5Gyiuu`=NyB!QEFPCe^Napn-eDdUa2k@@tjtGJ|zj&8#qy>M|u z8W{}GM*e4$jlB-u4Ki8QbBAegKZk!60l9KUUxCIp@l29oDGaIs_U}(XB?}hv4&mv~ zG!HB(!w`FX)e6jj@&@D2N--N8lE>EufF%+xIDSV4l(Ovvxcut26m&Q}v5I&NxMbvd z0YYHWA#C&+{Aj^HkF6_|KXFQrb4)w9!6)lXM4K>qBk>fSut+~a(tr+dU32OMA#YEc zK9m6D1D^Ek1Sg2^rju;@yFJl268fg3T_7Pn34G6fD;mo z{N#FL6osVdGoNu!+<@Sg_U3@u9W&b?(is^tV>$gP3&;oF6)?trU`A<-z;r{8Y5<9R z&+k%`FJdX%!TuBUG@HBdqcnj4-_(If(l9v$0q;s3ImirtwEgjskf;x@Gyxjsc@{Nh zF2@6C>sk$<%8Q>j7~toVpJ7qKe>JgRDPU3Egn42s=hS6G_LK0rgHQmBpWs3N_*={t|lUzt)xej{S^t0UyI4^!aH~ z8BPl@ ziy2?Mb4&`!oS7d!i&HDJkM*C9f2AQV2l~wYC=nP8!yZF{>q-&7y2J9Pg5Ar0BvR}c zf4&Cln7PG)cJ{rPaqH8}w?fk1=D{sY#?`0E z-ytAvBWVGK3CQQYbx|o;_&byMPqk<278C0dpc0tu_U{HG%enr5etEAC3Zv~`KX2=Q zLxz%0PUb^+X42~NE4vS}6^hzBW=q=>GVM(5E0U#8Bp#sg#}%(0nDAU`w-H<~nS9F2 zx-H8Y5rpJt<{vJ5dVA9z@E0g}ch=Xhe6r51aU{eh(Id)KO;rDoFgQmPtoXep-5e z@;}nhKeOro05kkQ$gQSn=TEc{G=Yxia=~yi%vj)L;AOZTm2VwJ?14`zSl}xGjxZ`0 zY&Hla``4v~!ov$sk`29E*U!?&O&Thcd1AzP`xnQ4wF|IO%P}ACVx;QX3YkA%l_!+m zS#uKe-=%JCav?J~d0Q*>2}GC1ya9SX_8D}#(uqNTr4~~=kA}(Q^c|79DX9Ja7Iimk=<7`v64o1H(u*P zkXWT?%!r-*?+q4+_s;6=MNu|8BwTLK=*iQKaVgi3WQ@<*^4fZhzToZxx zz~-9q`HDvT4?|j#*$HG3M`3dl{{XXqKRo`lzu6AVK=X6_Il%|<98+3>nG8EdH{klx zl~M@YI(m~=rqiX3ND#LTjORJ1KF>6a5I}cyz!dz1R|^{O9D;o*Sp$p`K=jTkaVUtG z#ApcM;WJ2W+?~Q9gU>2x0w{jf2IaT7F{^dhd8-2Q`4xj-$@6!>$f03zllFM?j!x5& zP234=07{-fJrAWD0L!bZi;OGYPDU|=J4fkR?We@-WY|ld3%4g9TE4T#zwY4rfl@Sp z=j1$kQgKgl-o|`Z5vzQl5uuzO#rvm5QN~p8DVGgtG%RG06hoZn zjEdz#?fbE~9+|~A4y*E8{gU2LQp=eYe zl|KPdv}6JZ+y3hFTG^s5hb6=$256Z*vsM;V+wyngtyDxgB~o60y-Org?H|0@Js13H zt}7ycF#Xb`f53nG^l!k%=@aOpvcfj2{a z9ORNPeFXw5o3`poD*Y*@OD;~JZyHWsrnviYCQ_;c2p52)%Ffp z{{Skn72Ze6H+u2Xk0gdTRv_`mH51!7U84h!;>8wY(4A#dmUU0BT9H~JK@Ybhpix=E z*@g$&WXGZ=YD9&RNR1tvsWO@_!pOE`M}6k$$F~BMK?xi-efRNImN^;0F|J7DuR~Id zh6t+(KVFmwnA_kJ7)<(}Y6&eTkdW6KSJ8N>8dppy+P=L{>rYiKHyxx?7N&U7VkhQp z-0}$~r-x304D3}Tdeyus=@;T@rNU$PM;_eL<%-tB=42++kbdarv8Ic4PJnxya%#Y0 z{{X`xk5ENQ0mt4n?Qva{%)Us+1C9m_MECgRVRk?4#!YAyAo5t})|^1+oPB7s3z@>^ zXE<0Jcl%sazD%<&7!>si)oh?S`MJlfH;&*p<4(bHk+B))lh@{RPmU*02J8<-$v>@5 z6KVNlRr;E6AfLRPd(yBr%KlrNj()W95yJ)`=cYlaz+7i={{RYU+IioPp~X82m##3N zROa3ThT4uv>(tT|jW&!BJrq>fdKJaY%fxY#r@ri*)T=Cvr0rnDagr&<06@Z)`o0Ao zQmFY+SM{f67eiv2a1Qdh_9U7f@S~BiKYnBS76ly&P#p1Jb zYTU+Xh+c$7Ej;BZ2$T&%P<8mvGxZ%iq05yaEp=&<+Q+MkJIt zQ5)coyi{U~lVaIu%H+OBT<)eB;9ic5PZ;0Us}eyQqg7MGWimdr(IYwA9v2;e!K0Z4 zi#~B)P$(aXrEB7+18zO@RN7g9`|at2P0mnm+t>Jj;+HV&Ui)-iPb71N8K7Un-4(h2 z0AQM{_Lx_Kk#6b1sNP1&a0(CM0CPiZIZYEZZ5d)4(-^`0sTStnX#L?_^xaf9NYVy* z1~GscGfpw44p@`yrk^l!qWQRsX(DLC^v)=(_FcdOynEvmQs!aGiPAKdG6o3FK0%Hu zIXt@L~J8R=eAf^lw7t6!7+&n{Hq zJGkwC@+%Ju+FV6=XTG?(xSPrkJ2D9n#Kof{YJreWazW30jw;+f5r#RI;#=VQ!`fsaAOZ<|Hyz3bD#;UiheNxNBoH(#Rrj_fWD zokrB#*?u?w03#ODL|YeQ4a}ilX=ZdJVVXmepO-iXr|X)M^GvqCf=I3wCJco)6$F4s zY>Lp9-ZB3GEgLmfNQQsbeqy@bPls~m*8Znw_Ff&k>-U&Ct(Kjq>Dp8?nZD0yaT$qX z+BdSP+q*c($j=z$3XbmgPQR5}$*c0nkJV&O>f2AV8b1V|9 z$}`jqf_n0^$R9bt zQJuVS6b_xMW;=khY!SBLe)_%-+4>&OronKyG!$d)r5y6mzsb3X+4#iO$Z|HXUNVmj8(L=jvtkBN&X@^HB8>!?#2`- z@3$0xXsJNbNT75)W19MZbo4bOxPZF^3{k(lsxp5b)t_}`BA^RA;A5Q0yFZz#mpZhq zCfLe4p1D)aXBCy)xol+fw~B{nv1v41lGzloGDu|4LNQEu9WY*1RXz7)nyyrZ11FDK zX70o@4%ir_WCZ(H9LbT`W{`jm3Cf;$s2!YE6L5LX5UBL)o&BpC5$%)+U&fyCe!Tdiqb5g6SUyt_CLP9CIvh7*>)u zBnMHRoE+x|j+L4`BQx2@WpSyjkXuSxTkj5_k&fQ=bu#-ea-6T}F8-ajDp+ZBi~FDX7Ik~cbp0Ok@)*`hAcdq= zV}Nio&1UGDt=_k$-OX)vX!~W^Z*%r`3fuzQqA$1*NgsH0{PcBe1=Tdkto+jveWW;D z*ebz>M{$rcJBp=kqg=w8tj78@zSI;CHW&&dOcbiHQpA(aPER-;F@Rs@vOOb}To5fPy*6=~|jb zsV1t=E+dX4MN*l|7ycvu=sXWx6Vn-TX+jMW-%7QZ!xV9(EZ}^_0KviRPp@p}tw&*@ z#iwd5aU6&v3hNw7n|6mPNGCjjumQlp;;MK$l8miNN%Z$$`EJJOO{eZZxtmxRL|Jp@T-7((bt?) zJjVc*IPJixt!9W!8gR~o_(8^fsqdgNNNneunBsRG$mvfyea~Mhxc3}Z{iWcRH5iU1 z{uuLK_2F_Syb4pq(i96_EG&>Nn1S<9Kih-tqayR{ZRk3kvAS|*;8DaBq zaB0(d4*=vhA2)MSn`oktl^8a{81~C_rv0w^A(gn0djrK=7PgzfGqR4SC`BQ+8_$<= ztOo#Nui;ImJED);uGld9Rl@E${{UEM24bhokV*;3Ey1lPb--453l11o-F~G>jQIpLm01x#!8R$5v)+Gb}J|iT1WYAMM{qY{bDcDVnR?F@Y?Dowe zWOoIK{{X&*YDq2a*aFWl9akNHTCCRa?)g_EKg4Kv4GE(qKt5vddJ~V%r87zfLk1^~ zwGJ@25hgyA*51vzV^#b~qT#t=XPD=p&rwKal;Gs#cjJnPD=7yjG~eFjoaB#DMZ(18 zlJHF-Ok zA0U1LiM0orN|;t22GX3dJ?S}E6h@fa8;bnBGDRUk&9`C6><2Ye-ONw=L@eNpa>RaE zrz>0Giiwn-4?|JSaq`%)uqy7s3I=)frhTF#f*UmUz>EUYZ3E>jg!AcAZH;3NRap8J z=j&H@&{_q(+%U_zt-R0=7;ooIzSS1(;Nm6Q4aRZ@f zqLEO2;!fZwZtHRFt&CflFPT_Ge(@*e;OE|}3%Q!(be6G+IuqoUKc0G5K(j#k3{{l+ zCL8IR4a7hVvF#m;F6`GWTqQcKIrJ3c3EP?_8+oRX0rH5!=oF4WKU`8oXINSTY!VCw zM2&)#9-JTLiq~1>W%*fEM?g_jQ$E-7yk!(2;QYK-6>Op|r#&{7men`k`^&k-JQ{Q6 zg_q;{qnDdbx{$~c1&u-Z0AY^5;ahg8_G@&BS;C_2$s;6Hu*|F-7!@7A`qVZ15w+EG zp1W{ODmhf4QZsW}JN!2P0Na_J91Eus~nGD$flmWP|nVIwF~J0}8|Ws*PvCA#)Bo@)Vs zG4F~lA?qZJ3#?4Txy2zn!D6S>@F)|^f910D_{f29XbkQBnmJ}?#FNqNG;ed z;TwGoR@%U03XDEJ+np}a%Wj}>QyeQ%^k8@GH z(r{8VIQ63T9f`=t%nIY_NF+@E012oPX<5E#fF77NCgo$35y>gzm#v(yvF^r!i#SP-PIdW1L5 zenXFPXc43}dD2k9w=OY^aZ$^yYA)DUAx}~;Dv@A5Zgcd_C|sVP4DtZxi?FgIxQ(u4 z-#Fgga_2wJoEk($3oC>i;64ZBDdZqLwmzepT&Oq<4{il34(01TS?#mF);D4RG6^|2 z_04SA-`iZouKrp|I;$`w8s*3gK-x}e`!F~^ol<1j>Y?s3Ucf%%%l%ai`F zXWF5a0XcaIKHSj36z`>7Q&5K9BG&LGS)F?49M#CLn$}+}1f-zGcLIO<^2dv7QFDsIsEZfNfva6b`7{0>&LZPx4-Ei`f|?VgozNwi>w8T@I+ zS0%>8!dC39PxDSb>HMlK+lEw*exjpuIQzSC?rF9bES6L2`BQV~!yihno^v0Z52!T% z04>k)F#M>v5`4rTn0{2xpFFiFSr74kl%_d7Mh~?y2hE?qNJ8T$CW5S|rcbUY0G^{b}k>+!+%;N(RLz1A?PI_@=2V)$^Z2npP}EFh3e$5+0>U`cMKn!C;%%_W;x) zW_!2o%D|2`p~)RiPAXLq zvX9-V8R|fy;bF-;h20^9ar`GVlH4$CuFg3*&+^465RsgYdu$w2fQ`rAZ^1~-F=#?= zOA-&0wDXLd)3?G;NX<*;#tzV=_RA@xZ!Cr~I+6a;^q~xbTyLMpi|2Qo>Xz$GRyGhMLC6k*RhaZxmv;E$O$_s4pYFdHUFjQrTUDl%{!^aQMzQQKc!78{@c2Xc0I#RXFHXx=?_&6ibEl??4Wje8u_O zXa_w7Fi5DQ<|KV8e<{iNe(3)2rPx(-yyM){5evx_iWIpW@*5n{*P@okrxg8wzbHMJ z9MLRn#0KAi*;^mVivb87{FzaXc`^^ym3+`TkbQUL55lA|lZ63~zU|nic{n5(19!=O zl&mphxcf2v?50LM;3+jC+($a(BX#~DXa$=YjX*w+gGd<_!23I7^=;I|>?Dli1|p08 z@HsUMaNH}gl1SNoHel4`?Ieh@I`PdL%MN2W2hxiG(5}PoWOw9$N^3DefZ<8V0fuNQ zi2Jf}+zPKR&g>#!4}2)k>q_YjD~||I`q8^Rb}0g$+rov7r2rg#;h)x{N0LE>CGo)r z7|-QQj7jEx?Mf)?ft=E~^(5IVaMCLQ#?l29BYdOohH>9@6;>6^5afRsvErVt2k}(} zytn(IvfiBLp4SN%1ssk!12w_Sms7WuliWuY#9&N{`&c^e=L|Und)9We74*gg4mOg+ur<;wTDa%Cm>FQ9>;x@L8fr4DO zKS5OWsIFwcSt5yYz4}Z}VG?tNc-!4)^D;xpS1msq>V{iFwH|75T)~ww%)<`B;LxH>o5@R{Q>5kPa z_?JwIQjL2Kvk8HS9&_gQuf3vN{kBbM;n7LsN|1g z4S6({OAe_UwC($uLpRIl+3WaMrpC%q7F&4bLH*Xus2Rn3?KY1> z=^Uhyfy9>tu>SUVsE*YDtbvE12D%BYV~m*{*_%F`{{V$nn@>lK9mu(+}7A@Uk=N-~ zriMSXiRNG;kA(-IIqUD*pA#dAJhB*PIrguOtlZ+F*K@p+D&zY0P*IUj{6-cQ|9JABlHI0NqfR9pjUlhAWX zwL!)JC)+dukO5*p3PPi{Tc2D|1F#9_6rU*QJJH8X0r=BNz{z2cr57E5WBwiJWnP3a{Al@9@xT80G@hdzNnS816`wgR z^8GqcA3SYy^juQpkNIXl6GngyJcQ$y;{$hU1IwM^w&Z^eFf7tO?aHIr=QQsjv-3-u zTDCn0t2r2Tz&*u3j0^{*i$}Vi5i&6`lfefSE84|v5nr_-m>xrP{OPA{#csqnDn9A@ z0Yc@v40h(AGe}O=cypW{O+8*>NG^cquqKXV!pxgtA9(Tfq&q>#2S1fpX=GQxWN%`m zREsHW9A=*~7b_mJbB?@r=A`+4ze-?{K*7)DL2Toa2e8FZhmv;XQkY#pE9=Sbw9%#M7!@vPK zB=O#uV<*+Ux>J%jbBNHf?}3`Sx@MxgU0@>zI4lJn0`@7JNn;?C!D07F!NoTObAYGb zug-N8MlUQ#y%++fs;>Fs2#*YnkM4p+OVDdnRU%S4u046DpgT(M>(_%;gf}k^B-|Jh z6nQ-UVxdcWxMlMcf&u;|;PLdOdvqO$%t}Tvy|Ijx{#7Z7)dtvDan5)ZJWR76-oYfS zKZ#BczY?g0$r5|9HxINg-nBKE6=eNC-0q$GC4lGY3Lx!vH|8G9e!T4 zjI4H%GalIsNwMR|Do1`rDsRaF!tvQ?umM>&f3A<*9w|zNBlnB$MKqSia>O5D%`_Fx zFiD^X2V;ydBi9tH{{SH1f=^sfa0WU2=vG{3b~Epq7=%*z!O1?j#Xsilo;_*20m&!d zG}YV&L+9Hx0VdYT=L7JdE0NO_hXruJAE~4FWp;+gVTPt5PVwIu?}}WKa@aJgsuuv} zkbrsIN6_Mc4C5F9ew5&I+@HdNRerwoZux)&XX{J`FwOutA57D@>9iVB&Ung^+L$;z z`p{&Ibz$@di(F$7LEx3h^r-@<{v)4ZO!H!5K2|vP zrz;`B36H{n7hum0MFn~5&uUz*3EC+MKDhb{WQ(``qCS)a{{U$IG{L>c5BM59x9S*v zbPmLUSEh4IwR&?*!*n<_;9IyNn1f>Hr|U-}u%NRKQ%YE$;&1!rkPRWvVM(-uQUl*{ z{HYH;4o}vBjS5M~#(uQy5ZOE*YD1DRarx5j1HUu?rG`H7KZOCZFg-isp=RBVzsj2! zKyp-P)S5099>MqVpQiv+ZtSN!ScBV|kgC7a>q~>4Tn}I<1j^`Gl2#mhbj>JtYmg^K zSVts}nUB(}4Y&h#e;PsoIl>c;^sGCQPc@NU>1S~6zjSU3f%)|M(`C6Vq{9GQft~D5 zKLJrb?!^bEG~b+O%#uC52NQSR z4pT>fbNy(@#|Qe=6C}HSY>&pFl4nu5n~e1!pXEc6LQyqK068NE+K?3^JHJZB`*~B> zEIzej9Z5(ekWaDAE_;uWm&xn%NsmCZZ{vky?nOiP$oB3S6&l|u&j+tOaZcztS!gjJ z`U*)kD`?j&%m=R8 z7gDu+5ai@>^3iqNc4I>jct;1{ns@JTa9AH&mF{hnjq<1`kPlizacR(yJ905YUSV<- zSvo6|>{xL?ifrYi`gEyPZA*NDB2PRKQh5>o0165c2Fj&MDc!xjfXzf8VsdZ>c*>mq zb$G^vV6IQGp&>!{V;ILuRv$4)$1sy{kw>o?%{YliCVXenYTm*R5d|HxY1nPOzbbYW z%7LZ?e(>YdWjswFZ<&gZKmnoJZeROmMh?c0vnKjTR9m0^hU#(Hy9-fQV|wHX2L(v{2H&_@F}z(0*RFK~GrXK}3P z-t~BQ`gcECddn+<8#q3zPUu!IEPIshCqJcEn$9U3W3VaQ6HGhfOf;K8?oVIBgF7+> zU8f!K){O&FRk5~3037=UsO4Dg*>J&2a57Id5t?z30;%W^mQ6~lcO-a{P2Yy!Mz?7sQXu>?*-931Ch2AE-fzHSe$a%!}Z%nl5S{<+AbU@kd{ z3Wh9m-!#>R6dRS8H*B%uqXs>o1jzpYWSV4xS7C-Kr?%2f0xXdk1cCyQ*@-nAw-%}} z%#F?tPc<4taHMW!ao99trA}atvUaMG+!|;Yi7mTESVxc#9Oj$$m=ka+`@H}s6u)Pb zo+iLOhAA4&y7|wJ<8Tye8WFyw0-Wq1V>x9ak}Xo+UK3{TZZrAQ#h7D*86zEh+E48D zQ;`Da>r39~KXg>oKZW853F=y&W{@^ekEdMI(Pdsf&ZiyA)BgZ@pY>|Lh^CY3Eeh{* zJ~AUxeUmjBwZpL_zthVD6?B;a`_Y9bq2`m!$DtqWsWezGZi8Wkjtd|s)t08fO#bW~ z`gEuanSb?eN4Fo=l;n;g$F5BR^(9+z$ym?>MMlf=WFu}IkD7{LQ4c8IRsaa;^8uQg zKQd4Qp$Y*jH^CnA_k2wN1!Tjj^G|3u**9VRdnf&Ux+tS6TLf3LG5wMfy;1k^ApK5bl7=c1q zf-q{0t&H(2nOI6$w++OceswF`q^Yt*M_xB0at$>nvnEO@+Aiab&Y5Ysq?$Ncx|eVX z$KymdRttMgJ>K9pXpIcro>btl>l+`AUsz#CY@59D`pA>&FmUdnMR7?-Ze>%5q zZ*Ih-WWLgObI|+OH`J<4-cxt^f0H=s;OWV?88n-{wEa=fzL8-vOvB9*J8ot%K05k$ zt&@1kjjlH505Hcjd|IL$g(Dq-rEt0BE2|BKl^JvMH)U;Y*4>iqh=v*vmo?k1+ zDWc8+C%;Oir$^;aA{WToK*`Q==~@?>ZQCFVZ*c18m52=e4ry)lYmp%))#2<5;~%DL zC;*&w8%9QAIB- z$b%UK5_4ZqMly{!r@fKtQ?i06nG|udk)#SUz^Ntj6|l0jhd;yVOl60z;s>b*HKolg zMkc|?8T{%{<%U2sz_5TDaU^<*pL8mvy!0oo&@uYZn27dVaF^B`@88qVK?<#_S z-l2;&-Uq%16afHv_nok)UvtelnobKUk8RaBW&5lRH_S}!1PUw-k;#k#PCunEISQdc zBmLae+=HBqQt#R_c9H9h3RVk|7LynVpn4ii$Oc!Bpr;uasVd)0Ej?x=ZSVf=0kHv+ zQ^AKm`Nch5&OSmp^{Gn`I43>0pfrbqXt3@ZNh2WsG#J4-+M<*`KZ_^0rnHy?=fL`P zrb#4m2^(t07=fGtPe_zW^Q2|6K1Mv6VrnKYkybD}kez=Tid&g)TrZcovM>~6(A~Bg zM*O$$5LJ>j+6VCT$F?{XogzX4l(p5- z7VS13#ec15DXZE=Mm>i;lL>*h5VC+5lEf4FRD!|n*L%v23Fw66esqyD?+qNN#GjOJ z!8Gu0itQ^S1HlEyT5*he18lJjb4uU2Yiu42V+M!vGmMfisned~aX#o8w<_lOGc_im(Cx9>k`kHE&7*eUh!9HhtMUcCg*A9B^T$*$5 zkCqq*pa(R!4M_ac8=dNn&rD{V^W+1Qbv5`|-X;*rK?Hi*()tF=o zyXj&ruBEAOtR)0S(1^+Y7|8_sNI3)fxMQ&Kg zhC-Mf2_SwaJ!;^V)$TTnb(eQ4BVY&9wQ8P(G(;z!U!QzYaf5;ee=3)BxCGor>x>2j zwtr43rs69}fO{OqdJzcRKOXfov+0tf6*Akf=auXDP_^m>c4>pFF8l$ElZte1j)i8P zC1QEr%zygSK+!6fj#%AK8D-m#!liVGx~b0KGl086rY1yTfG_-fM&5(wKhmqYjbs~O zVm_G$wBxh$&@59%!#OyN2KrTLVrWz=TNUlQC$%duOo2AA&ej?Cq+pxARV4ZxP$SM+ zNDb)U&a7Ir%2~HU++Ymg(*{?;Kf{7O>CxqKc8B!bGm6s_T&N-AiB$gp7Vgze(dOhL z;BY*#k@(_xB$6|1) zk%9PPgM=V*4tV)$F>`=2i;wn~G^S;B%EYRBfTo*h8e)R1OK&9m3UC9dRyh4C5X@W> z1~d6o$stqnoD=Ut0o%qt=pNan8+bVUsh(n}J5@4!kSW6BZysD{+=EYIY&h*1PzleyMY>FN1pP5m4w&!XiY^u#$DqwSXZtjVa(@BGs1(yHc2@rYzGxWi5zr{4 zY>}PRo2A>wC+SEG%rk}hVvB%{xN(X$w_ixISWR9ousIe*j>f_p)QHLzdeX&m9P8g?FQBK^)oP$*h zFeeCprkZ3x3HfvExuW4>?>ulR4+pUS0D#qHm?+{m`TBQYI0{4qlL znA~GHJ@}wc5I?;n4)`3^eM7_s6CHtbo(a0onm((GRAkzC9- z)A_rG;7RHj*4@4Ln7=$tpHWc?szu71iEC<);lTD3hh{n-%9UhB9AtmJQUj291Y@;q zW>-5i{{YvcV&@x4`qhj9{1~P-Il|JgT!ql%fse>jHcCfS1L;$Mq~xKefDiDBEIXCL zHa=!jK9s8%2aJAIKHr;_TvFh7#TFIFHn%`W8_Q9WN8?d6@u~j+TA+Ws zK*qB+K1j&-KjBS8Vaq#y0-fi^dP~>QY3ktp)-ClEw;rfzRmaSEKGcF(!5~WS>N8Ji zFnJ^K??=to36EMBhGrI%tbqH2LtDlUat2SXDIHjxtouI!Q5ee~-b!41iWux8+Q7r+ zaC7S2X$7Q7_h9MiPF1x~Mh^%u0msNpaeeT z@@gA^%5mmxUYO)&r)z20e(=VAnH3`25TGzq_2z)RjL)*8;fiD)c=?4$i1CbVU88^s z)z`KJf(PIhoRAFeDk^zL%u!^Keq=-kvDwWyO>lA!{{TVFU1(PuRH~m{+|tB_crtD^ zR$}HLOPi?1F~`3&@pW~cOnArlYG)DxLdb_bjWDd+zE+DK!k(yCLj9&fzcxSbns3^j zfWmIasN$n@wXoBsdyayTumm}q<@7<;fU#;jlG)67$6?Jo?Mu5JTOU)lp!1_+!7cby z!H(P($JZ3@Ct`0lGuMw?j8G*;1SlB#)F$Oe0G2+&qBlyX?qQE!Y1~#VnN$JtgU78o zSsMp%6_)p|ys*NanCdDfzXm)ZnSO~&n57nMw$qQCew559I1B;$ipSovfuAt9`)#*0 z%*Vg)!iPOc$)(O5rstAKCnOqf!aEU;^_sUb41V-Cu%tJE31|F+ns-6U%}f@?K%_ZS z#}%Hslsic-K<$!f7po!4Jig1)g(NOkT`F7n&;9dB_IwZHKG~|WT}~7C02cIi#aM(( zA`S9vW7Gl;D7tJc#+y|H{^fdgEl&`Y2WqH3=AY9e&lvRLnR7K9`3`AooVsF=$t%<{pJT1AOs8!arC8O5C{f+&(@R3BOpkAohr}_dvu_oC!*7^ zU6nq}0p>&PmZ<*A7EjIr^%Z!=r1GQdnie!%{EL!v){{w(n5dTfNBY)m`qS5ROjx^M z@rLHC1x@+bc<+iy8w>KnT8mg$xd3u;f;#s!ra%rhrhPM-T(fX(@%5&$bm*v~-xLgM z$os%XP(RsPUGpzZ$La+rcPE#NC$?#<#Ew}HJ&B|;RcS%z)3~JsHw+b;t2CeV&Ck%9 zk1DN^W=?y9iWsb2+NwVCu00MYs=L*X`iy-A6z+v#k02nNwg+G`DmA&}VNM4?Fi5Kc z2x7@~L_zm($DgfC5ekNl6CR?xzEjfXMRk~yCXkPdTz*r#C08QURJdxhyu%c%h(+z)naVx|G{hufcFNg!-!j3D8; z?oTfhQ(Etn1Tt&sMwHs%|u_{nj0EJ zT|;9%xy?jJH6sv3FyQ@aFR5r>GBPo+A@xz8=T_{XhDC8S?0>tlLgVXH(S&C^RlSW) zF4ur#1O3xo6r{e>F{ua8)fV=BVo10j#Kegb^IyMY|2Ouss}$cS3f2|C~?;fP~G<$ zT~NUbV*v-(H6c^CB@d?@)GaeBV6W4WPFscByO06x%`2jsd$Fc7A^DVr_NOhhWB4+C z#%V>uKXcdnwBsmWx~Gq7YRs2$zh_104t<3umV+7IeuktH78xo|eR!s`010IS)11|4 zPNHBp%jLe@b)(1_$U}qAZfIFmhBmSG=|Pc5#?k!f&{~QVuK{t7K~BPuGBNBxrYwom zBR7j50n~q345s%KaZZ#MnMkeUZB61@@HlI#wnx9j=mf>BbY-FBB z7wJ(sa+MV1Ui%8Ou#QEM7pV_|KA_UIfLUV-6_L(2?&7F_X--(Ym|}f9)yTDw0;pDv zfaIy*`_QDA+*%9UXSI+hhj1NO9x+l_{jvq~qlPu@yCXl&ldNIlUGf+dR z-p1sEv>w3*1s!)5wi|zEcYIn&XC$v}`TVh2kE4*g)JRn00Q1k`TVL8t$0i_27(Xr! zezd`;P6p52g(K6G^))V(8`P-INX=U$MFSG9f4z^&rGi5nZCSC;1gYcltrWW|q!=J< z{{VS<(;DVJK!PPb`kJK$9faiG1sj-b*Qq&duFWBsgDg&6f^JafsTk<=$XrG;!@ zDWrX-bWD1;H7Q=$N?#;;DWOC;ja?+zTFd4=$a#RrCx!LvT{_DfM69G0JdM5UgE0?4 zf8aH-q#L3LQ11|KSn;>%S|`xXO8T7x<}yoUoOK&cB5s%4G(>OTDA%PV&0yA#dHdX&7>(jFIcd6$7){$L1SkV%=SN%~h3&=6wvmvO9EO>N)`@^rTB; zBOEUMr{-2}D^4?aBt>JjRY%JZI9&dwofe)REz-kogd7$RjGv}4LXTkP?ow5sU_h!< zvW5+clg^*`(by5R@DCJyo>-)Hi-jEGF_Dk1Dt1YxLAC}N``r*X_?l>18IF9pH^zle z{WIhFRk-dhW=24hyAzy-03gPc3XB1rft^B%IN3w{k{O2j5Zk0-LudB0>KEe1a+!E4%;!$?cO?3j|!cGLD}z z5t?gIu!1mo5`L7dtOv@*dvlc@#8itSHZdevJ%e*kL25&?OlNYD^`|Nk_qP6d zrcc&;g9;W`Qm`MyMNmKC@b@4jD08$Gsr%i9MiXectcEA7!S;NKb1c!J--T1 zI0OEzzbag*9S`CtKp^$sk4kn=_r)h2y(vH*gYuvR=O^aR{0f{21Gnc%v}1rj0ZD=C zKPm(`;EsQtG%F1B#T_}%6oi0!ienUleR%Yx34!;C`qFPX?MIo{<{zyB21YypKNhC! zali@()|YnS)YCBe1xFs_(iny|KftH*qhkzk2jfmG;{>Yb>rO&QiOY)O|z*7S$A9oaPjeP<7Py(28NiF(QKFc3c zI`_>;85=l!pFvK*$0Iao1S@9{Y=s&1rSfA3fs^e|9Pj}jLq-%gdMpD(N)I4@RNp07 z=V<(eNJpkKNrE^851^vJCy|bX;CfJP`OnOLrk%J9WrYF8e(*ny77Ma3B#w#s8fTQ* z^!k%lcQ<0R*K(thpPd##auFN$CY`cD&vYQPry@(hdkS{KIWdW%a4?89)f|Co*4kbCOz>?*>}@C9{H_3lINKz+<}H=Bk4-R z<}*IcI{}$w`TR)iJ7a(PxT`F! z>M5m|4x{iDRu#xHLC4LU^MRUUw3)((A6~UFl!w7%kEI7|_I&#a0Lz*g9ka4$J+k-$ zpfKEkaT>0B)~g2~{F2~$U{hAvAC?3Y*tKWMUCgoO#!mTFeSrp;W@2zyxBFTD01Dgt zEFcg6b{tBp_|#EbCQt9&u{{@oS4<#sT;Teg zR8K50=X9gjsV0ke8e>ERFg|8U>PY61t)v4!eplUdO?!}ej1%-;4LN7IlYlY!QJ`u_ zt0wJMXGm4QkM}qAxmU`p0zH-Vcd?VCb?05*bMI) zZRm5Fc<}>6gO4$B*BCWE+C4$jeGZ?-9B*7m6*M{Oce->yi3X+g-Df zSsqP;vjsoSsZ@j6lgT4tph7uXYQVVQezlq}?dFHehVPU7K>WgzFSIB8zWJ;D*8tPz zL1t=*far1bp_B#ce>%+jWRZ-qfO-s`e_GAFzrK=8$0>yepvHeXnN^HX;|9)wiRiC` zpG?tMHn+NtGxm++Kg6Pngb-#VBxy^8dhV}epDta z4UwE@3J9w2BWE2c?;#oDpl2t(X)=)4W1jUBXV#v?ob;&9dUU9{Xm5T_2d!Fy2#+L} z{VEvaR~b3$+N~^wMic-(mBRCEEgFs$FLmU3n2gSiIXZ2-qE8|wIT#qF`!s%nndiTv zpTdJVKf<4tY5l!{^ZSlZ?K(Z#Ac}jT5-BEv9Pc!|MrnrLyy1%$z z+EgD_JURaWX#Hu<#3{h$t4ngQLi0-Mkw&GNnBXWJl6|V3mx$~xeAh`fi+IG+EyOPt zBRL`Pz-4$m^x~;!xJfIk+t6z;qq@J`Y{lW(-4po%J$fsdAXudg(XpR%m~j4 zYAHiBd1fR1laYg7qMDRcms7e4HF1(^V}H$JgbtlJ{VI*a!#+%QN{oAh&*{ZVQMZ+B z0($0@*~kH40|0sXdBtS)Hd+)!G8}*;1M5yxwYdcSMOiV;9&%g(+qFluvvONL^(r=c z4ZDWmM@FWyzhNdlFeoKcKQog`dFL(on$a1(1qyI72>O}~S>O;pr!+4docu6KZtu%jDfyY zet+GiTmzgB#*-sFZ5(w1nh@gn{w$xRC~Wn}{3(ZSF^u|9xXuD(o}KA{{{S^e$-w&H zQZJQ)*j_y9WW94M(Mlc3H3O-_U^3w^xIl#>z3Ai1< zhG~k#xg)j*wJ$!Md(dpY8l|P(zwaiC%shaZAP(6y%Y$P70K0pIX-C~wZb9^^lF(|`Fds^|mO>UV zgBViGFi)}XQ`+g?TNxyrAoNp!Pvur*bt)0J`9zWCMt1@AT8(10Sz|*ukn%>}2h#-g ztfHgPw%GpwGAQB-k0f$~!BpRo>~Tugw+R!;ZF?Xik|d0e)}@n7Ge`D_gn0z*1+n~% zF?9Em5xR4@j$=G$@y;t!E{aS2uF6W?2Pf!r^r-}TgwWz>w@7$a3~`@v(zLA_+SK_f ztrPYA_aJ^Eq?=Pn!9}%47{fd`2R~YBJ=kB!!7Hf3c}7F)gNm6ZxP*MnCF7`40{a}+ zjJG~p61J|UOmia;f5MTjZdNcPwtH6<266KyD67$22IHkRRxj=4_mWCt{?$8=OaS`c!X`evH9>=PCNoIOw}`+N-?sBjA(+)S5wd z3W8k^`?T(b%F8ErOw(B$`hVX>q5D(^0Lt0)6uY842^;mHv=(HZQw9g7Kif3BUw80h z*CwJOA%W%^ZrI4-{{UJphFQS_?&SSx!vh>>vj7eZM*a0gsu<&-c1faagiJ=l5cO z%s+u~=}>T^t7rY{N0cJ+%%|Rqg^LB-zaGPyK8rWXDj% z=e04NPJedal?yOpbGL(1?g#5g2=`%56_3zU7`t=j5Ix$a-Z&Yiu>kTv9MBgc3PyQR z>E5C!`OloV_XehAToPE)5P@=0n~eI>V?=6Ie*1uZg(;DHOOH&7YR?e=0G4jPfa8-< zwbEz(NCVWI)ZAl??VcPTO{-HYWMq;~I)oKmPRei)egM*zken23|cKQPY&7!-3@Rxhg|8Ntuiqici=0Zj69f-owXK#Jm4 zRmbpxa!=t^%#5HFQS35JE^(+Dp^%bx;d*5Cr-;>u3;K1ee>U;S`=~wgY0EU|yJUV1 z9O!(8p>>SmlloAXk+P5w?)?7%t!0~$hC7@A(g3bs11W=l$9m`V?HV?E}BLR|+KZ2Knw%ELLTTA2Ia+oL zl=C3!h+ElBJ!N1pQGYB|oDO*XDM~N377L;gBCzBUO+HZ|?_pBy9RC1?MDeNh{{X&d z5RDXklPBhCFtGFwkD#d*B*#0r_N5U}iaJk2}x&3j(is zYB<3BsXVcsPtuN2a}<2NxF7(3-6Yg9ODd@mqXX&}{A*9h0Gte;tudog1PWn|djZF6RJwN>sB+)gGCwQ`$4Um4RPujX=}bhPKb0`S>Ic)-lcb038PBDU zJOhtvm{=l>&PsrNYgpS%Ps&w5_RS%*Dss-vNm5;dotg2&3EBi~{{V$fsERp=W89js zW8)i7uv%4t-=tW_P3EhVmddRrIatv@+5(}T@rvzL$@TAApJfL*1K$FX;Xnyg$vtyU zQDaRQpKQF_wlrh!MQc23wBv= z0FD~wZLFtgH7C$5u5Fr4C(CA*H;l`2bF_lk+`wn%8U;~+0O%{lj$2l@JxIxGDQ~up+V|M-rG}kpN~PAV{tn-v=22;k-Wk7! z)h=;7_N;B=)8)1D$dPxI1d>h$NmJWB^IBStpB0ygG{&*8^Mpb;#k*OvM-rI{G9;jF zM;RpK{J;-t*6}RTi>pgWB$6EE-J)%zj(}BFdDVHjoc&}q%U=ajoW1Gqf5j#GdikDZ zdAfBRH!*E&r(Igu{fg;zmDJ^Xo3j%HYizy;nT@4(6ajO=9XK>-dO5I*MVd<+kY&^7 zTm8|yGjN4fhhI>m>IHPV9L{g1j!C4ESpxwhZpII4>7tPkf2xVTs10dL0b06hGf8~> z{{RJj7fT&zdgl;4ZbB;@34lB`aCWVAsZK75V3lK4%YPD#Ic3d^Jv|xSH zjFb3OP|2%CQ>7WJtA0Ja%7y}I$|^^fS=mc*sNG-Q$$5Ea1&To%HM2n^jwIeTt^;lb zSLWbk@r)X|qgv`3ZmuGDPT80laD|mqV>c2Wq&eG;`5(551lmk^ z8w_LDaL4kliR6{!n&wt|8axEvoXBOh!8Y-tI)D%Y5P)-z^&y%KuCq%MDdP?>KR;Tp zHi;h0@8op=^Hn6!_Mv6D#y@- zCv{vOtsBnKkhvXsrOn(L?1}J8WD$;?dYX1|p7mRMk&WDY3UpzCB)LAJj%t%cG|3Aw z=te1WPtu$ijtb$uaf)5d(C6z`NYU;;N->^&XgO|p2kT5^KA(@JF%H~DbLcBl!%e+c21aPmoRA2~_M+f6=S_|W z%SybS5q*6s8PG!q?`>p=zExyVxM#I!-D#-5Ka$MdepfmDY6%_%A!LR~!1N@4D#}T> zsM9&gZDrlg)@I~jQluAA?gVTjuI@iWRwagKaUzeD9u9DN{d1H|I{{VoR zcM>81H#x;Mn?`K{K{@6;<@)($IR1$3Rt&;Y>EF;ElKk+Zn3?$3RK^ z4JmFjllTg4CM3#hXc2aR05x_wt|N>f^4(MrGZ5+NOb!l6Mn6-EOcv|M<4Hv!w%+2k z)%1Vr=GeW|00w<(y5C=eAZY`Jz&RZUd;#93J9CVW#i#-`JbsH(;pQ~QN2+;onAQnj z-I#NZ`0Y;`z3Vx|VFo*loc(GN#Dlc}^xl7Utcj8@yycjB6M;z;$bw~f#vF7w&fkAZ8*fG=mqV^wIbn-$ znp6SzRPNk;dCn@8)84hP8;FPd!ajdWtUOmDNTk3-V}cU}nEI3c6!GH(kOuoRtYjRa z0JeV)m2Ix%r27>`mCeL|xn(#!D=7w|5nn>=08mfJKs{>nYnG0JV3V|*;xt@i>)McB zr0W956B~x*fNU&&r#U|A4?jBYKV(tL@xxf`^EE%U{jzY`^NfFCu3EAC&%;FW7v~o--I6 zf6HCOeg>M?VD%~(fjfcOj&i4;#-AUQBOs!?6T=3<{VGR}DAdL01#o#R2+y`EKOl@| zb?N{B^*+>f4ZuPe986H>JZBX*o)I>3anpA{%9X9&B~_aRNjYt#fPSKxdKQ4)%KIZc zlBXR3sLir&`A&X~S0mHJhcL{K&vq3w8em(1)1=Hgm5DQoc71^|lEeW7C?nT2*M>Ly z$WJ|*v@b3!(L&|aV+Bk@^#i}wsWgq{hEE^@ILvq=jRR6IB?n0P?hiEaYM*<`A6k|h ziMN$$?Yd+iCm_~>#@b+~+B$v!@l7Pe+cOpg$izT<)PYC@VShSX#Cyxc2Qwn8A7h>x`O+&Vj#nBPY=It0HKMfbql!`zmuyJB6%9BqWfmr|7w+w2`?A z<9F3*#zYdT#E$KriNzniW3$QRo)q={Xu1JWK*1Ob+XEExykr_hg5{Veks!&y8*z$B zAekAJ)q{E!=|Gq^=E(;HdQ?jk!NF-=l=c{>qDXikG451iq*x2>AtgVB7PwrD#ACx8 zjGpJ3Hg`WZNB6qb)U%pQhe?}g<8$B-&YZexb(sJJalUWxr)C#Mf0vB0-oHbUN@3l~ zx%BB*< zxd`<6au4Ius8=cZC7cH1KJ>wF8}MXeeF>{b*~IP}5%-0zVGEYr_0aIi$2Djr0 zl0Pv@urjVUpQhTsCBi&q9ZZ8i!^i7TJ)CcXfZ&hfVmbV1YTE_K3`{e_G4~>?%N)vo z)F;%QYeFq9R5@4?v;Np8`P9v6Fj7Pt0N|EkiW+P=tYe6!BLxvhtugJ}IWsr70=2%( zcmyM!m<%ZUEYpSZZBI;b{Y@@W^BDr(FsJ6g?}5})UMN%mBWCB1mm;;UEu^(y-ov$s z$oaGUs;~fZy+b+ci5x#c-f4Mv!BNb}FO8@@(q zo_x*1w4d-1in5W#&Q-YeT9g6CzybHg7Gk;~fLvn?(hz^V)nQT9$ubf>4JcM1@10X)z9AA zeZ?TX2Roz~A5dx&YZDxtgX}Ruw;bT9{{VQJcVTFjl1St`MEP$+Px9CJh$Hc=*0hw6 z!^%E}r;R3$jL@HSCcMkQ3}H{}O21FnHCeYVlkYLa4FnF{_x0dJ*kWaNisjuk12r06#WGoB*!n0!hjjP4E(NrGeMER=a=hC zvS081l%ZtL-u)>6#+B54!%g#N>WDuYpKBfq8Zpz8MxmhqYm?nYF@(+5Vh^=jBizte zr4}8^ph}=_m5KHg?d(4GPt~f%(0}^$6i_lpG+0+F`QT^olkB;p&L@D4_|)JpKtD=D z!0E*Sat+6{InR0ml0Vg``kIq*E5>v5q%MEDaqB?tBFB-?0qvSoAAAapoVP-M7R514 zqm|q5mM8hpGH{BckOeOI&qBYIS3@GP4BY!-oIr91p258-CIx}C_Y~Li&!txTF$X5) z{ed*`5&r<5%--A@E-QJD#97=IKGaiLSdYBqAHs?TOOx9IpSvAcRct;FYJS%}`&R|g z-C|qB8= zP4z`_tQWP8sg?4T6XWYG04SqP;UE~ zR@j;%Owwc?-^!*v4MP);IzyfgDoG`dDA}EW1CnWB9jM9w0D6D=T#qW8;|gub+gW~W z(Z!VHYzV4LVvAS3$T6Se;S_kVY<|1x`oc!2st96@_EMdUM4DB)f-36)S8s! z@6^%JWB&k4nTX&Z$Krqb)z?{Re`v#RQoYnR4Rbn4hA_i(84fd_PiotS=%eN-FvFY! zUAbh`Tjo7%zNA!nZ>e_r#tUYH0G!OBviahz#@4pDF`}vL-B0UPC6O+z?NEdgn}r19 zk~!;EWz$cazk43X zKPYt0KQ6S(n=6}kAgai?>V91Q8LFGzK4NiLw|&i`yAEj?S80%*eKATInGPLJdlNyw zm`3sLAx~a2nt&B!oE&%06)ky{c1@Xp18iJ(Cp6ZNV`RdI@Sqhus*-6-;2sDc%Be*Y z%)nuX-2nYDN>C0M;~lY0^8nd8F7KZUdE7L>aln}^n^o4H8g z0Q_n&@;D^?=f7c7&WFlf-g<7yK9s&=5x8LcRUOhX!m=(qD9NeOWB>+tC+R|va+W;S z11yb?Kr=_2rw7Y_`{tv;Rz2!e9GoXwjRd*Q)f{)J7j^(; zP;>kyrAFH^wn&%vDfbz1)93Cf8t}?bn{5MQqbp$l04if0yqMVi4r!wbP5~cHDl#tlNUxnY0?Imud($u0-YljsEq8XvoG84RA-rB~RvB;fX_ zeEr7+fJdpM^CMzU2cE{7Vl63;V}AJ%_1n%(R`bD^3{{t=MnR@w3zLvQ9mh0;BV!rB z>_sObq>G5)oP|~%nLTOkBxi0T0QWqeYMSF13V$vs<&+LV#ZqM177Ktew}IRWXd^k? zdVhAISKLY4kbm0ENTEptsQhW%S_()bCz14~G?A#l3+<6kF^qD9k9u&xTx|pBX@I~( z0gQcdibhUy9lxbWp$0etlo8Oe$@ZmSWI2Mo@Mt!N; z!Ez!KKPoGG8UmiB2+yTWz!(|&o@t?g$t%;|kcingHUxZn`qNBH(SqaNrrirKObSqA zASf&C-irmu3PLy_bL~hXL7oOZs?!w5W9^zu<#Et2OSfEq#sUXu#DBX|aR!X*c zBz*-ms2xT|dFGXn?m(nQ`=fHNjAc(CQi9Cm&z5&ig+pYVcBwbQr=sUL9VtN#{9_)} zSq|o^YxcHKs>5c;06!=LKaEKar)za=mlv-LET`@U&MO;Yb`PJ*m|^rq9_E{DR!01` z?KFYlKPwH(xc;@BEN%9Y1FDG>@`{-!KT6M=?H*A^;D*3e46Uu14zM-^WtZ^@F?OgtRR4o!><4;lTiovE)=>E1V4Rw} zIr8LF4aAYTA3BLnKl;^X32rh6+ofd-k^_byeMqHZuFPbDc->stw;b{?Dp@4Ck8bH2 z1Y`22nUh-gcPwI6grl%HJBazeDyo`=>~gOAeaaN59Vyz+ab2>Ea!MSiD=5z-CQ1Bp znzQ@)RzT1`N}r#d!nG~+BvO3Hq-DlQ3Ro}UQC?lMs5b2ZL(~{fNc`#BL0y=p)QlAp zG2^Q8ew5#`s>(|wfsgl{3BvB6>&Bc|QCs7ekF)^6GD zR?>9}<~(l30Vf&y3{u-%M;eguM%?q}Gj;k>YU3eBBmg7G9Ah0R7(8d>i9LxptFc6n zxxD*S=YY!9B#=ZG=awOZ)IxASGgOv@+{$TXRv^m?=g{Z%sgh}>Raq`r0ode$S6Eo? z0d67lIR`P2r|5abExnGM=QkH9NgOIM$LcA2-3N4M$#hjpmw$2y8Ky+|A=TwRnCdG| zdpmICqq9Z`$CL{(_Tzz7WdMEOHZV9MRlz2Qb+~R_m&ImM`#YApLP%M}VU^rQwbO0-gK#z{Ci z{EZj03l9;|a2ay>Vcy^Bbkxud;#sFduWo%MS zg^??!e)u^0{{Z#sC%0E5?`0j8PALnZ0YWgxu1!4v3zCR?bI;>O;jstVuy|Q9>zve) z+b|rnHhp-h7!~`YIsOm@Mpj23ag=t!8K$fkxaPOxl1Tc~8X^u$AE0V_q^rp!eO8{# zK>4>3k4#Zv5D77yl06SOr8hC)?p^-?@En>}TXNq&m`~GzOS;_v0a*P7El1QrAp-OWFzily%%E8 zaJZEIKGg9%i_0!Yu&DMNlfm>Dqacr%435<9EeD&n!61DpziMsY>l6=8^xcV&e53dZ zMi2w@0sjDe^rGx6g=?^!m)v~-B8cxDm*)XacmpI;0>TdEX5-qOwl+c(_3lM0vDps$ zQ|<%gKBEUTziMn?BM*F2Rxgw&mjHCYq>>}XA94C0=|$MAu1V%G86IIHsKqi_opJky zaA{To4tdA1H2vXt+PJ5v5t#{JnK6#pIH4Rc`ILd_oYTDM!N$NFt}{rpg&FeIN3X2| zC0{7xKdlBhiw~D1eic;Tz)1%U=oFeozJTCvWhb_1x+cuJ5imd)`qLT_l3V8fl?b?j zxHFH%xu*H{p!~D3KJI934$PcJqbF;O`ifAQ956K+ylwYgj(^&q$`oL9KkZSVYDi=C zP<^ven4=u*#V4I8{s4KwJE=^h9%JTZPtZy?XkItk^hf+4N`d0D8t(q~F2hiBaBcL>4NgN8#j`g|}2kBN8T&{Kz z^sS>f%VQZ+ly@wJQ=gE2RDo1$e+=wsURUJk)7Pb--^0E`RJqf|D7Fd@{ z4&t|RpZ=83pT*CaI(?h}0MeOTa8v*Ro|J&?BABB;G3Y4?>TAn#zNekb(6EyEQmmQa z9)6wb_3OR7@JyKAk^o3ORQ0TK#|P6DwRsB9rNMI%44@78KG@AwI?fYJwHB8&cShpP zvPfS!3nI7WTL)Q3z&TG}O6F}Q^X%b%`~&qIRL|{-_V86(sZsiVN7CVKQMq~@ExfVa z48}{aJdMMT#MI9e0kUIa9Dat95 zn@-m`>0r~W&dHdw1NU%FGt)S#61A=!{HX*$jnttuQQe`Bd;rJITp`6Byb&-f(thPsFJ2sz`BHifS(j29IkzlwE3h3fM(S<6P&@4NqDBXmU`7Yl zvvH0#u+L+~Dvy^KV7SIdIis7%Ieg8Dte^#icM)(i%z&TDqc-rE^BX**a(uN1A6|H> zw&vy@V7Dr*&PoCZ{Hn^!eo$qRRgW3@bN)3+qFS(QSq5Xalx^xr{{ZV%VnYv*0&~#u zR;D_HT)eVv3xo4<`BgB}k_N?hC)2OvNwK6R$ur7~cfsjO(V$QY;)IfD{kR(uq(UU;sEY^mT7c zeJI=rjEp!4bL)z7m)*$iQ)C}Q^aSFY!ND#^8T+&a#LHvuoca#*E1v3C>S}^VcZC@0PI>$(@Ty3`LxYomNWi9rYYfg#Htzobc+!U)4VVM9T9V!v$WuCl-za#h z@|YrQMKF`-2*p;woxrg^yi|B?#I&UPWYX?N8OhI~q}v#CmSTRin*saBQos)Maxla;I{}(eGOtXN z`A`D9Q>tgmCyx9IbZ{1oNhI+`xa1R)`3j87EW?6uJzJ$TC}1+p_&ps!CGye8S$xkz zszotD0F#lQQ_`#jk0&Kp+~$Ghx7}q2{nJX!E>thvCi9-Ao{r5RMhc76lg27nUQf(3 z`BNSVChE(R*S=|LJq_5k?JC+79&lm?F^pjMq?=c=m^R0TRy?lW-&*D$Pau*{;fh0I zr)e>QM?;KahdDlj<%;TbP{ng`#D8UyB^eCqllf6A3o+(>o+V~nd4fU!`ijAfPXtm& z70ij|9Fncc{A!}Zao5p2qH1tIB*tLXN0a>T{IR^oDnvV#XnWdY1oP5%Onn-P?jhk%oB#Y2zllf+*nk)HX zK`0EPox#90R|^*7xM|`L`BA6<66Jve{yl!RUSLZFCN0^@lE{A!l~e4|M-!~ENxb!t zNsyHcmMtWQWYUPh$iT?==}F8=CcHM$xeoE{W6#QJ6mzAbK%!qOGOpE;NIc_k0-G!#k2Y4_CNb0>)~bt3 zsDUhmDDKMGAC&}`1a3fo*kghD(Z1ng^cQxp4YQ=A9-f%*Ru@pUn26%HzypJxgYc~L za7-pCB~%#x707R|dag3uWtDms4YwknGeKhfmi7S)G@?d4;7WP@DbT%wsEf;vHerxu zQs0*~LKQ{0SsA>IGsc%w}RxHks9NQXl+lN&o zf<1)^_E0xU(y;BdDh7>I2iU{VkLgmxP>>YM$iOP&G+y9aiLE@j7&O8(#z|3}o}3<( z^B55As`M*K7XxFuW(jd4og%DTkUI} zzy`_u>M$kFK4b0=T1IWVLMUQ-RKI4L;am4i$enoUPfmllfIMn^#(XCS65|yNjv7G6 z4!P*k5`UjG?ajk4%i!guxs*2kS=E$1-Qv zntZ4((Gn+?5AMOw-2io|eAWuPV*vNZdJ2Ge-IMA~HKb_Cz&`!x*f%9fB|MnG2kBF! z&mSv=`Y5W=N{+-dn=$0o$6J zzJsv%^(j>hv8=I!^57sJ(xVqn56cK;Vb_|J1srYOJpepX3p;rj;vxy>t|?kWx+5=~ z9iX3bI#beS+*cqe>NeEhWAd;*%;0uAPa>HuvPd?(V19J$!suz3G^R3DGCP7QY)u*h ztr9j^rA)17Y7}AqQR)q=U{O8@6w*AcKpn9NYkW$e3RdS%_7a_E-xt80<)T^z|Jn z6~=Lf$FVfNY5}`}&w7+jt-vU8*9V#jBP0$&ny(?7otujLRmKaG&MGn^AIFLYia4K* z+xqqZRHc4goB(}l!NxxEZ%k2yagH6RlTZ=PX7R| zR*H^fdKB&_)Nf77LWflsDgiXVr5{ ziTljB_ChM(my!OgpA}bcBE8tGFh1V5sXxcEKE+(pKR2e zV>^iaY1mgF`G-{Y<*2ENQT#)SDv}k<{{Z+9qdaFKnUU{GThpa^H$7B^$m5cJlorQN z&Y7AC%`31Bp64cv@kTxAJt!EUnnU%a0P{)|p5KKUu(*I{9{!bL8&+lomkUI3I62x) zXvRwb3J@!zl{EEcH73@>5;Tl_pj4rN_MoczngWkrE2%3St>1CLgWjB~xyU^IDVWcC zc+FMB(a!jS+wFR#gc)KTm>hi?BZIa$kFr4LZ`S11m)Cs0)mf4l% zj~U#`IpgVDEe_Shhk6gxd+i&yeCd>7?V774vj_}n920}oMmJ#R)3pjV z)O^Y4S6j=QIJQM=ZRGGg!IB1hp7l!Z@@9~$U&4dZC{8O+`#N%jJW)n7{5b@Vtx>qr zqVUHjqVkPQ=FQh+GWUN z6DU^X`e*!Ujiy}Njn53b4{)?9jp)$%W89iK;(^HqcL%s^Vw9v)5>nP?$?uQwsL^GO zc!`xyO!ud}Qo$0*A~J?-1`VEnr8}mqC%E01`9x|P9r};bo>oT*hX)@20M4Bisw9)p8Xtbx8!w2|+eRfM(sM=g15dFkdB zC-kVk#K_E3%YXMWf29@#$E>Rqh-XzXgZDaSr=EKy+V)^9q;exu>&IGy$c+^mM1|R~ zcKL)b`tij!R%qo`OLSZgFiHJ$PoS-Ftjt)vfUf51;PLoV_Mvb@@gDiX&CJ`J z#2Lp;!zBGGBpb#a6w3}s1e!`nEKPNB_Ld4}+~eio5To2+)a!3+ZwC1$X=ctb8v;Q5 zb5RR_kQk#N_uhjPrrA|X8>lil#_axpQ?O`OX`3aG;Ai-V%}Tdd675M@Hj&krI3JZr z{!``TmNG{HBSXzVl5)tf0KGEHORnSGw#GMAgu8_u#AEt%QyV*00etXDJzanU-m_ff zfwTecDMJ82XB_ds#Z}YXn-k4zADC5TjhFoQrhf292kwYaHkR}rl+38$lgXqiry1Na z-loWREg1}$Y0PDb`HG<3N>s-l^(dh74mtcis-Kk^1o0%&Y3 zNb)FRcRS?v=xFnmc||+(!EAq8L`KF0p#2R@ktX&sTmYk{7p*N=I~9y;FmEu9dCBIU z-!9czoMWcI2lS`;NdExFy>Z{C;Y{0s_W|cTlg%8XxQiMAk1|#`?)_>vfi`5y;ODXJ zPbEP)T>k({P)0VacpkW+qzdB}7^5E|j2^5>G^>(ur;PXFrVWFZ810oxW)Smg1Kcz(0$EBffYP9fk4KL=pvQ7iSrJ$spfSj+5#E%@0wx&11a72jr@+BT`(YQYD|wFX zbSeFw<<1;|&)pd{JT{U@PDvnk0;Ow-T#fRv08($`CEEw}rOJ?VHa#Peenp6eBM0Z( z-?_~|_Ro?Gt(^Y=4nLg+MmZrEgV6P+?UNaHJoAFs{VBUJB3lMhNqyeCn4DDpUcti; z!!&uJaHkpc12peA4^jA1QHt0bWP4;C%X?GG5WF_i@7kApKS7o0kZLzZ!TCQkOhSna zXK8-jYC$@xjL3eQb5JRp2b55Kd8H_z{N%A6FexjJ#kG^nP5}hb%N|MnDiJJe(4706 zQyz9>@-HLSskDi=V%Z8h^rm4+;N$SB=_JDdE_67}IHjv2iZ6dE;r`?ntF!y`yZa0#DQVRjk;f2+Zp4tGKEhu^y)#D;2Gy zDnSI3>S`~uL>uLek$~eBHA1KN|7MD!mlP1%0Kv9@1FxqCOunvkq=K)zqk7#uK^Fds~FT>5EI zFH+6^@u|hMF^!@W;;J*3Rrra~t$_Z-o1 zu{c|46Xl%7K;$qj{HWMtIafws_e%c&I*5X#k`tdoKor7HmNI$vJ!rVBS`o2dnnlSx zE;4E}lDG_<9x{19r9;Tu!C$}{nPiV{#tpkac}5L1)xn}jt>ltTs>rMd{IqT}OC_|i zKFMC+ft;*@tH$AAB$wx|Mh72GYFQc?V*z3)7nKNqKY9d97%Zqnungq#!}a2tu>}OZ zz##FpTO`$D7-2&(`i``rWRQqLGj2HQ2kS-b7AIf;$02j~nDPGr>!_Z1+vP}z=c{0G zQ^Tf-*qNqC@G-P8CYd#iYq6F^IqGqPNw7f~RgguH;Pp^J$)?M37xuG);+yWI|Vt-O6R_;c3lyB?b5&ASewv=;-WWKK4=Cw3Y=pZ2lJ>+#0!F<*o^$6 zApW%xxjtqL1P;8vII42DQ6=PE`*px0HqDRX!*r*AX`Rp#?VBi)2l6^5%88_5TB(BOPcpT^DApZb#)BaZgj=sjUA4y}MEfvV)20R+8_6wzE z0>W%4`^(KcF($eZ2ILPo52@=)=)iRk-_n^Pl~oNKk)KHrkH?yfZ#dW_U=J*)Xu2JX z0bOw0-v`n|ig%P;^3HSW)m4iUU0C3C#s}w0_Y43TIR5~?zm*)wR%M2^8OS?Z{i?jGg1J&{A)(?91U8CKA|GfJIbdW25Ude zW*Apv+Ae?xdPcti(5#4>;&)aVQyBcM;fC3(!)5`BfPn zrkmveerVf0axqFB-SE&A`evpo`57*!ry`BR$bpF6_jay0CZiFm6S5u;_iDmG#FAax zKD8)^jk4xkv2Lp3)Dfr=_ZpLb1j>aaTpHz~Dsup13_}8Y_s%AN053{> zs4h|#@x8LnigRBX?k~x@X&t>#D z6$Zz@(F;*At1aT)mraGNj z2sv_b-x#N6EO73B6HeCZCodwQTZ|pkDaW-76ZCdmdg84S5#;X_{71)J`j^8RZqTot7Rkf$Ky@e z5IuSN(9rHd<|=Rv1%rX|DFk;lD~N^(C-7rPB#8$bvGpdHh_`W{v#$rP>{P1l!4dWU z0BVu0Vd^qL?M?ekBL`+1=}O})0l4Jx{{RA@pgiM|{?Vv@+ZiJ}xuiFU0m88rS47#C zG1#j96ue`n=~UkP7~3D_YCpC+AGwa*%`RjXW$>YMl4+-C?zyThJdAOSei@_^N=A9d z(u<*_%e&LQGwnc?Ncl;ssIJFw$ovIA%5%{3*NR-hVt+84V;`LrRK)q@nkc&q751DQ zQsSiB$E_|8*1W48oyhT;P=_?}k<@gjv+l;m^2qd1MO`k??8pKbnS&Gn{Zr~o2 z*jTKYdGb9migQTC&K%>=b6pUn1*>KanU5y~YQ0BC|i?D2Zkf2M*-p0ZwUi#`}VU zXIx79k7_c%{;I{c)r8|4SRX)Z(35obgU0Fatz47?+T@Q+isc1 zE1VCdS`D><2a!d(MAx?KG6s#D0uMvi`qF91=xIrN$s0N#U+kzE0UO-0)2+*Cp} ziZnz}s<;3zKq<@*CcUf#TxB)reKrmpw~wIK$RF0C`M~W@Z>gxsYV>Y)*f+YK2R^y0 z5$d;*Cd86JxZrScRT+ruOfE-bnmL*su5Q7sC)sw+(#a+=50*IkcB}RplrtA;9Q?-{ zB_I*_S0&~UIjvnO?3GL2C@1)L42*siGsM%UXHrReyBO7QrmrVsrjjI(1q#G<13XZW zM*smZq@L9Y*6eTs&yRhL{uLAIT64%9u8AX{^4lNErQ`6OD#!l-0$=8HEJZKpUwL@s zD={m8dJ|OVifOJl$Crm6bPoRjT95l$%pn3`f8Ivt^r1DIMNmtej(`LH6)zoxfAaP} z_!9pBF|0);_Lts_>x-673Q=FQumwaM0I7`DFBgV?^7=OQU*>ADR6m)0=+B4Ffjr1`)d9#GrEHvf^IFlRyy)V4 zB`QZOqyT-#p{OU-{?Zf)e5C{C1vdu$Dw|)GeW97q_sPfQL~*!Czv9LG(4HogzS8^3 zuVWazDzi--VDX*^{*|E~nGD3d=_JGq`I1UG`U=gsyt{48j$0iRlh5l>!8G?Iv%m<) zCk_1TS~cj@zq4vyj^@#vYAeP``WjE9X~`P5+RCuc%5b3mLY!htXuowb?d(!Me-djX zLp;Nhl4FdCFmOEvDYC&j#$=9IL}#ElE%{=#=C?wu-t4yasdX;mlPZDpd26^4>yc7L zrpE)TmyL!22_m^amO1)W19fv81gqULj!SLWnX8Mc>Mqffwh%`J{#7I1syvtT6Xqwl zw}MTgc_i}JmO&XopI@bA$hPsJNVl^F;fWv16`=RGGpg>Kh=)|RQgiu=&zIztia{yC z>nA*Z6iF+DZb!f78<~Iu?t*Ax6o-<-p5~NXDU_FrGJOi-r!vCW{{Tis{{VG}%_N51 zh_-?ET!!_q)Q}Tb`hLoKt~4 z0Uas3<7UR?%{;2{kDEPl+L9QIa5|5sYBP)gcpjOlFfw;3&u?l*10;n(j@iu(0u;!D z7!d$^fIs^5gY3g3&;g!CuKqGIi>yK^Z;D<7(ZSq z9|Rr-eZ@!@0D{zD9Ob`CcF+jI3=9x4{n}EioV7m*&P_A-M2vz(2>{HE+$&&vQtmjx zUcS`*(Syf7K}cj#(LWB9fME^X0ZkE-dLPcD6DBc?el)`{JO)60%^Ge!K*lqUPc#)_ zox4hAoiEu@i>TR)X4`9Z>tJ?ZR(E6Du*Tr2_3Uh2^)~*v*@F* z<4WlQOr0YL#j(lnx}+r(bW`;;Q_lH19y^noiLOXE*iX4QqnRM(ZI&KZ-Zn;<^*yRZ zm`R_Uj(b%vGDjJ2lzZl!8Mk2rG5m!kCRL3B<8LfB`eKi?#;gaJ2OS9hwL@#L<-k6G z(Y3NT&*Mis=q^-T`%<1jIrIclo5;bzRmtcLQrooTuP4ydQZqQ(6+ri-=Oi4czGrqg z5vU~f9?GZ zYUN|puI;5}w{qdJzsy{Q$4{kgH;GhO0pw=n<8j-;J@L&#s-BNQ`!~3pA7FVDl2|*$u@qJuWy&c(r546BD~r2wBHNs% zaw|&OYZ%a~+{#oOC?|0P@f6dHx{2Kx5NMX{<~flS&rAZiq`J|fM?fvSp^jZie4nLX zp4lWu{{T$#gEm6}ocRju*lEy z7>;-uI4AV3nhQH?X@*f1%H=`03=hy6S-h3Om&*gyK~^~TUMc%AbF-Y1+Uhk3uFRv2 zsn1`fK?S_9-75=wj0_UWa5G&iqDr1@B#^zrZft&B)_k&EnGrWlI=5wn4ZoP;lZstR zQf$5U+nd6=Q zYFkZGXNPZ*Gs-%<5J~(pDtR?2m3+CLNZq<(F`v&hR$U0YFs@*GNpU)sJwvOOsKJP) z)rhb?cs%`T)!eelG0yn`=PJ1Tdele@a8^`3Ng|`EZIO>D&KpdHamINA`O{=RQjr`M z>V$$oK*#?89;^6myK@s0z|P#&cZ{QjVlq16Ll7wC&=iVdc;ms^a=x*QRFU0U%O+)& zmyho7KOtInwmN*MeEH=Bb;5u@`qc5JX$7#igfYks<^T;P7tlGPXWdT{ZTlt5%7>o0 z0R1sl1?-Bs@|~FX#xwfW+nqWXq#j+@m^x&0ij3MY<$)`}4BQGIHNjfNQ-3k}RuZkA zSaiqIk22}b?Z9WKDbMq((OWqL#+$Hlfr@)YG_hu66;xp78*~JKN71Xug zoEP|IZk3|UtbSPGPZdr7lO@eBBE1-(4-pEinLgL&iNS%(qW* z84TSbd14^2501yBXb89f zs3Yk}V*~D~#(gN|VRD1qNh1;?Y!Bfb1vTzi06d~Iz|XB{;Hk(RJy#;4!-0ZJ4!k86 zXm>;@G`n)qDH!166(Yx~%s=IxX+&ou<^3uF6NTC&BziV+O#3~+eZp1)(v`x+ z?GYUv7QB3SGGsAz_|_A6(M) z>x%PIJrXUs7{H@v=TiK?g&Ypl?1JPweYvC&ki_n6AK@c`QsiTSP_)b&6d<^`IqybT zXP$lO!O33q4teiL1`=6t*dx;wN^L5}XWb>b?)3zUzDT6aOLrZLzuES|Kvi@DrW&MM zMA#S3ka}~{rr=O2)kcNLn6X+il1;-n>^fqmTX(?3&OhKF)F9)YYIKy0200b1Yc8fz zr1}!9ZV4Ot9rhk;lDwF%xpt0DOoMJzjEoMR)z`+rxgm(pt!Ma##NF5lROR4rFdq2m zN99~Rs#s}1IsX9ZZ1C|ocT$g|m*&hsN$o+v>OdZZ)Gf2{{A!c~jEsut^e8slH0_Maa6W>%aCexdW+NYJ=$7Sm&l0IG1T!=Fyqpjv}dh# z9SM;Y=BHgg=1lB?&j9qPZ7o*jPb{;CC*=yc&2GVK_IxW%GvlK66x1#!I~ZxA-99iB zXP>?}tQ~&x^Gs_ido+QjxVsj_&7G z^0LPb$hdN>%Et=p!vY97Z09|z#m(@}wCPfUzr_CQFD|Vfb~-bz;|Qzn{{XMN=cVyI z^cG1Bk;DC8It^ybd9W1(ppGFeL;^SF@B6gKSbFq0(jGH%?Y$TfHLg z+(aHI?p|poG4CTgw*W{a4oNurSCaCY?R&Jf*LNPy-)p_J*JI3hd0yPQ`mggXP2y{d z7S>+%BST{pvqfp;GQ5bV<#8c9Sx*_j`AO!Yz3~pQrG28_<|`TQ#4t?>h%zA$D2e@-i|kHMBwTum?!Kc0^qhIv`lQO;dJW+6eq$QT?CN~tG%k4_$=JL|#?4Es{!Yq#( zFjtME4ZtTMhH;*pbfqHYl38s zXO(1j+{zu5c7yl10CvVbsyoXVZy{LZnsi;j?uJ&0hvKXbJ*%3gS&F4KRnxLozN^vo z@3&$lgRK|LZZmtvNC%N!fYEG)g4smU!)%SYS_$17IV6(7fjK1S zCz5%lTj{nD{hAAOMN4Kc61!O`farw>`)wxUC2^Sz-lJZ}<)e=hC!vy#~U~_s1+~ zWFvZl&%h*w=YTmpbQv{oREc7MD253^=PGuS_*biy;VWU(+@s5Ot+#I`∈AQc_b} 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%0A)u^{5j`H(OiGmS*a4 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 ah6g#~iYh+PAs!?WDr15&XrhX{0sq-{ia?0~ diff --git a/functions/function/object-detection-function/src/main/resources/images/object-detection.jpg b/functions/function/object-detection-function/src/main/resources/images/object-detection.jpg deleted file mode 100644 index 9eb325ac5fc375cb2513380087dd713be9be19d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1415684 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 z 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%0AIIcTm)F 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

    `7yJJhk&3dvIE|)(mJUMW8%Yxmh1;^ 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
    CZiS% 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
    Oq=J`x1PuNQ}4 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ⅆ-t1V-#S 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�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

    }a-ep0aZS>#CQ(51gESRd}7kkta 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

    )Ze(8uf2#M%^-Q^m1fAw>p5x9fW= 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 z z5Azc-D8233@7a`ni=oj_Wo)7fGuNzT?GE<%n_A*Lo8n|gnKjhXl+9Isc&}rT0GAQLZSf(3aCvI! z>c^ij!m;b2E}jV0Y*M)TiN0|zMBMeO@=8PNb)>Skdz38c*M!n;OfwDBe>2m$ctwNF zM#EycF+yKLvOW>CJxtA>y1Wo#Pu@4~?26G=Id>b#Fnhk)#MY!!f*nBe3} zVQM|_=>#*~R+`oE$xZzs$Z_~$79iU%sY>vvJEKIjR=6?mm|AC@1S)MFag^JtAy5gY z$cjHEM`EoZeEnRKARDmxNUp z-t$2j5Wt{Oa{`X=(k)Wqk110W5X=*vS23M`-O=$6Lf!o6mF=GxPvS}2NudD5t5#Wk zj+8hv&o6P?^g~}Jv++>S;WvLQmA0TH?z(kNzTLWg2S}e$^u{*2W4w+ojre7!Cp!Mk z%npVw6-{J$hAmt~Ue@OZqzDR+6alZjEn*AFCz?-}-0UH5cx@NcGX=l^Wi8v^1Dv5A zcB^t%j)k|*r)H_9IkP8cKg7QeWXi;dPlRupJB4~4>4-y}#{}|KRyr>U!zl;nf}il0s|KFhg!fzPAR?!PCUmumb`X4L5^pLyrovc`jq(ElNJ4?JMV2d&5>h!eVRpO8!TnuXuE${M#A5Q_LW_I9^EX$jEUNmBkJIX-!i=-8T{yNI zYGS^(cY!y{^!Q!48ioU*uI-~4U=`%M0iFQ+KhdKGfj1iiokYDZ)#2G(vL*_{tVh0? zbvgT*!lheedX|0~|FM^qC!@p%Cd**XhT_Ts`qkmuR_nellJm-6zqa+`pdd@LWQawP zVJ9&)w};k84mOH#{EFx@1psao~P)mJUjL;HCgAjmzTbHIkY zJN@d#ve9F}U~GB9-J<`?pJyUkxA;rt*bOb_a#C+!(#22~4qe55Yy>aV_CfGc zzjkkI?yu35<6B@QVSc|Jml*x7J-19ah&S8rR2Q`-AgxE%cQYG?lZ|$MweDyd-50K_ zQ&f(+I6@~$o9&xI(rsQURhs7CgHBrBm-L^D%BY7U2s@#B@)G_7*UU<60>rN9-9z)& z1*|RWs3fCmLtaT~N`#)oj?%=E_E>i(&ZDPOT_MHb(LCNQ{r8CP3?Ah~y_o*}#kS9H zq!Vs5^%yR!8G&CHzH_p+-H^Qg%tHZlg-t#JGt z8D-)Pt(NZ6#{5a}J)dF6Q3()3YLcb|pGRMN+axvH!h<;o&eIykM#SN7TJcwogZ@Mt zfmF5^h!lRB!5YSm!tqG#NJXv=oTPE?>a7s=T!nD8CWmLb(vB{30kN?^11g zzk>8Ow}=&q%`Y~$=$&6Xz&u&NahD^*H^9WYuV`2|=+@dT*S9ql zX)Kz@Ut~}8*F91P5{ykrwP1&a72xmMOF}*?bTh&Tr`7OFu|X3Q(+t;vD$W*eZ zTMt5|39Rw4516Mx*T!U{6c)6(G4XTX8U?*ylf?F;}^Q~GD#+fVrHPy@$gb@Eg zTi1+L{)`+qU19t@LbFfNdPsV$02lMS_2U!emORn4?8jG3*Q1u_)cDAuiDU7urh`eo z1x^a_ir0%gN=^qvXXyyDrXoV!&mjc#(_o;)^p`*2iar3^I}B>zJl|6ZsLWT$pc?ph zI?TaKMvj#RPdUb3!Irb%#bKuS94mX&n<r`?^#%0wh7OrV=67b5}Kfb2l3G0l}~i@do*K@yfJ*0G6T z|DjeFG5zd={SPz=eLFgGvPJfzoqn&fEf&1TZanoZTABLt_$EZ_{u-?;k>L{*0SSYb zCK<&qnr`W3-72~g!rF`H$$pi+U(sw8d{v;W1E|np+~hyrO41^5%p);@B^uEijl32p zN3h640sEc|y}v+``RC^9EsSqnyJbu+32_^l2Q)P7yp9x^1*;JwXyD-4OoC-!;g-zCyPsm?RJLf){?sL+yea^4%0 zOq6$|<$h)`uN$_^J6#0vp)~$tUqX^!n@(X&dJ2CUA#jA@HKD6Vml<}zD`NIGcMQ=3 zk2*CYi20)H?es5{Df5Pp#im)Z=vW2X_;Q^?%ooG6w7!Kqk}Ov#9dV^wiA`mB%8s%a zdl8AQyne$*xjCQxc|Rh^>#*=ESDB;|e|LJOaL&SWzr>|XR5oEd8t>X9KYi_;QB;J` zVn+}9-qLt;o?HI($y!20zyn*JW5@5W6noC;s3xs_{!#xSf1?Xwt7p__RoyZwEz9Fy zu||=^%-?ieoq;MXaz|U`LuJ4Qp~*fflF4OAy%O;!S!O9FVM+(dAXCBynKoSbbrtkz z?PS`7Q*8)y?ZfGr=B>+Geq+m^$=83mGstTh((=l4EnaZEYL+l=sDblzt-VD9)X3RDm&2J}_%e}K^B%wY^_RB2ap33GR0;V|YuuO*5 z_JA~>HY@i!TI&zE%HbD;b}nE!W)Ozfa+*eKtXd8!vkE^mKrq~4Laon`W~?QtVa_5q z+}T`MRDw2@x5KoU6Dup_``mJ1e*eHSBPrt&zRqpOKKevXa=uE!SiQZd^V?qW0OwV# zZFj|UwD@qY`=F{yZ4gC2sLp5c8WS_AO~4wqhN^V6-@5O0M?Y+L;~Zqr7DH4SU`w$B zBW8qyJ-lowP0ef>@xN_R5{84{wX7uNjeQ_89eTMT;S{8j(B9}|!Z?f_@HR-1ZNzuI z2y>I_MOlC@hng*9xPn4<9wU!2_UcDaM)2Mn!*r0!8xh8jrA>R zVWmavbZV!hzx8w964viTyX+xCQn;y;M}`kDRg z(PhA}2nQ64YmOgU0KUJQ8Rqx7rBU9vPr#sB)bcPgvdU^d4ys*OqE)w^C4W`S1S0+_)8Nny6QnS()L=98gT>XiK^CB|VwrJNSmdwHI_aU{ov zI3?Qf0GIGG5(d_~J%H%E}0WK&R>rc?wrx7Wok=PydR!LulQ$ zVN2Bh0hFCNt{(PfIZrTeWqZtYk`|>$1rRwDyLQx?3`H{kyAQnoAXDdevJe?Pk$^Tv zDI4crn>*5*iN#SUEUdFOoxdDy;;J`L~2IO%ymH!O&~qOY@b}zQ0}V zQKE9(f0(`DO?=#6N7Roh?qU)tzT5LRLa5s^quBGgC&sM{G za#O(-<(phZs@xJPljshjE~w9GX2PE#hwSv=`l5V_HYEIsrR|68`w=GO61;|2OKDiI zBUtJw*HSe5CSh4c?rbRRL0Q!1$s zQg#i|vem<8hnm)ZT>XMn3YcG3>T9giHLqHq^p$YtLcF(ih^fhKl=k=X$w@l>c@erLz!#5x)AJy7oDk1nEjiNO?7bcmoBO-O$_!bbIqunKL?%ml z?c87eGIoH8EuRTcPVA6~khGXL9iC5qS;XzmI|d?im|BOJWdGPg$xSEI=J(b!rmqQk z5m3pv-g+vvtpXn9w=gKGe3L_A*L9 z91tWT5=irZo=nFJZ}4H(<}d_g<4W~V-i7pb556F8v((H=@lF%tiY~-4%@9&+=QK(E z@ZD+iy@S&)2vvSH{aLbh+w^eZH>EK*3->2se&=VT<=e7~8i#$f==t)`;-#6t!}DR% z3YGBkKJzNcgzjpEByVF=CQU;wf*eaYbbGDMgas)Yx=vvWSB5@3!X#HUcFO5xhPiBn zykat0bW)nnlWA(q!f-3ixF|^VSF$QD9FYNi73Cat;cyLxhA}qG*EsB>*Pgw6xsd+! z@YmWToNmTzL;XN0QnsZjgZl+{ntTpP6L*6kn36eEqdPZ`r$(mttQ7vdskoX2R^8mY zUokZ?*u)qXKWg0~|HElQK>Ze#GL1NB6w#)YN~YAvQ7=9K{f@*L`+>tZ_as?z0r)ys(lf8=bi!72hq9z7#1W` zX|qaYhg})ClQ=yORXJ~dR&GP4AXwZ1_@ah3bxHq{#Bc!vtcUiNEH1hlyfMnuLpX@> zG>0hXZUwnacyo*Js@@9o*VBZ$i=r5A>!cv}Ps-QoHR&aj$a0X~lMul(tBftBF0WJ( z%RF%(w=7RTrQq$ZecJ~5{nw?WD@u9%B?dbco$w)yMbIh?^A{F$AaaX;x1zjJ*GQdq zoGK#{l@EpmqxMHN)Pt>PUGLU+feFe|mr*A6A$h#$rvnf$%m;d0Uc&=vs1@P3pmzmi z$+LDYxByKig$%`CCEW%~HpE#{Dz54k7S8q%h;FO239hOzR=5V#|BBFBy zv{|?p-A>Ap8cZtbcU&2j2YUaF4Ege_2X-a>N%gZdL)ZK1h4&wp5cNZ#{BMM<9W7*4 zGqbqFgBNT0L&Nlx#;d8vO@96+5CA) ztq8Ki_E^dC<+V7GrfjvsYte*SoFq-~#&|J*sU3h)F>AcYqGSOS|NQ`>}8tv3b1QrjU-t{&L z3gX_c-K;mH{2p%Vdt^+xkan7lygM$SN#uQc!~VQ<$=)TjZH~OIBqqVJIAFllh%9&h zT@`tuyyrS;nY_)6f0ZH#%{i*Qe%9a2E#L@k^d;k=D)wpdWsefki6Nimzhz*-{;HY6 zgU%`A?L7hT{cW+2c85HOUabVSb~$_%ug8vzl{muAnWN%)`v&Y@O^6+*Mh&M~?(fW; zcLdbTL}P}r#H1t*)ZfRJYKFQfvGX{<@Vm-}+Aa(^one&$vYmhwig(SR0G%t~Mcgot zjfK6&gct6>*Z$h1z0lyDxX~A1(Jh&H8|a|4_t9&gE836v7($amOhLSc-$GQj_h_A+ zgKETTMazDqvpzzhDy+0|x=a!T>ceeBQD>`=_&>n?n6J1YpWV_wu+6{gqB~6TxRtt} z{XN@8i|!nVKaDi&Dg$ahOF7rFoPgtb>$M}b{J{S4h05vGc{NWniEYcbVB)c&Z-`m= zYSp35_H5fWp~B=rhaIZXJa;%Q;{b7hhbmz)sUOplHWm?|FE_?j@Ndni6hm`*~irukZX>IzF!#P+^`eqbENHS{ey7EZ(Ostj{iW z$yP2J>GSnm4V|Pqu2>-z?WxOESS&WfN6R}j=0sS2`G7xNX@UBNpeWy zGcNJLO&8YBt@TnI0|Y=mnp(z+HLK=wscvMr;gVu7mbf~TfhxuJ7v-JCX8Yzjq|)Uw zu?4zyb4xFc;s6@5YvCF=^TX|fZF(r#Ky2#j=QP|UkB?0?U*FMeI(1?M#6uL}mh#6L zNoclu)5N*VFmFfZP!z?8g2Ru{{Gtf92Z`V=1o)_8o46ZptEuugYE*Q%$>iZYS-60~ zlvYBHdRSzNQ_S??F}Ba};+C^!uG>jkj;_vM;VW&kLSX?qDF$>$Pe88A5N^L7(xXqY znMcQ!(>^GKYl=XoptmYo9FH{1WaHUQ0Iw7@8L#x3(nK6u##CsOUg|5ac!>a44(6~} zgNF2~N$J@2;ImZO_%AMK&{BkNv_iu#rbUShZ3aG;OtwOoMZ1lYgz{CnzSI@YdI#8V zg9hOG6X9ho@apE18(F1)=w?6NNFNMG_Ie_uJmCiq(X&79BmSo-SOv|TOcc0bfAKQE z^q6n|WHjf^q?GW%B1VC+0u3W4!oFuUNZV(MAgzPbAF}-lH%|_mHSEC-TOaN1kZ==G z`HzRSHA43%KK%+UY9Cg7-y?<2&0o21srS*_)KCm@J;DCjC$ABS`vUHJ&ZyZXRgECQ zqN|Qx{*N1-fU3edj!v2+)6Tjk5q(eNTuwr8b8XcJ*+k}g;cV!@Y)i`R>&&s&L?-IoC-~jPpV6UWzihR@EYfw0j0Lepf8!Ac|Rlu zux_lf0CXRIN`e+Nb4q=8-|>$FZTUxz5>ZMBwC%D_EoF(pcT3ULWzOL!^JiU(hueM_2Qv>&YaLmvR#D4C@yuO&;aL+{SYz0+Sx7KG zXsOnBF<&MVeHk=rVthb^83_=h(6A8KwVw(ZU$yYolT%(Pc*#=X*7pbN*5ucVnvccU zbi+AISH4RX6ZNQ8!=*<{HOF)Un{1y0GZVQp7#7IDWqZv6qWFhw+^1l7Z(inCP^%9; zeKuS9W9`h&Jf7{gH@POjenT|nX$eELn6TZM3#CuIil;$KQY1aNE6TXmhlYn2%Zw*b zMVmc*$C}<>3|8u@4GNW0Cp*dJpBxg){iJ32<+lspE&55$dh?KRXAb5o%(~^`uOmo7 z2>ftOQXsYUddFy{9XuEPDv`c7X^4i^9V#7y#o~Wv0qj>)Vm!yEmbC4~Ew*}|k$LnY z5t2e9cfb8$?|%1fMgs8MQc9<)D=Ta3sKGo;;s<(I=Uw6a|I zo_b#4^ys?i{Ng6-8tBVmB=az;{ID?OfI;3E1at3iQYtOUz+w$opM&rgRJkC_r2>xeCifG&Z`563FS(y**z023fAv>SZIEj{6wGf?uy%ry^i4`Pvrh|wpm&$uBlI_wQ*4;e zL_j!<53?~3wVd*x>JsO_`V~xGVCNf_Y1MOgq<8yosmDO5GlI3Blz93 zq%)&pT_mmeu-}(>Uq21!$qa~83mN*8)hf(^dPTfP6FCQ(njqT260l=O`H=^s50=o9 zNAn^*>WJv91P8=PX_LY&(qrz5=I7SOlMVUHCspq?!dmd*m37*ye=9>ijIKCn0%(uy zrk*k&yVMz)hSoDlL$yKsZhSQU#JULRm~DXfEC`!E9ff^-bE`|E(7~V|c>YHsYx4>t zW4?dapLcx$7stm8CzRAh(y%2t;g9UfRvUB6E(#x}hfnyg9fY(@R84pl)hhc*c-vfI4VW*%Qo5n8ByDC16C%EJLBZrefJbOANyShZ%GjW8A3 z$_9aIoR>H%FMDe^LVv$Sys+zoqzF4#<+raN56zTxE$VrHJ=NiOeC`f201`V)tZT_6 zFw@6>qTgJD@Z>rN*3gJ{C;wPbB%j_f=o-8@PqSOr0+{8dx}Y|0DE#t%I_p!`-sjcM zHWz5IJ&hDl<2Wf_t{z*Ah1S$AdcySQ7y;hcDx$8r_g0-f9)}XbPBkAj+I*>ff#?%d zkN_Df28tM}4Un;O1()nfc(^HbwJBZ6QOo?c_9Py8ZJ|ToPo1|LV4`1^d zC2K@XOfA;-0GINbMsK948dN67jp*L92iTwaq4O?Vn!L@y_0lW>^JW_%l~ZP1xB!lz zhOD5Wu+dS6+kY(6C9f6-6G%izRP|pOWo+%@e!yIsk07kU%L**~`q1h>_njx#Q_fFq z++!ECOC}bECU(W$bLjkM*!B&);j!SVNBHp zL^xV|m7;?)VLk*$&01BaNif@bx+Q@}ZGnWz`)@npZlcXXCLvw;wc+(gVtu3}>Es`` z9z0L8(<=@#Dhu-3#XCI=X^E17@&!5HvS4^d&{lwpV9_af-Uo7$X(QC zQccCsKmSgze`HmI&*i%UwqLjuKOmMQ%rZ+E;tgZM$Z_n-1iH6+-)B_5L_#!uXu=8= zM0CKc;vs_h323dy)m@*x_Gun*?j_4O1CH%B!>=E#({E!PE=jM~c)ZC%$Mi_o0R<4! z8zNuNa|=l8GlS+9C^emI+Rt|ij@$LGZd%u>PPp|~DwF{%OU%#!thd+9qU=*tPP$bv zHXUg4a2@=IX=r%#ZmWUS{GseP2h`o^Am>FBGw4tIHyQ5udQE z=z@AzE|~|>)r41LjP1^C@1f^N5lmeO?Qhj`Fyik~bF`$qw|r2TAl=*7@$`87gC5OJ zs=39Z_xoUz^Q_5PV3^ws7gEaFs%P%zhuW8Y*8f3vElvll7u?q!pLqUB9 z&LPZbTlkaw@C2)29x&98*@&pZObh|LA*1`MHf(Bf{293@Z1PRQ(E7x@j2xwE6`Eyj z`Db=ZqUfCoaZBz!1}z16Gb*I|O~d0|S)Z_itS({7`-}1NSwN>pU2y)%UCKRER!O?$ zz-nuW8u=>MS}mK>GR4p?It)^4QF|y}Tk+dv4$hPknyu0-a{sY}z%Vl=ry9H}g-!FFu5VDu@=bgn+#p;L5$Wobk9nSa>QBoH4 zSuj;UP*$3kxN`G>k<^NF;DO3$8k9ln>OFC^0eql~ z2(<8sl$XfN?{cCH5 zo`gC+oFdai8-qnj*AVte$&lG7Op%1j=SEVlJ-X)>>2^rf7zB-$d;Epqz+-Z68aVOn zsr;v*Y0BN(N~XQNlP^TMEv3_9cO0%q7W?e^?zc_!%tCd=qRhu+Tt-pmR13y_gXB;s zoKKgQ9byOCT0!LvEklBWLo}b}eQV45_`eB|1aJ4fZ5!Cx^vB)j5VWFrdw0^U$lLWN zE6?G3Nlhp`t{WRvdR)1zgc?vEZa>ofF+RKRf#z*ST7zX1K}Q44@w)3xS=nS>a_7%4 z5uJ~gHZMHMQmGdYO8KA5o4PQ;vxwP>tQybwGNXom4*S35-%0r*G(4g?68~(q1WDAx z0`mT`JfsNMO8Eaj5Lxf@cYn06G*x@G9mgqbrFY6Js%KR9-$GdNOH%>6cJ5Y#|FQAw zN%~&<^dI|zi{Fi0OFoNavA`(;X=!qFzL^%qd}NKV*_Cki9?o15R~N0O(6H-tGymp9 z2br3Rs$cc6sDLT~J8?$(eeZ$$j`}|L6UW0mdv0qvniKd&3S2r7G$%V)u7= zV(i)~-m5AC&NQH_vT>PV4*S>eBVH>J2T_J7Uu#rR0Lgc~#l9r36J8~hqVpTYV;UqJj71FEyAi9Uy6VMi4PO}fKyiC%x z14abFZY(1um4UDB8W_0dduAx3iGUui5X4TWu=8tHbH{5Oe_)xOgYipC;0Lr5_gF=JAfYJd5}csxSccH(a%Z@gQKYzRljg!oYXiN*l!134+6 z$A;_nll@O8AFq9faz}!T{tTOL;gF*B#mfl7qxUi!82VE2h}9wg!osR?vja2wbEyEE zs2NnBIHU53sML4wY0HN#&kL@hz{^+GaS=``J)6IBMb7I~%d2VBsAborRO+PI{H)B$ zo9b|f5UaO6U3XD>p{Si5a z&PHk4q_QeK6s6Hx?aJdODzGtLo~i1*--X7z)k*2&U5edYU-gA6>y)5Ze$F@Rv(I>P zIPYlKyp+{{bJ`gTsz^)$PcP~Ktm0IG@NRH$@i0RR8Owp$WL~KkYm0#D{_sX5Bw99)RpyQ*G{Kt9^h=k`2X$Ehk%b z$h@L#r*GfPXysvTOj85iv|CpQV0jM9Jcj3i`naU0*>FQ)VjvZ+ZJ01OAqS%TuCd+<-@9U{%^~hqvQT< zlyjcV{io&)actjK}HLFB88Up+853Qeu2d|O;&RK7$s}~W* z_68p%{tcwgSEK~|c7V?7$N1YQW{uiqIkLZRXw{uFS~R@ZfG||m+}NH}eZgmqT=_+j z>Z~(?JEa?Sc7sNPjp){RIJ|#pL8;O_`M%MUBeJ~Nl-+U!6c$fkACkn!1%)pDV|g~r zv3(|avyVxS8{Jy4x^S;pWtm?g&+}73wCViEvsTy#%A&btyrsJYx|4pHXYGJpw(}Nd zS=Jf^fVc;bqJl?hfh4@~T2JF<3+>tex+1{y1x}(sIh@#r%8ahBp|%}T)XqQovXa&t zT+`o%OFF8_jZRNzdy!Lp+fzPx)6}ib3ZR{dT?P2!0tPb7V2*JlQka7XdnYgO#|fRe z6k^~Zl-WLGE1c1MJ?HVH>71K+J=k3{3~_#H0wD^m#Tq@bbJVt@V{=~~65tRqu4$%0 zNuL>#qc%b#RiiFHsej&L#`U^S=$ro&mKK5?^tJrqdrL7%TVEUH;OPhOii$~6c<@1b zIc*s-CK5Dkq?MMrWwGqImDJ)7paUZ!bLVG>o4y zR4{z~>(KEr{_dxTmw12OqmdTp_$A0@$0$JW( zTEtwi{4hxygSeL+P@AKx>dx;M8g$Ve$r^RYN!%B_HMP+Twu8R4VIPrzn%pz&!KWIT{OM;Gs8jOZUxRe2 zrI#)-wk-9*nj#$c6zd}LwZ4BVmMXdb*nNT75NL~1hwOcii}W-cBpOsvV4;YtBPqR? zBG7hSXF2!dHTcvrJ$#bwCS8~q`V*i{Kii+Bv&r8@0^y^TU*CU!ckAu@@u=7RJ~2QS z@d&6uIAU&54->JlL+z8jQ<=FwHaVNb6%?3gIbWL~Uo1?!|H8Tj&twAt;CTKGW zCXA7yU!+&Q;LE2WTr^;FX3x46~?hx%# zAc+a{pr?|?^yk-@dcp=xT$TDmCKy(%kk%$_^KUz|eyE+=@eKIu$C+H@s$ z{tAiT;}Wm8Qnm#Du(SG|Fx%n6F&R&B*)KRSwhFVM|2vB;VQtQSJV2nR38yF>@-nnFHs3?*q#IsU~Q!0a%* zj)GpSI)OmnvroR>?A%s}%s9Ut{1M$F6YWxZ;^ut!Zw(6+hIP}f+g@c1&IcpfYasNV zZb^WbSXD~_TL;JG4hr3)u`b-_k&7_E9M$|o_M z2vq@L6#3%7gv@fm7jxJ>wjmi$SQ)2p!XQgY7kY32wunpii^f_+yW)ANi`m~YyaT6I z*MK9+nSq1&%4A3C3Jgk2wLi_b1GY-5BnA!5f2lKy;2YAbla71=y@H|kxbX5wOyxfG zn%rtT?ML+P8Yfpv6?+mqXZ54tN9sk)aeyN>2YUdepqO$^HdX#3wgdvTX=Ls9*e2PD zu(9^3R#+}iz{yO;$xFGmf{jq;Ewou>QBQz(Fc%6Ii$A) zC3gRubNylc@?Sv>)~4$E7+W=NC1zbRj0;>ZA1WBLBCp~JXcN#Jjpb#IUBqvr=yxPC zG(P^%ZRW{@vqN}ml*PyVD0DYQrLRu}Qw5hhT=75lT5``HyHJ;X!xt_-H9%X5w1%^3 zx!q@5Gd1cIA+`om^=?})jHgWxYi>s5+Vu9m<0mHOe>l0|S_zpZbxD!e@@9{5m51h(ine5cOf-_Y?N4Q#iJpFUPb&gEKdk3e*JrP7D@KEw+r zQi8l(F7;bA#VuONPa;#Te8I&C2g)6X^0L4{kH7t;vF3GFLEA&7PtXj{b)p4&GqNp0 z_v@kcZa?LA{pi*t1Uks@a1a>PvMoCvMq^4*`T^*LjsMBY!bcW!r_JrE zavXV0R3!EBdXE_ZV6jF@o^)#Myj`4cBQT+e#mPf;Un^BCb(#k%%>%X^O!}mY2W1g! zc{aP&xDU9dTY#C1`b|T^BR9t9P%rEa9#c0~2NeI)YR8Yl;qoXE4#fv=u7CH^7vS1) zmmEr}PF;wHu<7w#ME@OtGFFyVgt7R-Zr=q4dD58%lS{CoNHPIQkxHWCB;ah0kGxV%1Fc7Bs*>!$D65zLqua zxMnqG#96cns+=79VDG)0_+LS%Qh2*5`b5OMA!}a$0e|wvE-er*Nl&hFa|Ak%T{|L4 z6S0*N(?iw>=1gGN(j@q=5q{^1bmjO@sc(bRv79p>mFna+w=czZs5Vl^Cca%%`_^-< zS7@NS0hNQVHJOSBZKp=8hn(^rk(;aJW(IIaBrC8MU1>)pmZc&@MJd#xnr$;;8a>&QW z0;Son@D~(>ux3n-MF8Ec_$tcOG-@o;{0*Td=dl5A$zUprBY)Irhx)X6-$@bd!jPf%U}~lp@_LYQ ziO3fwMD&aCZ!3VbKe_zd_jaKRuS<2DSI<>{E39tWn=1RCL{C3+3U2=nSt zsK`wEYdvJTj(GXy01j3CP2F7&gKRft*3Boq!0<1EzJB|5I{joA>Dqa-{YT|IQa$9T zLR5MCSd7gS_nvc@ihBTiGvjbfS=WS16&Uw#hT>S%E32I5XsZcdso;0SJ~VGq?v zSrgbz4IcLIWnxor?JrUCs4fi(ijf*k7da`rd86p8YLCybcUrh}T?~@jyDT@N2ODbTMjUCa`4;~e9-!v@Z zLr5)?1#SiDmMPr&)gN<7{{|4v&27vsPMjB)x>@W25D(UIwOx|)D4fI=CigP;Mb=xh zEROVpSK8uF<9vdROgFRHC&{&ZNS{R;H#p*BkmW}%w+KCFV6S4`4W2rHqv`L6(xgsW zyBlW>PsX(O0T-QYMaKZT(-aMW^;(?{?!tSHo+Y{KyZ5(E9Vq)34kl@mvpgkRiI9E~WJWfyy#=a2!l641X)NcK)`oP|&mWErXnQ zb3Zz$#ub>%V6I1U=YRf!iNyLMa3W#NKxgW>wI? zqT!HU#?VHW7egC!-cEp@?e2MtPDqPZ4BFfFh}`4`xDpzPaSKzvK{7R+_dyX+c*`Zr zI7iK2qkqGe;JZ>ewnKsObx`b!93+!DNZ6T_*H5Qdts4&&XZ0fKx6o5pWgUGI?*2L_ znNH7obH1~i%yCQ8N#ho1R)XShHRfonOvFrW4o%S$8l080OuRC%jIE`rz`xLO;k;q8 z=HujA;ghW%N$T*-^lfWO#}$dUeP=_&70iAQYjS-;w3 zaS;o5gg}xKLhskV12ky(l;LQFw~zp4V59$_{G*tvSh$RRB@5Gtd|5l8-8a%ZAE)r~ z+oqB9y)#bTl}tt981q!)@0LtucZ&=t0^y2S*MnpCRRnnn()UXf%%W#6u;s_T_c8kC zL;Ng?&)~u|3-|DJ)HKJ%PjQNhYdv}k=hbc$-?$C1Q-GJWdvg-+n^h{#Co-tm$)**9 za&U;6;DZJssX!DBzB;u&U%7YSh(RjfCA_beDXspwZWl{$Cgk)6=E)F+3uM^dKzhAl zL0YC2E|d~5<`wU@UNy0sxTS9u2!$Pon_`aDzB7sZ;k6B7*IrWt|KqSa7iaiB3ch&T z?Lz4bY>%r$#jGI!7SxS>)wF*(m4PJ&4H|(Sp=%N+cL+<`Sxkrr%XRtphrf~kI0%Wk z*q?d(5_edG&e--4*RY_?%5}@6sf$fw0DqRB;l?hpX!-u5%F*otC^(Vy!HRd3iz!g3 z_GvTHHGQwf~q#Ng9U0~bpr>9SOz+{>@ zzVp$s1p_;$j}x4M4<-R4?S{UFX8!j_erA^*X{01ed3!3>(Djh+Xx0qm*N1ikV0WW+pxj~d2dTY?>nyo7%Qk*)UVRGF` zfv1cYeXqPIk9bJ-36866wJrzld+xv_Nbn_9<)aTTKDPQJHAEn; zpUyBuVhX$@e>A7wjWbC5d0>Y7*8k)2ip_7#dv6N6UA-`o4-=%CG$GeEIpZy1%lLhBs259o}jF zdoPhi8*EV&K7|7@gs$C3>O&tHle?7AmhY!$6P*=0TKz>$ zn^6^!Ht_O$M^8}gt;qZL?5^Tut{MJ>(}mDazRK|dIP6CmI|&7#t$K-mtcU&;hjk-K zNh6eAxp+hl!P*df>?j}C(R1A-ZPp>VCiZd{puQMtX_qo*F-M-Ox>YguBpLIM<7b{D zZuZqz<_1VU)8)NytcOqLjLzA%ek1h|Id0|Y?lq(F8Kv+_s^(3j(_GWg z0p2LI^hJHO=(3r`m;z1}D__j&+@FW9%Psg@hdLjabvo5faM?;J#j2o)xntf+6^Idk*7=G8;>bPnme))JA;XOj2Km$#wZ*GM zSh)B;`lXol7HbR!cauQ~2^ZgXBb!MAqAk7Zv=w|fh5)s*~)sBQfo@cGCBSh|& zg-FzhqwTZiC&(ZryUVuSiCV_;6{0YS?f~J4Sb}1pJoN5JM(CmWdH^%h-;~38@ zp#RdhDHs|2!hKqZ4Y&@B3w!Sz6xZ#M-9f`P*5w>a-3P8=R~CrN3R==a>%glO19+yT<-MkTEZ)JHsx&DCL{} zG`$$?>O%Zp`Gqejm--(y9YV}qvq#fB#~NckMqDW7g+Y&x+CBO`C7N0C3+U zeuF7v9S?vQW!^1O8}@9!XJ-8hWWUL5#GiSEZuc-~4ywxlcgFsC+(@^qwM|Mr#)irE zUb3=%@xJ**_zxce;A1In8}eeJ0?!58-c1$7iN*^4*6Af{Y)rdhS?xRR3n)){HzKsY z&zCu6inROW;k|oPkS(oOc@`+7X@Y;IEn{_CdJ13Gk)v|nfqvA5Ri2XBc$XNE$HDX* zV=JQbvnQGb5~hUpH1P8yh0T@1O*M6Bo9nKPO8lJJB3qAy(X%~2Mv6?^K))XJ2Qw=z zOC|cN#%h$8jg2EYHO%1#QwwH%Hm=I#RN89$0lx1BRd-7Pz!E{QPbp?8{!3F_w3Gq+S(S$gUIK4}NFfts*&; z__SnqF~?{qYZA|^2@Qx0YFF`!kGwVd_vex$7hEgH&|CsHs3N&oYxHz*Htw9z+sC=1 zQ&2l8(Ju$U4)$<|v1jb?#P81xXgLDH8nvORg zt!2BcZ0m{B2lV_?Jq}j8gDV7G`9iEmyqBc>p|oI|BY?Irgt-tOXl&~^L-~!X!#CXs zXJ=njWTpCl*)AP=<@mko`uxY3rULsA4f6>LDPCrCMc?OFQ;B)=3UA!K-EX_-Jj-wi z&b3Z4&sU$`ytOoFoi^dKU;MuK0ZiN&LW?jn@;9k@*yiGXmm{5gcz%2F)Q^W@ zCnDt__XoW0o)2=D^iEtD`&J*x8C$UtT+yN)*VGBSUlonfS-W2#h9-d(LdOe3ahqC3 zdM)aiHsPQPq5Aimr*puP|2TxpdBswfB189pfoTQIeLwqs>7S)Cc>bpIx*rU7m5c&Z zGb)1_?Nq^`a5B%0me#gLm;boynaLVISrKf(9mp*4mum<@?@d&!RFM+byrDuGI|6eM z!)K^QtOY#~%Q|v6u57fM?r_?!@R#x(L&=3^TI5{P;ldC`{rLy|6EWM3^GmpY9Q3Mb z#${lO>AC%X9FBu3M(Qm0Ar*)=XE@vL^75$`iHB93v?IfJw-#SOSMGjNtG{s_PudtC zyV~4y)#ADXh3BXys(HvfejLW#i>ex24bZYyV~i{Cx9|V|H1xU`P%Kv2{$*fH+HMw3nYYOt8?H!pMqhOgZ0Tsn(bc)ANm6qMC zcpp3Kw|g0nSb6|mSH%t5V@0>e+Wv8Tpx)U}F8#m?7o5I&joBV?hCS#=uUO_fK+7ij z-A0vl9_M+9c!$VKx9x>ZyVOf18M5yw!R!~3R;g|C^)l?H5%$4oj#PIVHZlxZF#opJ zWF-&uC7v8YeJ9sUmeqBC-}b`8Vm{58+gLe^l6~MVX-_5B8n449W?eR{W69PfMl+W~ z8O@GFV+P0?8$sz7iY+li5WWV?WhK09Tww}Z5Jq7DUx$BK1qAH+SjHJm0L|&bLfdt-F(w461 z$SqHICs#rk_Lzm?PNs22CNKd2G#fP&(RbQBtue zU^j1=ja(Y&>YgNwYA_-S`rh}A@?}qyn3RD<0gn*YP|dJ0Dv?rHRYigs)iv#N&#Ht} z{Ep<_zX*9M(7ub`jG$%`pTEO#&SAlG*c`4NjR#am2|w$CB#gC*jh0B^tl*A!s*(MRJYzcBFX?zD+^JCR zjat0!G}qflBvUE4`=d>{jL0Ag5HKY{G(G8QE%oa;gqZ9}@=|)1A}ns$qhzS!UEA(d z_ET0u?L)DYe5TnR%XnMT5Z*x_8dP&*`Q@Ua@7fv%TcuLVx&CqZfum`F0hFN`juuNC zDI(T-{HENQC3ZxfY%lbqw6%z9_v1fr<*T?lpwe z|JYIso0$@7opCk2o=)p9!&>>|Tj4O8E!RUwpuR)fwMbv6+@eZ&o=jUAO5uhVC%?w< zQpc^V?54$uhU~n^P|3o|8Jfp<^)ZI3yn;0Fip1>e$;sWY#FL2|(X}wuL!9R(7+m~= zIv|Qme|C~FwamqG<^GgvO66N>*)&n(=KaUf!gc4eB%!oBk9`f-W)}JUCl4cUj_<)= z`dNQdY`kS}Gu9^2jM4DA-e*V~>6gXyqgH8SWlb$UnZ+!%%^<_ZOj%Qq(V0n6d@mPY zPRph1QWK12vwH{fVZ3up1C>fPw(3d?rrt-uIk|Z(@w^%4T)$$%T$xIj+=tQ*0Y*0q z&VUH2KTDP=zv9u{@33M~%3nweZ6C+w?84Txn#}gGGpulSB-8`8`)PP?D|wfYH@#Bw z`D534HS~bYmBBR7Q|BDvlngMy>ZJM&>pZPjN?c`+K-GWn4PTfezq-v6_R?VCCPuHq zBKkXv1#bVB!bC6Nx3^#xd1I&fdN$V@|F`g)i8V}wm~cpE!u`~<#FWT~uC!#Bd{TQMcymZ;T9vv{B zW9nm2XQWp!ItFH7XKOz$^?$h0>HS5?%TMG!bPx=XZFwsEsUZHVEjh;E2#}<&cu!Bn zv%@w+ z5P8j0Z3_T%iY#V8zEye!nAYNmK6-NSQ4jk$NLsyFi**XhM(OSKgVVlNY_8zFE9#+X zladBgr92pOIqO}!hJwLKgR&tX8Hd~K`F@T~cVR<=lL>1mez04|hvYdKsz0hzgg-9) z1Mwg7Tk5HxaA`m+l1$Cr77-po*>0ElNq3;KQGXo|B z^ys;Z#K9MJy#Y1`SJQ`*ZdWwuMt;C;{D#uvP=H1sQk5j8$0TbPYB)fbvuG}89lnF> z81`+qiiZPz=Ka!&i?woA*^;Pq)pE%C9e^%jtaae(KFqO(G9nnjwr6+TqOik=8G6(vt9i{P8a{V z^-7k#M*Z`6x;*dv((YcW-F|3mGd-gCL+){6&70W~ueI5_)F-xUa-xv1Fp*s5s+s)y zI3TG>J2^32J1O6RvwFXxNO{>%-EpGx+NQFU1?quu=VcRz4l6Wy%d&#Do88x2#@6zf1vbY9h)W?8oO@^HJ`aZ=BJ|`0t1_MP#{AAZl}#UKYqR%|CjO-smeV{y zge2gR0uY7wA=SC(?2~4>lkhPchgGc*Susmkd3^ctf6G(S(A6D5eWO14ej?HmIjZ@T z7q@HM6uji+rRA9bzP0~XXqGCrdth1H&)ZJJSYfS`I?dXhreiVsptS0tva*pF>vI++ zD)&mdN`2KE3^E?SY!d02))-z)%oXYbCUDw-Cq9U~HRLHbASx?%NR4)k#cs(NfO1Fw^?k-CX5;35eSI+g z+#=M4_(E>(gJ?s2z4XQ2ErZ2}A)NIW=EV~1-RFS(@^#Bnn>yzKLv1bo<$XFqJo)Vk&Q{mjwtSl-&@A~hzG+qS?@ z*OU-|BvHW2`3CnBmT`qWO<@tG@GWEDMko1exbP;H&UWt5+1d$UnS3#94 zwHF@18gUzA3_aLbDxfNw--Ras7Ph(6)7rf+$vAcu; zKz5zW<}>Meom8j5l)2FdH0UMTY%HoYs$3Tq+h$R=G`ed#-e=qa^B+d6V{*F!2yyne zpfB=yE!taA?09y!+59U{Yy9YueGzi0???Q__$46)l|SFffX6llNj7mSR$nWZ7}Im ziKv1P0bu?tN)~LYCIDkv$pAygsP{4tM+Z4>lgX6N1JdAo`zf~>tiDQ|S6 zR$s2Mn81eNBARR7-X1+5qY2r<)0=on683zAD_C5my+e{5r}TsV z%#w8F7jrWt_0nSY!QX_jOU*NR@`)3|wdel^bPD(RKA)pv$9tf-xk)%c}vu z&AO|N^F1{n?*+WvxDGQ58=%71v2|`B(_Frc-y`-c*lqg|uL9_lTY-Eu?cztOr>WQUL8VQA*pHsm z@y`}}p6Mb>uCUe{pH8V9l-X!uoYCUT3W-lGQGj7f*L69ga6?s61bynTDvnY0K5s=aw#Kqe6j5YVN94A5-7c!EWWSnvkO`tM(LmZd5ec1P8Ot zoL$_$+-9oX!e1o7sJ{2$B!Zq}T{GBbm6_Sxdgbr1P!VZmQ)J|jEv$^ur(Vd)(XAjq zHk~QefyqIju3(vePLE9T-EpR(cb|}6 zKkyYp(YKyg-K)I|a_#4q5-~{hTR3s&MBJF3mYiJ0i^6nemn;)gYS-4Tkv|b&w;1DT zmfS8uEjPAC_pPOmH=(eyu|ok8x1qwdL@}HHT^h2Vz&!<-WUdr z_F_RwjSCOv3aPh{RMP4^A$@Dzt$@a`*E=O*Vriifv@O7vnS9ufOT^a{EbEt)bbYaq#CWEE{b<_{U%F^X^FXbv3-LQZ@ z-f=deeq^Z$!4!AzH5s(Kh2;M+{rX9Vf&Ie^8KA4EdmYbw4FuK`+Fr>18g|b-8_TcshAPOf<2`#Lb5@T=uEe~u=}7p@ zs12g*M1Tq@UIimMuu=op51(gpJc09}FH`L`NK9j$e;k3ksH_OxHo3>xKjxw>En7Tj zNJ_1aYumcW^|chkPXp;};>_!-Dcs`d1%YM1w!vssvqWvV+_FBo^vD|rzvg?aZ^mY0 z^%LmUqhJ`@bqb%#h2mwiAR(V~X8@o}&?BR;=TOoO?Zg;5Xsz-c6Zj zw$8Tqu5_>8eyC}2DL=?1U%9BF;MPv#UYNsCW!a&}EUbt&l;&%mECc#&1n15jGb#>% z!CrX`h>lc;+`FmYV0)$QNb$zZy{h@B8|IC`KCMq7YI&)WTVv0(e-sYE1Hs|=S5<34 zwZ0O?{8YxcZhA3h@(^MzbKoUA?cD@LPiFk7pS$s+U1#^YlE{l-rr)WEl6z7KYS+3u z1FXckSBHg7*3n(kSdn!sgV8-^J<9Y<^XxX(kPBi4@ynIN1K6coPOJ=n-nGZiY5H_* zE8v!~H~dR%3v`b7?nK_VBr&w!hc{4i;e_Dm6JL;C$d1xE3m^(`)Fs({-vqcvAY@L; z5?3ND)GQ+k%q`O_2*2pj51)U&psT!Q$93a% zO6=t~Vti=|8z521VT4kkHF2?=f?Fzvf$bxKQGkvp@+trc|Jo%*x6okKgF!BZ2({ zL7R5NoGU@ED6d$$zp=X`wZj@6AGcmGta_6#!T2d#*GQ2g->Rv5woF7z7sZ92Oe-Um z2RnOX!!%U##T#+>gIz+oQ58jE3s_)F8g8{TS)ZO~0Vy@*Y*i4ocQ`Ymwuf@e;thBv%?yP+9}MuVsN`{E|$o6)IsWcrYpViktD(Jk1)I1sVwxuY;0QLqQC=KYUUqStj9DY4KxL|z## z=4ztmq$8H-OZ1*~TusvL;P{R-QCZwvofm<0@JAYZ$OR97{MncvQ&iyEAPP(pi-X=# zmu@`2tDYG2-A*wfegD9RlMTm=IXDX7_nyWeX(y*8l3aM z00Ad+0;2Vohu)|&^XiL#clR4}mM!l+5~Z-%KH2aT`}zhMnAGsEtIs|WV0|2Qc4s`BN- z-!&hJw3Z?E1Bw{OjXoVGk)I)`_Ttj521&29?HXQ2%_pvu7KsY9P$j~ny9-el!EBF&=J{4H3W9!>a zmo2CEFOkHnNO$akXGhBQeywJP!5axwXn2J!7v0a0|47JXn@i{v8<*By+t_jo_a$6y zZ6qU}TjoDj_jICvcaHYWqCCag#=4;O121WYyH^-Gpj`PtiVEsmtBfaFva4YMBxM%0 zhZiYS{Ix`DDe8+>%!diyKLygypPoNwelmbVLDRf_ur_*WOM>v3Ho0T}^7rJn!#Ye3 z)-pgh%CugfZv)u;Xnsh<`dmU#W1YrF!qMF~^e4HBaxdgSyf&u0ww2E5^QQ>w;%oX{ zA|}0M4G(F>*5lZlCg!7(wq70$l8*kVCdXWzzO8-RAnP>YVESYbE)+(^!tm^O+O<(w z#tp@EtEE#l8c&@YV=kWQIitEFB7ds*&GoyN7L#!0eSpG-NlbZNZR3;pu>+O{Uvs+QR&t07u?W85z7;;kDQ&iW~G@G*a1cu4r5kasPC79=B;kuCW| zhC^mI!QYochjo$Gd&(oKwkh*w1)QdC*Z?RdAi{!Xva&$fs()FZXa<;%YA@t>_Lub8 z&Yx_wI)AS&{alCMLo!EyH;k_u$<|W-MRbX>lYd@CM=z@i1T}o%+d3|(_KxgjM^nTr zr~^n|9zIAv8BADhz307}*kBk7;AHKcL5jORSL^UTVYYCeF<1^L8Ct;MiBG5Y<|kEm zU@+*IC7jP^WE|J1X>aRAViuJi+HSiTmyW})Lp;C2gTB5FZ(HP$_+K*LTI!;ixyX<9 zk87>=;Nd0Dg;aa_^^o$y9j~HvN6)>7z!+N{4`5cjbtCu{tTGcmc`4rUd+MIAz0I70 zX27Y;30xMrPT5qc>jbK%9%q1jxHWFb8jZ@g8Y-2u7Rl54os<(4ifJNI2u%tD7N^aP zGA-v0kVfedx*PlmTvJ~}#StqEfEteueVNRQLi1F8Zhr193gGX#Sy%RFaP|gZk0_v` zFZ;b50cbBN%1+%2Avsp&hVIlp>(9}8lyuJ4!c{Q8C`n1J%3PHJ!cN*y@^9_dHT^~ zLo$s#3Nj&hlnE`)>CIsE?%$!SMi&+}ILi#P@6NgdWhvsEy}O~}L$wnX`idASBvu{h z9j%?22(8!OqU6l->bSbm>Y9SLD!qP0j_b_MB&B|a?7OXewVLAFsC*Yz3iV?;F!bDm z%D~V~dSzbOk{O{OK>Lr{&u*`Ek;iv3_&*UB{a(FG8Lr&uj;;=XR%qo&v1vl!tvFM9 z`$}(7PDAF}PTj)33{9C*SSGa=0MmuK$_3nphuBp#z+tw3`3=@cMl0e`O3ual3v8;; zhsn{4pS~oC={U12Ph5)84~RZD(-OW2#f-a(h~Bq^D<*Q=|~&(in@u%`zY15urrBbML<(zE$9V*)Ns0y@gWjK~@=cIDS70_-04k^Jx zsAb1h)ZAr~>|`)%hONylAP|uMYj=xdKOL$qYX3Lol<=B&PVr8CmYJr;>g{_9Cg#yz z(hcfNqnDLyILHeBfnCWo-fqn=E)bV97Dlp#5mJumFK3E2Pmf|bS$Oi;g;Gx!^x@Md z>gW2y%k_~e_y~QQj3UuMm2Rmkut3^qQZ^Ugt86oa>mU1qw-Q@) zC0$VD#nk8Ulu|kSdZD@2;;EKl?|M63a_P33m7gI1!kpY8=4P?H-uGLSntKkv_>4=) zim1rJhl1BemvgfT>pM#P2DbvE^e&aql)t6$^q)`RIAESkkUyy|vUs7!=97-i5vNxS zj6dtF>BXxtUYRE4#$EkgIxeg_3eA4c%YUTO&*AQ{oIgXHQhQ^->par7 z*D2jMyrQ2GufMy3J0WCTgSzyv1J>PXRUY$YWpDwd5@g=4@~UiQ+6TfkLd+1gWn}q+ z&8V<@`k%vq$itVIsKc4SbGI!O zxVC1uoX_p?xHSAPNXEft``#Z?f;#&pyY(RAQYSyyvU;S<5b2KvBQTXer%n9)F|Jj* z!ihVzhReb&Jy!v3Qw`5Zs0Wl1K>GzD289#S^T;mz)q9A8a$N#^-6Wam0CO< zZ|pVzsiQV=F&2lFk4hFl(6}bPy=aWPmmjZeb)=9kv9qwTc*8YUWUxHVjn|^hmFK0^ zP2Nj(MFo8OnJS_{0TSU?f3|y5{XqzV?v(RfdSgMXaD%7kh17I$Z27qMFD;hfi~ttebJ0gg${YOP${3AKr?*$)@vvqU`rCrmIk6PAbL5asbmhdm|p z1ZS=W^SRKV)w3HXo6R~)m(hDuia%V4O&4eQ`*gVU{RHahzc!5p0{uiT?|Ro52M8;< z)M=2h+dp*A`Bvmz=FVLBv^t}Z8Ze>-vJ-*n!H(#++znA*@UiI&K>*xB&_9mKkd6n9 z{*vFDMKBVjPCpq#Mxbn!g+)-c@u@p#)#ulAv^t{A+vLFQFe%=9ywjcrlB#mS_$K2V}9 zpuRgvW5;uP+62h9wb+ZF4lHmNW^`|pyJH@hzQ3PmixKTJy8gDX^5zu_tl$3N&wm_ZTbD(GvrL?X8XET_W{l)-DkC9}Wsvl)Ti(qPH|5h(jN};a z=RyoS7pUJ>XkT5)_Q)ft`jWBsLGW;Sx?6RJV~Sr`my}-}zOuB>p_|n+IT}JW_+)~) z6LeJq({%}P^9P{exWpj0N*|y4?u+395H_VfsJs+#*}XaPnhcI4e9AhVK2i%_8jXUr z#ZC$N1i{axO+0H+FNl?N2s|2OO|7iWQ}0<8NcCKQ(_aSsLdzSK&_}UbviN7l=K$L; zS*nNnJ=0qX<6>OcDSpoAG`bfuX95{V&iR6?o$5N6%u3y-9U1-Y;@06CF~{3$41uc~ zY8%)e%rf|g^5f)A?%Q_OkAg)N$Gbm>L^eV>Kl{t>?IRSLt^GM)UJlm4m5vr@zzs8t zwVgxsjavdo+RH_DUhPq~<=-vLvZmv{(6T?znj2;xl%M%FU zsSP^q-1tOg+nGnD4rFPkvd6hu3vaDVbhfOIAh7d6-{m=8;1!yMp}c7`)zmh=7$S) zaw9xI-|eLWhh*!Kkian)pTSb|aKll!=b>ZR%fDU&Mj5ha&iqW3NsPWwr0QmJ;kh(? zYeUib^rK5}V$ULKi!TEytja7=I&E?iS`6DshqT!;0MJcohshjTlL=`FJ9OKX5H6AN zKXof6-@U6Dv(EvSK$Ed;;Sv^ax20A4ZS|CC2}lx!7PM4A%?a3J zWEO%Rh&0s<2t2j`Lw%!nYj{=bIFht}4EZCf#h3>Ni$>Yh0gm4`xO_eTC|^)*QsDZ;OOFHx+QvLwT5T})**SQkRx|Aiq= zaDF&p5h@{b+5OS|w`pK#yIR1QF}#e#IPhQI(~ufTP1br*IhxdMYEb5bvno5>hDNXo zOOh`@x3gI_M#x4~Qn^*_JdzwmQTnB(zt6Int0i$F8wz$BCpT(Qsmhs1;Ltcw?SuarS(a-<-b3pr9?PLF??UG==TvaFWqV( z6J7RzsEPNWOD-)262X}HApk$9x4b(u!KIQ2)`l#x{m3EyLvG)kH{3F7<5AlgEV=hEeCJx9Wq{}`4bg63n%zadfT)scH)6rCokCs z-i<2wYg;o9ff}|HZv9Y^s!b4?OpR;I!3~yB8h69|q(60_) z7}1nNIP5uIr>^f?HI6h}CB8Kc$ma}qI>XwVi+ZR_%Dg27k&cn+YyZ$E6f>WoNbcmy zG6b3zj;Mq^*lIi!Z3OrqY2=ipg;;XwAblb)+0AzU9rYS^L<(Q*Ydx| zEE;Za{Hkeqq{eZZzHD*f&9;zhYr?1R@H3Q4V!D^#$4tM*8iM_#s*8=6e}hfzgH{lk zVU_-6w8F97Xvh*GglUp)R9xJ@r^3QqO0WQg-9>ghd~5k0&XFqO*#v!ZnJkl3@rEdH z=|2WZ=>0n-hkga~rM1b3eg)fmOD6;4CmTSjZDv)Vg@n&VSN5m$TW+j9tR3= zd2jMyB@mib@vT&AH7?6`Fkex+efzXiUEqY0M&;99%n8wR;1W>uZ5osW|I(DF@@F-# zU&HTt_1aBJ)!8pwOM6e@*JYe+c_iVu^Fao9c|F$j{;W^l+`I8>1UA%YTg2>fw_&m%`L$fstpsi}#g%-~R}e7L+Hy1qU>GJjU|BctNw3zFqm4)zby z55&GaB{}TrJ9^>~9=xLN{itnP_@;g3@+??f$xd88R3R*T3?Ayk+9)-lQ1#?Z{kP<^ z7rbbWI`O|#`U)?XAl`R0a&&Nc71f|k{29Qd-P-iwLxA?)xPFTW%jH$PQo`~py0uJ= zW)O7do%&6zn0;C$$@fIgGy0x=95$=%5@OamJvS!uWzNmdeKwA>-m|L@vZij2K@im= z&Dtrc@amK1*p+RHy>Joe{@%+wW zwD_^cMD?D^($r$ZVZ8}q*yA{8e7)(L&<58?D_8Ypk(arI(vHCED4E|<>>sS3DSSX$ zCe6#YiLTu+rsRM7V-2wzwO!pAhx-OqC>bFDkl?`afjz|D9|U=?u|T8h(6Wu=^5+*{ zGZ}nD{{Gw97yq(Z@oDqwns>5s3>f6|YglS&h0Et3Y9B7`QmK+b^xdCV#}nnMGHLj3 z0CulsV#QgnYC?M@xja*>nD5o|y1faZ`In;4MIU!R@sha;j^C_|@%D_nSI@AfL!j!C zf7v`(pNqjFgYM_5UFfyt<#AhN z6^4@6&PS@amvAYK=VZ}*YdsjDYg?fgL^)HMNK7n#o)EOUYlvGh%CT)s&gySS`ldGv zczCr}LSME!bIZw2@%noyUeOC&k*`2HilFh#43Kp<>qf`cKHN8O+`{$SQN11jH#m;K z6xoHx)W;~B!WAK31fca=rdQ_zzJp`;{%O`0X@O2umj&h9d$Qa7iE}LE>AYLH5$6=@ zTT7}BBl;1+E`}bTj5mZmEr5_)~q}w-gq|>T5>ks{G!gl3yE_g$~^<(;u71Fj!o%* z*}8pYVp3CKN7bup)g$=4H4nvGqc2w{Oqs&r14N@Nj!4JWL}|9@TVKznO+@OWbjwjK z952Ay+$OncqN)&`(u89=N`H06zZCW2oJE=35G@r{(mXQWL$}yJMkl0d4;cYVHSc=d zmtCVq8J+ngVesFN4oB^AzRj6(u5Dgz?mV?uf=G)c9c|LkEK_KhuviAdjp*}$1ez`UA>f!WKvbxC871aT`iN$Sp2Lh zW&W!=r3UnGp|F1zwjgIttZOynoc8KMS2k0-+iMbqJJ`kHAV)uy1uvjNQw~LT5HJ=d zsI~v*UpDA~Rdmz?4!7@dg#s3)|4AsUTb3IsI3gw^Pvg9ZxKx9l8+sykBVc&O(t-On zv-~*4*g$5oxw3z)xt@k1hOFI>_f0$lLWVeOAck|VX6wWuMy&#hTgB^fp01y5-|olC z_ay;CYBh1~H9c7-gWxR%Rf$fg5O4>t^Sy|NX%1zvee2S3Z!1g_6f)}r!fcWKF_v*J zQ}K#emI%V~q*)Qy8fC6U3*#QN z$EEn`9qd~V7X3Px>e6#L-Rm(!cI)nHXxWKXZN&xG*$jDu!MHSp0D0tCWoL4v&YgY>eOUj;hFHCGS6P;LKQ0Q zSD5bj#RF^d8o8@bJE~G<z?Y zzTkZ$1#-y*+H6(Uj{?Erc1x=Ybu7f9Lgp*z*iu#fDvo@Jr0)7HtT|{|BG}Vke{@Vt zVw>34Y|sQo{cA}7&=Hfm`98NHAEsxIJ3y0TW1eB)aXGU!75iwM;CXaygS(KU&5%Wb zi-8_JtuDnB*=xBl?4U7tzoNfvpvKJ%y*vMPov|5^NE#RKeV~{818{ud)A!fSji35w ze(p@*xgvIX7KYL3u$TuerAxkJ=e$M-g$ z1ViS%W0b3H9R5kIPEE3()}vc8T@N%D$u)n<4dQ`5X{1PPp+qgC=6E{#7~FbHsAbA$N`c$g50YmPDhJn^dmp{*-p+XrBn+) z>S7#$+Zx?(-i*nKx+&-D^h8C;#V!xX^MCiyn;Lyqwee0!^GL4Ad?QUqs9SI+`=|8x zN^IS$*di1SEBp8Tjsm!rhPtb9048F)U7CKX-A;Q?#CwGp(BODLd8ML}zKI zASy)J#pj@jAe85!-Y0Qo!uqAcUaIP&*0Zwj$)_H&-|6Xd)U~Wg2Csz)s-3^ae#p>{ zgXt+UAA+NuYQhtu|DbF!X~Q71vcvmL**^4q1|2c{OH1E% zHby%|S3u~|i*Jd2Qjap7eB933jN-+#?-|88@H{8SWy+^#;79dgw2_wZu`SmrQPZ5t zB?GTYCVUBN3?V9{(pYRKxAmv|N6*&n5-Y52V0MowN3!LUdTJTuJZ(7C>06X5GM=@g z(GPTJeE2${NBbqg=hMpmgk95JEjPJ&K@MLPb9*^z#DvY)d~)m@>CiO~3${?NlHlX_ zaN!W!V0HMz`jvKwCiYjzEwaGLzFoB!oz1*MzPlr(H|N&0|AU& zBIgLf%XxRqNR3c*k!=q-GqtDTqrx}sP01h5`$7nz4J$wIi$-PV^DdJ;BQ5cPTXI7s z>+vZL%-uEBKa(*M9};$k z-`Y%QQU9F5RdYcD@lJWSB`<4ZV{b3=Xx$)xQn$2H97uGiw#niQ`v8UI_Mw$Bg}GB= z=SFEU`p9jVz3kF$!YZcf>F1{BWfN@<_Yba=rg~IpAwdG)T7fi>uOCI!dOX^cLt~tU%@-)%>h&EW);0xKK4re>Nc4#FYedG&fj+F78=LpX|1XX28QLl z|NeWk^4g^j6_;yMy1MMoNL1!~5ZrMFh@umr}>0td*=YW4+HpHdF zqaIvItkLC(Ha!JTseh9-6scp#vD}*0EdF+%#iIVp_7QKmdT^_}HM2{e`*=-a1eczl zCqd6&d(j8!w9eMf7_mq#;rlG*%ij++tjIx?&wmzhR7QGFR zn36!j`cYiJntgb&eeX>W!tdX%JE!KTvHsa$(E=65Bdxyi&#hsRsnY@3+oWbyzB?hK z?&0Ny;~!m9Ua(6eW>V>b?ykTk;2oMEZ-wBk9UN{8PbAw;EF64| z;WuE<$<&VB+oIBKCNBMV)gk?J%7vsPAi-R$~Hz8f6SWg{ycXRV!5)ZQSrQ_1#8mzAW zJ_8_f>VYr6DP7TT z@M0*X4s26l8mWwzu-a1XAlfPpu7wg&e#6oJ4uXp@N?_A~*Rpa_u)Vzso&;O6p^IFG zKi`Omi-Vk3J6bV=*Y=UKP(%3?Kui;5VVIevEGX%_Z>5laNMAOG+RaWaZ4&awD0^71 z4<_kUa`)yTi8dLm&JYU%M;B$>R`Fr+V>YV%ibRAns25^*erAySGH>dB1)3-%?U(fU zooYI_fCjdVC@&6vs)H$*e#ovJIhLSjkTv|NHp6hEM48AymMzPs*X$4)ZZ=ws9~(&o zZG_UWqnsVLEZ)gQG$r?!N;O!1;4{;CB1CW#D3a#zxKj4Tte%`c%=30Z(_H!CWrVj* z%8eL9T!B1oXG9SKVBY!I+BqOe9k5oIlusqC5Imf#4;2RRS{w5TKILL3gVPB2KbGfg zRR$KcD$yTamh2lr;K}r{=dL&1pw4j>k2gggb2>RhCDl9-*k)r_=d`7{({T3#7!e%aH= zK+k%2uFhhl-wkt2sr=a5lO55B1YS4B=`~UTmZ&9Kw*K@oddEfInGR6!66}iJA%3aa zF&5kPnq2rNWi^09z=*&2+yW#iHffTg6lPhrIJ z6H$Ji1amK{@8gfHQ!^%2e5q-vA(>!;cM6Pde8>#+65&RL3S@f1RQeQ_J+FiRd0Ssk zz4`NojX}HaO*f~p88c@uOYZ3Bc0ljW(Kxu8mbK6HzS-~NZ1`c1#BCyR*j8ME3{;uE zduwW~OtGpMO*Mf#0Z4YE77)9YgoDoM4Xc)VkH^QoTI_8V-K=7|rS3z^@u0fe_jcm% z3pYoh%2hS7QtecqEwz`&*}&{wGM1CPZm^pQ>|dq$}!`5Gfh5EXL4Lh z;CQTG0fIfZqPPbYNU7~5N9c_Gc7$taA%soOV7=vf{JgGD_nMWB5 zAgu%|jrURz;+$iD+2l#1`d7ZdP;VKZDJfEOnPR^Fq%{%AbmrtsPX+oDk9zg`^ims} z2OKT13`@lHjc*}s5z&@?B@%OS9j7q^m8~q~Vw4E$I9wWTmWJ$^*&3|hUYtj!sFp>g zz5Y6n#ysirZH}*aDpZx}p7FS4L@?`NU5azc5}b0qw(i`{X(|NB1-f&bJ`=H(m%as|J)Vk-I&ZT7!Y9YCTw}i45UswKycA7Di%{n&^fdK)E zJezp9p`M69ffd}zm1JOOG$`CspVHa687}uiK!(cx@UDMnXy@v(W#02s(*e)oUy{Ge zd`oxO_Xl5fiimo8#h^e@zM|4QKFBDxf}OtOfExC#bHAdHJ}MciX69OL)w=F}V6VLg z+y#SL<_u_(UihO&nHjyX%sbr4ETV zX@A&VKJ~uiMOG!u8=f)IAFMGhSG1pL>z0KRbHC$z7dDCpUcp_p79si=!qJL#L4m=` zyNR6E%y>0rWQmZ~qvR9-QhT2(E`#!AN)}Shz-McnKMQztW$Ym~N>RQLG#Ds<*+*bs zd9k6|_jYe>MBu(fGQ*hoCx;Y2Z+~fE_^vH5Mq*WF@4kQkJ*c>SKiYP6KS)&5jj`b)(}#ZXP()b z&sjCY)9K^EyoIPsr^5O-Q2=P;7??|?&IBc>=vdH{%W6=Y*s3qf!->J8Za&9ShQd^N zb>r;I4uyC{>x zGs5=-3Qb6_6jVsoT$NQiL-hMs^o&wy20n|O-tH$%28w>5Ec(R_f0K*%zhdC^J=;nH zAnP^0=?^8z*^vC@+(NvlW=8cDrTtfCs|DY{@Vo0a?ghPyx&wSb$vbbl9j;J!xZ)MH${Su~rQh6n&TKIc(eOyi!2=ew?)vJ!ENTML}{m zmdx~D>^_nR(xXxl?(pUHUdlGhiK*xBjt47@9z>S7vSxbhl?OTxlOG2A1_yUInzSn2 z?|bD4aKwc=ZZ!fBYDTx!y|Ye?v#?2E7D<7Nj1ziOkXC1 zDr_2}AW6^@rF9(bDBBArZMl>Jd=tg~gMMGbiZ|V2Lif%!S?3#tJUQNP2K_B8?H+!2 zSZWY^^=?Oq3CtJq>M23HTYjI!HIBkv$;ov;w$#)m;i8w3@*4wrFOPG%$-y-H(%3<` zM5{h38r-Lt)Xi8?)Yf;k1axfjullF--DOTPcv^LD)Fm~y#rk=t&tik+(50Dkf7!^v zOT#6BTu`MliM%@q^=#cpU`40)nXmTPMkfBDdvQWdcj(j~H~ZB^jO!VY5A*kyz! zR58x{ozm{T_FA_~(P-0P6mHRnnkksOGH#f@CejO1H?wZ>rTD{vRY7qSXP)Ab<`<3R z8BiAIjl8(tbluXVj0vv2a%bJ)`id**);kaT?>x22P905I60vuWM%ndd(9rPf6+lFV z+1CkVcwpxqUeBsWf!f`oI!TYr7&J`vmW+Pr{I3I7t{?N=0*Ys1Ocluy?)RH{HzHs- zt>&BvX4;%c8X5(}!gdL`-JtPMiPeEP^-F`XsCX5drws=-U}u z^>{_)$Tj|UvCjK+>2Um2o`f)S(9%~a_Qt*0vWt@5SzS(kIjNLsuVLz%>(1zl#sQMq zex*?Y+Ka3Q4XsL{R3ECF43*u(Ik@=Brz8B$9qxZ& z@CD5h>Rc{Y7O0jf`d1aL3|U(M4}>w3gQV^NznQ?L6xiaJ9WD6yBvZyi&9tK1=M6T~ z!m8+3t)A1A6(hEHZ0_9c+n3p&OS`xvD`vheo_%NBP&wo2%T>G!0d)Z65$@GF*6=;s z8=qR=kYN~rhZ)1Xq(Hwb{dm-3c>;?EJ7wEy&w$16dYtX!B#+RcUr;a0H33$oz)~aN z#(Oi>I)3a17nicgVNuYPOJ*yYG*7qezQAkI&*Nx_G?{8s4 zk#At(I=^d*ipDy1U$s~r9`ac_81I)%!7IuU+Wl83)~-dD9B21GnGW;5iB6M!GIsX* zH&srhiHf9$yqA&SK1}uy=1C}oU9oRvJP~UgL&Hg!VHlExkxY<^aiW}{g@WyDaiHqT z$T59<+`f)%1?wq#(o%yoskt(G`-%9e?i(r5^F0o&?w>_5KZ?%=mZ%5as#;P8CS=Br z(t>>wW%bRriK{D2&U^fmlc-xc1jeu=XacwFJ6Dxld+^>~!fLx$-?la|-_4>H)Z}*Q zX4U&fzW3}=37TMUckT0}Yt?2ko=6^wF_@5W;NKE%uT}U{MW(5km*x+WTsB9qjx)>T zeMVMCWW*!halh^N_PjJXSDV+Wbnn@RyA>Q$jxT+tvi6Hpe4-4|VP{(RN5--eq=^m}Zn=qK?NO*CoHMEC0;mSPGMVT91GDwJ=*r z_om*}y%OB098q|yH0I)^%a~oQXDi`NQ)$@b9~z#FR9w{e#?RFqc1SDR9*vz$0-8}| zLS#8pt1TF9Vq%QGB1#M~Hh6E+4iDVj9K^bh{~@$4xU498-AE?rIwm~E)zph*pR=41 zMb-)Ne&j}c(RNQ8Ce1PcV~PN|7Im@oY9flhv6-FbqJ*}i5f)Z3{?!EE<<}=;gL6Jx zVs>;FSC)5F?-s!QU%|)83K@K9b>&}_{GHoYSIex^1z`k?5MggjBR0In0l$QM1CqDU z*u~6K&`sN^%Y&)q6iE#&ibrv{RLM1jgjaIKmH;2kAtD9HHlAP~#QESAm5)@BU#&Q&XTlt9ss3D=U&5>+qg0JK*xYJwf1-m!4d9#W_CLH9_C7`W86gklMv>jFWUOp?3@4 zF8vv-Ks%5$qxDS{yDE%6rQWvAUVAurGW;M#mQQl6I4PR;9H% zsx%$ozyY;^V2IC_(cRb48JxD&hKht@oF5-4Sd+kIGL6U18Smi+sW#mw67=jyoBpjQ9R|xYbw_gb2a|S(a!!WpgjSz@U%>JwFa0m8 z5pYp}TY%9Ez{#>$ubAWMptw?nb)83Putqi8pn<(6^Ql|S9jiMK65c`w!Lex+U#zJ% z9=0i+k*#pNjJ8kpa4d2Gt+$R9OO=+DUl0!Qg!KIIY`7*S<|Xy`0_V-l^D^4!r+cif z=v)$xtIo;j$#$O@5ApEzVS3nJjj?L||3pJ1Zh6~{EY}kxP+G|JFF#K1TItB$3jsfU zkf8O?Du?I(`=|u3DszF&In_4Z+Ne_{N%fk5vJ}m#G+~okhQ)|ME^;)>szpCc(u58b z%83x6(jIcBf^GBb@pdEi^Lp^#0Ht58`xd42M5CN#37Bw z=!)C7MR23^K~-_Zj9pmw(>6K{N7-h?KjxGzr&gY6XI`UgKO6Wnma;OKbo%ARsb0j+ z!%xK~cN1VCy*iSC$l2A5Xm!e_5^UP@2JA+Y`~n^yEY8X+J;EaO!oR)psI{z)V-x!- z7ChZ)>yW1MZNJ&i>W0GEpJr{60AyqYl4m4t!oI1v?D41$>!jaWJc!n#D2kimF3L_r zkLr{zhgwka%QrBgMUd-{6>32KoT-d%&JX{^A(GBNv1!+Jep~A+svz0JLL63Ti45ue ze0dOPuj7kxIuU-OnIVDHaOw92peZBAm~ocvX7BMwqyL<)B9PxgbRk|<Rt?N=w zNlLGe+^+GatxQ>I?!362*{Wz7F_)ghz!9i4pJgbdzT8}@p{tj-2l$tbKDbx6XI&da zI;4(1vbCUV1DrT%JPmNI*q&^e^10g?itoAJY&|i?&%cu;#>}8Uw>FB9XLF4Aii)t? zL6{DEe^UIyZ@35sD%=aF8@dyo4hGR|E9`Ika~^dWHvVNZi+klZ|D@yP=V$l?c^9Rp z0NKci!hqiUmhqMy!9x4CtN8?`Kj|nPdx$jsB!K=|f<-`kGWwZ=B$74QK<%VhaNp@A zWyi(o_2YymFD)EGA{E5Y4>$w{cuux@9HO6}i`N!H>zSmQ9WV4|X{dtq@82ek}h-xOp2XDQK8|ym%mrZ};)nQnN_(}f2vXHTO?9XqXq?H>WNvP|H zjz`Zf=YA+Dw?AFtt%v(T6DZlw_6(tM?~QE}frqGSyEqMD$vAt}G7XpFgvw=tMg1}) zaM6nzpb77`3m(ro6e&AZ>Xc1|m?wkT)v=Lr>l192TI{HC0&wN=Wj(N3QK={yWko5c zh7IZ+8o0LjqP&**08kes6RuxtmHXzJ6EIISX`z4!-wqYqX(syB$$ecfEi8>LG2~x1 zw(eA`LHI*G)V!n~L?Mz_-@ZGen<6F*-M`AXG91xU(-7E8b(Wt+``$^4nTtOxL)oEO z30cB9Q})=DzibZ0cPelJ-Af}mVG2z-GQ4EEX^Z#pqiMc~>k`h)z}K$KzPP)m=4YQ)nXUZMN7dcc5II>BoRW zR`A=f9}5YI0)m=waO%rdH6oPBbb0CQd!g@|M`m21>qlKh?XE|fy^T7V)6T_;aph@t zX^mXkN7<>Qro9zxO_!L7=gD2umJYm5ogQ-(uTK|cO)l)`Sx0?>_R>ySkKtZ^oyLkU z9%Lva*nU+QHTtK-*{hg+^sZWI(R2!mOVBTkpV)vx*B@@T5PNDwWrBzr@zu>xfbG5q zy^kRgqF!PvCQXOD5b=XP^}L@BShu#|eEB`8{&KOD38GU$wstjoDzwT5Rx+C@KN3GS z?hA))5BJtb7uPGr*(y~G=EQv1GsPA!tgamVWs@Lm`6w%{pKEOS0MTC_q7?U%axR8b z6t$PQN{KmVdW607Iknqdx7g0{dRnQ&26CHgEb`?2l|*4hjA8BmZYwNlt(!joV!+8n z#Jr5lM74X-FY_e^PVWwM-$~9Z50NHEv_jfsqPF-I0sG}yIyZzf1dVTY4~)bQBa>>& z-_14DD2KYqYhCtDMT)pm7Y6|X8B}$@Lq*qaXYVo%*t-^0O3oBMdtsY`EAZl1onjrM zAS5{XDtNQXGW_e)o%2c(H2VbxUuCeWa^19BefN}FD=*%^W{Z_+0Ew7a^f8yPEy2~* z#}2jibGR+h&6KnX@*nd?lloXpxGHNo(n4akTshJXIadJ<`V{5!LykziD2)4PW2-=3 zGm09RwnP$c(3k2iImhT{2IJzHCD#iS_)Ix;i%3n?3AfK#=N#bf)F#TA2foNIaS%UV zR9&skD@adOvq9YcY>u=r$;g~FVSG#>Wr_uon0ELbkCo$@^)>yLAz#&NHv&+*?}v7B zmKT}KHSC1~ASIis3SYyLsub#z-}2&Q65oz;@-SjwiJy^mB!))uPH#wCCRTS!r3IQ_ zHk$%@eP2V4=Vqj&29;nz_wPr?OIRmG-7(J8Q`Xz2!B%i%R`#~E#2Snm1gXJF*J`^; zt@S)+$LW)OXs$|WRlW9PU8`Zu3h2vca$4V5M2x&4@mrXpy3w8ZovqPOjnQRHc?{3*|)ZA#m7*pA^I!(WvMenrgq>o7LWVy=+_%; zLjz~8zqjg}*9wDTH6<1f9x}i|l^=1njy$I}AEeTe=x^iRIOmvhk4ax{ZYKBp9AgF>$>vtG35nQ_4e&z6;u zjc*>J)4Z}AznheVuT*_YNmn#5OgD=!p}-6lX zM&z>Qut}R{7Y=oBWhr7)v{xUcpH`l{D^`6+T6U@=*)hi}s)URij9y z#bBDPdx0oB+8HBLa1PhP`1QJRmKr;$-le7?z10O9tF`BS} z=N$%bnBhkJn3t8tfSe?$$LF#d%+o%p7rd?cl&}aXSr|5yI&$I4(0o1Mrk$! ztGl6c%aoj#!8~Gjm#j2F6+d-~$ktZc1LHJ>LrA8b{dMf0!}4VdmZk%-@NMD1qRe}j zT{U)p9?LnwIqp^l`7)D0Uz&SD4K~wjDiADAP)KIP`VaKR6vwv?nY0b$UB;>B3L9f9 z)xiK0Mt#iE5*58Yx64Q-7s{`oFz}1s#3%i%R(ZBx2Elf0(iQ>rHwsZ&FNkMNB1`l~ zgK~k7aXuqhkgPEtLR5wFUp?G^luZLp_Ona-CLzr1g(VW^zM;O4X#{_08|`2J^6I4& zj$8JEHc4QywSK8CY5>*JArFxB+njS{Bp_n{eG4;gwWuOh`oJy90KheaJqC4`8O%aW zF27pW_=H@b=()hpefAoNF8h9^Rx$OI5u#no!8}9$>SBEH+s+0yFy^0bDJ2eZosY#) zt+w5VYVsG2OD7yq#!;D2pGz;ZXnKd%+Uv z$Ys=NEwo)%umh~?XEbu_;cWqdr1$(qB4@aQeSMN1vUPGjhiz3*$`at2x0MFsY&^JJ zxJE%aplV1(*ae?T6$!&JsL;W977|Hs&Owk)Mw9-uvUtBQA%~Dq;GR*cK6!q)loT~^ zY4s7-za4DatMHKfgVoDdAwPwb-WV%L`5m2vGS>}oJi{0((>4M*%~h*e&z_!^TQx(0 z2*QC(y{_SZRm@q+bO(dWC8X?#k`z+)kQ=7oDKrqmM9*x}6W6zlHm)3Z#rWEaGMZ#Y z3GpSPKP&8X0zKz7$&)r{WXTQH@!mk(j71{^k=)DG?X|um;160D=E|_F@YRWmCE#z&zq_nuEke8nS z6C6yG3#zW0K?}E?+*==QOFX^LeWHaU+Jamj|9XD?#>p=4T!RHE)A;aJ)!wMd5B>hb z#>X}f?5hTp%GlEwf9|4$JLuRnb+jwaaIB2a3+QKH&ZXnWC=McyJ=<6x^Ajc6ID2MG z!c9E#Z=j&c@C{87B#+l3k8tVILEgljf=Dr+bGVHGlqUvy@DcK8{HF-f@^gw1_*4&i zf~?2=HhR$MrK6OLT;cMf%qxpKN&a;L9{3=Rh)v~sMLV30NhHvH14=5StPzJ=G_;Lz4N12W|n5N`kxF&alUIC zt%$0KM9MSGUn$%(2FjF7m}`&LTBF*oCT?jMOvEzH!8iHKAl z3m`Wnr>Y&NX;nBi!`ATHvUs!u#i8j>WEC76lnDnI-OGZ#l_MM);>~Z5XtJJU203QXfk6McTqJ(h^$ki z!P4rU_PMc;;?I#B=WkxIkSh~D{39CUX|2dZT{3|}GFX4m`<8!-cMaD4Be0Tx^m4lX zvfW_1t<2*yjYCb_sKU{1Q}s@Li+*zBJUak{!oyn_&mjBj&m0?MGA}X@4DMgCzw~@K z10nh5e4e%WIu_ASGst}-uxDE}UOU(|{pNE3;alnY7bk1I$zMZhf)>SNN-h3blgJ$l z2>!nK#?^nOV*AA@iw)dB^ zo8Hu#RZB1(ic*Pl)h_Ymfz|n^%;v<|+^b;_2giI7szTX+1Q_r0VAb*>7KL1^4V#@N zahdHo1QR&iw%a!$vEY3Z8K=s_4!eVBIzI}+wh&VI;jC`fe9Ef1>8|j%2BPdE-H|!n zCTxI-o@2PE6n~J2vr-qZyfsR3B={wR4t8?!5mQ%y!w!}KmH`JrmDK%;zZ*HkLBUjRJ_ zupL_tYXVT<;IYAi&{0qoE$5%5M%$zWkG-Ijcr@bXK&N(4nH!;-ifs zM3R(@#?D#!tw6D`ZZivgb4T>nAHVB42#6nIIx?O=QMGB!c(TY#l zCG(TJgw~n7oFyJ9QazTEX*vH2)>w~gjSL*D9ZT9bjY0$gQ0Kg+mV0~HkdeS4H(o=Asa z9m1~rc;L{d1tex}-lQyT_b=N3sX6%iF=>xkhwjn#Qgoi4AxX0Ih zdw(i7FK}Axd>-R{XRTzg`#{#?p{19fn<^>;tp;*N8#mi>Hxbl>w5h(63};4@DA|m< z>ocB#PYr^?#j#^6$9|&sufbAOD2CqrFZ`_oGv%`>Koa9Irp;Xy|HCTM@Ecg z2+TjNWCqO$O&xC@O@#a4&=02_3?wAdg?)F6kn@i8@t_sLO-zK@j~3TYrUYlr)h&3c z(|<*Yv`F0wFn zbbN(mku(0*_rH|~0TDs+IRdY@e7)5$_cKpwN}&EJ3BS7iMGfrZR?GCSGTg%~rrg9CHHt;MdT1OYU_X9pq-@7#Xs{;@ae3IJsG7`plUrmDos z*WVxJ=TsvCq^~+%Nz6fhZzwMp5f~p+m9HHP-Su1ZFC-~Z((|mhydcWz*u5%dDGJgd z39)Pv7}4f;EBf%#51jHud|)>b_Lq%UFZRvwXA6; z{u8~{R9XcE>K%fG3BybZ$gK*$Lx5bjxdNNn`#f0li}=y{MPo5fFHo&B!R-`oU<&W5 z^*ye3sIpr`&ua@Luy$(*T_4ZVIZ9OiVC>2juh-MY=Malq`*x!VCnYzn0wN!YwHYQ` z*_m;E=Xh4R*`=^3_eD)CP^|CjZ9cfDbeZZ_>|jP@YAcFiO*?PS$LoUo zr)R$!$dw}HWc1Nn;#x>vCHs!{jToCGue6-l=8SrRx_E8SQFY#@b9y}zAlRYp0tVHh zzq4;|*-^*-W2o-sDcxv*{8CeNV-(-@(s^TiVB#KZ@Sj|1u#Gh=B!#d_sn0<{vV2L6 z#q;n9fQ2!mjzAc9aTzzTPfeZFo%q}(yD8!J*xx+#YoC2jw_iXXGEH@J>2fVs@9C*D z3yP^3QxECy-|yneM0l`{idbYtCWV_(t^6;+I&SVkz5wv4!)vgn~Y(f?!rCm}E z*neBMLU1Ggr9yTnrMEo+#rce9wfC&ZT_lYbwawFWO+1#%$2CfXQr6F-lCpdcVM1D~ z9WBka2Wi~osjOjmK}*SgV2JOq2ab7PrfHWz`mv>*F8Ycs;8m>OYs;JLkIDn}Vjn-a zUhwqCS;s5gX`V_kn|n}dXu(S?#D8#7`!8F%RUNtPVvh)E_%EAcOE~Ch`;Kv;D!l$J zrJuZ_A9w!W_=n~e|B4N^)~fbM)wXX$Xln`N+tz2ukZxZbD!a{UxNDDYEfFMWtGj%y z#wdT$YBh9Y2}WoXv4UHm9bt_T1Ek6}KCIt=Hm@MF`U-@XF`VNO#F63Wd3iEG(bXTu z_s)whIRhoN{E-C6Dh&nOwjM7wA?IIBqo;a)q?+idhwJ-!;4oF;e}|6;k^)h;ygCp9 zuAR@w=i-f9xg=}F%N;*4PAkhkyuwNqCnnp?%wXD}Zm;h&8g^~4e6cKb7=d05hnf0k zr;sqmtnbZU^D*xW)5iMx*8U2u`_hpySK_|+T!1=Q>_=J7Nhw4+Db3b`ugX-p&4^AU z*4F9y+v384?NP?7_Du!E3#)j)ZEJ`Yi9%(Dk5~SfPe3}ZcJFp13E06Z(jTR#rzI*X zo3xeAKIDzL>mrK25ign?7nqj&b{ONF16lTAj_l(7gL}aSwXBOb0UD-v{N+h_bsooZ zPRi+v!$&DW zg09Q=T)P7$4g|+Yl7nMG#7TNvzRyMSr6$Uq{ntO@+V}-T3nVjf`o-@fh?P1?9e|%* z<{$UKa@p{e#S+}I)96aCtt$UF&kPJLVL+6rF*>%~0$D?5+5F@tulC|^sD1vn-Fsi8 z*xXt5!W*9bG32a3xa1j{U=dW2l^{V~!nHiq$CZ(wt*0(%Ize^vC%B&EyG59-!h?9m zp9q?An9yv$x286IYzj2~%7GF&>psi<8eFZ09X=64m#8yGmSLafqAqVGmJhqcT_4^i}e z*pQ%zCUA)#JEksKi|+skp&KWACG5;cL4Vl<=Sdjxl`QKys`5<0Y-39QtmV)IwYJ0i z4yq#ljcN(oU0GeCl|T16v(v+AD3zx~s20i^{0Be0%vz0l5QuY8=?W9ai{g1}?zE@U&eoR+UFf!RXB+%=#xHX>7HsYNyeWGe5VEH za1uO^1i9k&_sjTL?p+qx^4)NtZBEJ@i8>sl?nCe!kwm5p_bPw}yKpa2-+p|$`rPR) z9e&CG6gT66)|Z(Ha|gD~bb!>Zs8=bIA2O;BDZ*xxsllU=F)U+HMXodl!3;%XLTQH! z2T*uAG9`ew)qV4O=px`L8{vJ($|ZK4_Z)97a%eK`_ygC+hGDWM!&HCrLFp=b4!=kr zZ?)>mNV{uo65HepuTDhLPC{3z8u8nh&tZ@Li$k5-di3O8u%79_o5v!SZH%tWyD@0o zjN1p)W}zm0ZPWgGjgqB7+@j76J>1G-|0aB#DHx149aLS0>$G>RcUpbvXnan|@!$Ox zR0as9agFLA_=hucNyDGIbeqakE&f|`m@t^fr6^x)_4;mq0j?ZMmOlOL)|7d6^V+HD z1Raa3`LgV>Z59<4lSCx*VNWq~mQ@0wofwQ@!&G^v>ZJ|LrM@h2B2kel$&8##sGf+o zP)4@K1kGRu^anS^ua_qp1 z&FB5jSgECvln(tdGZ4yc_K+qYDhCN}k&m9b`k?U1_t%1-J$@h5nZ~w&*OesVtt}=^ zrxU5YyVSuJ7sERX*4kN9KmQnp=+6MePfxzW){Q)(lzvkf-IKMF-|1^epfD9>#f-Wi zYzdCxJnLIHXR2k|7!!KgufP2PDp7~Ln(A&^VCsQ#6=mknl}&aj>DJMNv_;J{WH+x_ zdEv#a`{b}|@2c)!)y}-G)+UYt%k(+vTr%ZItpJjgp7-vhJDdY`$X`3Rbss3y`s{(lsmhhLHn+lH&Bp0b_gwyfOX z$h~c9qKO+79GMdl&As)h)N&^ZxXpnJksRPaG}A0+InYGK9B58*Vb1sC`xk&8_jRAw zc^!uznpTv}_LNrtP6sg{FAV|yQ8EjM3aIB0*xSyLt`{@0Xc--KHU8o9ik>8QD`~%B z-?u=Np;coqu^Q;+tSr->KK?j`o9xyy%>oRfrwh!h{1ZLbK@t3E`J3S zgog^ee|kW37hdaD>BCF)3l9BN~Wv@y|=)b%fr-y z-AJw9OM834z2V>B)$LChH_doelAaYv&CiS)jI8>;PvFuT6B;;Gm*MoCLK_#~J(jPg zl510+II+6Nm-mS|^igVk+guG)>vbV^QG{yqDJ`w1{Ipo&yVvXQnSS=4&OiFd@7YyF z<7Gu^`H=UOiET{WM5?_;)Mn3e@BYwqdhklIUBl{P05=|Zmw7GgTe>r-LlHf$>@0Be zM#SIKKowUF$(#4HbiCM{5BM#z9&9wT{k*(UrMh7W5hafZTp^5CreC%-m9lv^pT5xa z;#u*V40`VR<+~b>ZmdG*%L^g$_CY%h1$x9?s%9oYp>$1R9tR|-SdZ)W2XHtrJMo8= zob$R6U7l+6fq8_;Us9l3+S2{&x))MUsuEOwH2fD*Fq6`TUnXlJtJxvzD!e}qohp|v z%>&zhdMyO&8$|maxDT=fXWq>*MEndDx|l6`Z$FD4bPxCai5?Ff(BwT92dL)~#oI@a zP!)w6qC!1*UB1M~WMMntY-J^n=ku92CG$tQc(alk6{G;-kN?t@_-1U9{bVX94DMf} z7J2f9=@(TRQ~Ug3pLtb{q}O#}!JE(Cz}*yIi(do1#Klc|IZi9B4%yiK>-_37EnxP~ zc22gjp^EH!qk1E~1lA(#x=sqBp|A_K`I2`Bbc-`xhb(M_c`sZ!pTSgdu!+|j?zF)7 zui5@}pe0V2lz!E|s>karyp{O?5Z%jv6T{hO0#Jd;1SN+jeK8}c2k2}aa42M41K$mtxb4V77_-l8h& zw~%S43lrr2VxE8ZPbaNw7C!K{wz4VD8k`s>%9v;Sy(ts2Kx92*M@rf^HD`m07StLI zTrV9=Vbkwn#%Wd$QuIPOn$Bn4HQXV+IzPTd1`2KxVRQ|DKmDulr9b5>)oH=wT4D`U zqMV+fKh8Yn<;Twh{%C`NT%BCEdDg&oBtZ_}uXg>1vXtx&d`BF8*zHvqXN5WY9^Hsi zxRyV8YC*_f#^;>-X6YnLIN>%oA)KcYVq-JXq0gnpa%997?YZqi2=*lEaGfVe*D>w0 zD}UdFZXXlXlWYgkdsANLc`ZEakJJ{sJ!QxZ@IR@=yF#>FTpFHp}WQN*pN}G}(Zb z-ZGMxi&p=#d7!*j387XqF!33#HqW*MZi)0&j8tU3sBo%_5WAsEG*7BcWmnd_vBZV- z0Qvofml!G%ABa_{zY~uy1^;c3Y-iEc*yN)mA_=5YLTkMl;yBCqUmD@VlZ}7zoOo6< zs;)}n^m9+{5VbFi3#3-}bEQZ{C*%zXn*#iEpD*v?#Opt{uW?2P*0FUcd^;I_ICg@SfGhWe?*4%hAGceitKD>8LYB-h6^2jFaWcaNpbd)tKJ>_Zf!wvQQ zIyKaN-4*Tpk304{Swr#pVeetD*vc@t#Tne+{utyyZxEXrGVB>d298+(IdFcn4>+rC zf5Yf2Vve7R#c$;1&@|Ndl-|=?lx8Myt#SRXoW#2*=it$bakhJFnpo1)Oy={xn%n<7 z0WBX?Hf0*{cZ6E`tzMCR`bhUHy&@d+umQLOXARoh`ykU7cBE!~U(U0WA(qTrdgcmd zwZY>^$#5W0D}bV|bJvJ+qH8-#;qaq1N5<~hlQ1iqpcQ-^)|YnuZ!@yC3zhjAl0Lcw(T+}nBN1NmT{?@g01mt>w_`&Py31` z!kc(5LXb%z7j)GBxV=2(#C;5^&Z6g?SCq7U`s!f)ksr?{psn)fU_{n-JOcfBNNUVa%+ z&{76Sk(HJ0L$A`Ba+>->d^)BtZ)2!b>Yv^vHMOhy4Gp{(+~o=*g*!{gnwUyg#1doh z4jH~+^vc=qAYbpy)1198c0{Sz3q8rtG?~5&=s>xEy{0MK^_`ZSA^B>8Mx=xU+1VPS zEKxeU{W?|b`Ec`mN`#I($6a(2H?iQizi0GCn^!#2Eou4bmA7c=27pBd;d~0L5do)+>jQcw z4;i&7oGa#ymkS-V;wx}7%hyaik4RWHOj;|vIS{U+GktBt{Xgd+FvY+4F@A}xd82{* zyKgzdSQY!yWh)z)G3;H~FrwQp9cTUOV%^6lDaI*r;vS*AcSCX?;|!yEVxbv0%{ox8 zHC%tm(5x0|2pyMnd2=PtvSKG14)D*vJ8%zY{28YeVTjW!(`|;!^-LIbR!52at+;J( zVm2tAcI~h$d$hx}kt1ygmE&gG`kmK);9`G9`a%{upVvD2Lr*Ox}F36C{N8P+Cc1H$s&U@isydUo?!GcK(`yWbo)c(kuspBqegw zlW;r&lBG3a_v7X37G6mAUK>C!YWi9fh$iLOUuUL+R3?h1pkG1A7p{;iJii*xZ;Ycx zWkUfxeNOWUv%m`wG%ZUT)ibarinOm$c`D>teLZ<(YEHwCVNz5}EkF(}^#`N~4tDA* zSVm^QJ#1MBgCmOxQ|v)FWrXV0@Q9&-8(yCoj2VP6JT;RUsW)=A1o@GxapEoaCYykQ zpi_M(;J0M1J1_w?G18V8fuTa_1C1Br<~L?1qSlIrk&oRg+wA-D_zji3YcY2ROp66& zySf80m__@^ynWFz;<3ozVBowZ#w%m$@c7l&2g>M8~Jp(4>G$M3a{l&F3d->s-d2-Ph_+#g!OV|Fm*RSQuFTrDc#Z zSS@gp|70%~%DGr~0>`RpDs|9^d?mc1mlvZ3XhG59qhrn3ipOU(aMGV^6T>%+TuXdH z2yHXNoFw>fhxw*xbE{1NUh;j1PuM6{#3iFb3a_^RWpeAuti0;X&97N+(U!;_Tecik zeI(`9jY6RKL4&z8a7v5RJRHcW)xoCd)wU2GOQ~)MQeQj1i<`6R-X#R`c)Lahkav>} z4vn=pKZ}ieRf}%rei6pdLo)-lo~1c7rQGh|(oTy@&JN98t2P!US)smSHxmOqW z9-Vf}0IC-{#vNZqw>cS`k+n#*JC#d>djxK_#JTl@k*}5oZpH!|z~}Cl;g=0wrH)Oo~MMcHG3y zQt3QY0utFn9l?T;yRALFgaPPyq@Hp27y1NeDq*!UAX~J%ZR}+9s^7Q$ysx>5XR&9f zrB0Cd6a%@;)s}?NkBO&Xz)tgXCO zYJ&P?n}hJgKs`jX7LM9HX>^XHflKj_<6C_WjLRdU_I|2g;GUQQ-S8087q==&Gdbgk z4ccNl@@bARW0?uoNrdUuLat!nR?2OnOq>oc;4I(6M`D;tcrybkbkX;exS zA2u(h;(Va+LT&@|m}MM9ff9Bit4#;+%J-n%5?Eotfg7pi;K|&Yn;qASmSm@l#}|Fy zpJF{y>pFP)-437;2gF{|4}cFRwS}%-M^8;vtrZzP4c~Kwgk8tS`1_#15Qj|&X%|L; zm1ghR7H!`)3cw6|1_hBJLH-V)0Hj+8a;D*5{XYGD0T;wul-5HZFX1Bald9jiv5`1I z+*!||U8fuKL%R-`W^n%$eegGlQtPe)dZb->F9WC6dv13Ozf{zER7L#rOELkudEV}e zSV9DjM5;+)uTHff71v*Ri)E`5p3AHbKd>zIMa7I>?{ZplsPdH7bro?J>M05u^aCPS zWci-@Lo=T}+k=+wsrjZ4%BqIpSqM<;1YKILLbZ_F?y+1W%*)%sC=GcvK|{DAnP+!a zN$3jppL~#Bb=C`N$@QbjcAEGPYc3!6+1h5Z6n$bY5-d2I&C9Ybq|`5btXJ=PcQVCddqeN zYHZtm50APKKAml1Fk5`y&)-l1I)y{DsWcC}4U>*(1*)WZUxzAR*|@Ay>PO=Sg=Mu} z>jvT>G8n1T(SC!{QFB$s)ipxdjrVDpIZi+ytV~VDDxu6Hy4M-YoO@bZN@y;L1M-n} z@CQ5WHa3}W!dF}N+P?fKz8}Z>lB>4s3+*lO)D6Vtbyg11yM2-VLJq4b^sDUQ&z6!| zvY!;aJ&G^q;0;5#0KT1I;d;E9pt(0kt0Yl}z-&UA{}u=3p&$!)`InU<>PMPrxkGO_ zl{jRBdtDF=xjrRrUz_lK0JE$v>+Ykw@aQ8n)XYVA@4`Zo{(H*V#|I?S9I=5BK%_%| zk5UeZq3}0Uw${k1ctUTQLA!Ztum>=?GIbn|WV-CE^%Dcb1^3n7q>$WY=mjat#HmmNN4D~eu1@Sz*rm>0VT-+Y<{KAt9kGlX+pmW?YoGHZ-> z9c9eh12+xJ-RyIUtGM8V0DH6H{`yOjEVUB3?KWySvdGLW+h;0rA@AG7w?7B@cV1UT0wH2@O|4V#G& zB1_UDdq;XFU?_pf%x*?f##fL@9?n}bJuQ{9vPM@x>Yroan-$yUc@UNvXGL|UzcMvD zriOw5`K)vEmpr;96mFBz^|4M2;^XVWAs4F zi%4#mXo;w{Y5F*X;j|rVs~|wB9U+(G9XL`Z@Vd*_KE%u^QHjNXYy3rbiuJ8;IWb`8 z8$BwXqLOq_=t+6FUO@I+>u?ET5e?~4-du1AnwFHS@oVNvV6V5Wkv@hnUcN$nxPM45 zB}PlKT~~w1yi#dPz5eA4&){sU@@$Q4;8XM+GWwXd)phsvz?7hTV`qu?M#ctrrzt9r zC$@}db;&ZZLfzKUm^@Iua6i&$L*a@63g*^|d~_ zUrKh9v=}?FR=bjgtR&Evg5FcRjb2^N1+i_!OjK<$Uui(zAycGEw(K{{JD(BTzJ00E z0a%yC7EOZ?(8q;!w03+(JL4Fybpo-WQ0kdS&e|8Zml-?{!F)A%Xv41?N_> z($bFV(|fvT`!JBaVctQrx~T?8$Upp%>)f|59$d*PUGiz_pZ=TpP~mn%+n=M9q7^`6 zbHY6I+c8wJu4Hh$9(M6fZ;H)qmLdANfEB*B`u<&lZ6t)u$rC?AGTiz89crLf!ltXo z#%=SHrDmn8K~;Jl1WRXSW)FKfO9JJ{M4G+mVXqa%a;W}76)py&dSvbiB_H(bcTeJM z=B1hp*uAP^9=U5hbw1$0LI5hylgCLHWWhE=&?UArZsjiD_i<^%MtNBIs0lnO(Xh<6 z;=@!h_J3#Zl9s|J>r`mdvdz8cq1nNkHTgMk?Tpi@h45}=#Dm8s)AC;ae+?Y&a ztgx&hS_f}gW}ZkJEoNhyK})@rVbcy{O*AvTL2PY>R2Qh);5PxevtYgF#ldJ%?d#1Z z4Qf~^U2JhJ*SZ#t?xbMP0}>*N;{S}k9mD922LnJx zkTJ#nH`cLkYe(E{N*(mY)+ozfC7fg0h-gL*mSEx%;k9B9Nx(!r{H{An;L8>^``OhB z0WylAYLoHmYMLtfsLC=ftSX3SKmklJ@I!d?rjZN0kv^521tiY32k^cu#5`85Ur1}X z)}BQz_#QagHBf->x$_D~b(BqWHYgME$X1z_2eu`Jl4 znVEIO1az&JGPES^I9TuZ{Sp`QN~FVNGlB*r6g;8$5R&iK3H$^_d)#*US1Qd7q{zzr z`E6)*3ftRg`Om!TWTjrvV2rbdI!JkzMTxTC9b1EsWsgeS%iwF`3(8};mf_Z?kwIfq z2exb4$ai-)cX=6GmnGjt$YMIt}>jh@?9R-#Ru%p=ST@gqBZWf1cXgh0}`5){0j} z6yK-SeWmQCwPYS`dz}mH(63y68!AnzC1Bf2imf)wey>GFh8>I@tOr?ki4BoRzv~_M zRO$4Uz)B{m>tV6|gXd@qD+zsrp2*gL+c(aB+svCinaP|ulOrO{WRGZz1NG(njp3Ch zPer3(tPs4*&NIT7vK9_!e z6-)U3j@IyRHVC5@GIz>E-Xm`=iEM%?y1N-sCWS+UH3do%2twXD@Ld}8IJZshWj??+ znvx1I+oK;lK!SHM?3BaNqWbzxx)#hsTdgYwFNSQAbTQ=b zgywNJa^DB&=*q|4Ar|!eqQeUySFIU4@~gwkrpclQweL1Ro#N-Qf|E?Ju(G=0$_eVW z5zME_FegTWDZxT~HtcqE_eO-W$Ya#EQ*Rs>pC4|;7q=!ZZ2z97_hZ3BhxOc_h74E4 zDw7DZA6e9~4n~H?&t=Rs8OKHHR34$#Si3lwmndnNGNTaP)N|l$e zm!{Xlmi{g?i7H%j+ei+Wh5NDA)zgVrUym@KQ6Y#TylB#%1*qw!+CQ7$a1q}TkCI&Q zlIs+|&6RMEp@rZ&mg^`B@~jMElvkQ7Y|<_I_4Ej9z%cN+U~Xx=+R?c2wo$`P0;suD5KMH*^0#%^_~ z+)*sRdSCY>^XKx1I6$*#fT$f+yz=^tP|u3J7kVn&9&C<_+r)RJ-~ zz1TzN4p-b1fg;e1UgPZP;-~&S@FCOWXZlppm&E(VgRq%Q!qoFM(FQp;dgWV@$c2irtk()e6#N0T^;apqn7HrC224kHZ$ zf3i4!=!en+hCxP?XeMXsCz{lgezOy7R&J?t+M&ZsX73h3qNwgOMNhc;YQDSdCcOW8 zXR<=GlO>5=L<)U#)Q>~te7z=xRd=r-i1MxMJDZ2*S07*8M;7{- zL+b1Ka%QH`p~CSIZ>`N;e6R22)S=JxcDiTk%iUNu!}VdQ9IPGE2e}=NA7{|(o%mis zM{(vQ`864(#l6u?<9+&u56s@%Z?9`y;7<%Su=@IQ^*sQQZN!|rv~QBZ*@Kfl2NGovZ*%iTI^YegJrl|74t%M~6GZ&Hkg zYl}%++9ZEAzGgod3)lWR`cnJ5Ox$fReyaeV%>BAN6L+p<<~M?X;n=aOYw)yV4s`&X z7*m7=ma-S^qgye}`_lt#nXjdufAnvYY0ojj)odGaIh@~Bip<2jDZ#qKKHDsEUS-cz zpyHls+4r^Q^f0Lols#|dW-BECRR05RgJ-twRx%DPUGg(e+mvNGr`CYte8d*d;WE62Z0P1VYi}yP!8{* zduq8r5i?~)a3^6}^{XwBKJGw*wPI~sF-<3oexwXRca&0epXea6feHuI4rUG14Rx-=cwW`$rO*2v#iX8J!=5~+IauD>1n$uNJ7uj>e}Yme0|2t zLW^tChG6dWmYn&LF{AATpKdkpY{#i8dOlj}(&a*&=%bd#CUS!U_g}l!e1*>nlOldj z=M-P};qUq8I$Nm@w-9{-H+!ae@d2zNqoxwb-THZIo@I45RRgxcdB-7k+xnZuu{-0x zQHM+Kh+Pun6XvIVyYtg7t;Ugg_L6YYqiTUzSBIBOzlAroH0h44JzLPqSYYJ7s^`+k zLckONg|2^X+-6B$W>LqcgznjOq+KG>a$`?r7Bx1X%rwqAY5D$RwoSsB&AEv36Q~FM z{zF8te0GjGnpBsJYOP#{*0*wi9_G`GE_GWCL%-4)_v+Ma)nRXY73!{iN%aq!W>WgM z7}y7)UN6gxRE+q)Vpc9rfZ8=#IsJdF7kj*Gw1*){9MmRbZ=1BgvgIsW{5S$r(Eae};N zI}Y$mGjTd*9Sj3p~(5YW#!8OwY3i~FZtv%2k znrx)(=#i{HqebBl(Qd;6YT{f$pBi5lblpxq!=N4|VKg&?!i}t38)_tG+4_LtnQA02 zzu0RoH+PxV^;2=OdivM=&EHV0nvk-qBQIFRQ~vU;KlTpwwXWQt;#Bnf>zM$%A>ZX8 zq`jlPUD&vmYGmpk?5~}?JZc^>zD1{arTc=;F|lH0H#>Kn<}J>f$oF=xG3&{GU|ilm z4}Asfv-6mJN~`fs;;nDazQXLxX%ZOb{^eyX&!VCtmMdwkwR*H^2GS|6i7J$SBujMr zfNG0EI?7H==jhc2*K9M1Z?*YKOS)a7%YSnO*Z+J)x@$g$3)KN`yq2%aoPU*h?wPrK z4r#g*(s$>N;MADAD{hDT7h=7;b>ANLkYW?&9di8!aR#QPPtIQ@A z19BTCB)Q6S&l_=86=i)WtGy&CA^Gd>XIWjH|E=T{g2U)0_D~b+Hn2ApO_g0QWooJ4 z55+5E;seb7`rt6cUL!RiL~}aM{k0MMg%!_uKCCdv`*q`~=PL@_uLiCC6*uyd{Gs6h zxJEaqymWo9Kxu1qKgg(*75W(Gu<<&>YTE?;PzqO>+KI(Gh7D=6@f*?Y^o#GI-vg01 zzf811?%5gpcy86c%J^^K)4k-EE><$_2D1O@Im6kuM(qkSPnV7UpjOYeilIE| zjlYp5a)fsj!;&U*zj<@GJj)i(o*r7%ED$`rt~}PjYYY#Q6&9M^Ro(oIQd0g`9De@m z_4>hgy})jfyn61Yy@4blh7}6ox$c6AeD77 z9G}Zh-SR%n==VO|A~m((%9k|)VZ9I`l3&w(;=oRS#(e7nzs-gBE24)r9DXwL++|Bk zBaL31x_;o@=63&f<&q&|IXBXQv@GezknLp+3$&r9IXQW=fv=aHV`e_cA!()$Q*^j{ zyBtI|xW&li4Ft7wOJGzQjy}g;xHYZ%_M($cEk@C|a}cZof5e63s_@sN-dsm# zQ-+rJ%WfhT{+3Q@t4Kcb-mYBgmms*IYK=>_!)%xLh+<*=)9)fwaL}mr3qh~_xk*KL zosoYOO77tHL{s$Iw=U*D~2EE}#chM3yr7qC%g-C`-LX8Kf3Soc{aKuvD}-aX+%euZs6QXbbl))ei|kc`Lem zyt9)yb>}_)qTp7AX;O|UuHPj4M@(V=nMfH@P&lw#_n2LV^c;n>6p9fwzKoAxFy71E zj@EFsq2+!fvZ^LH)>Fb@%_#$e(tkZ57Q_fv>$x6~y5*X|(=A~33ApHPXEImf_H6wQoT=B1}QkQTxphUS*X?> z3cf~@MUKH#55kESLpZ37#v{wgMJY+~KGr#~^#Xh)eCfszWoVb~0Gc(4#aJ_L54Y6? zCU(sHeyq}(Bitpcc+>n+3f9j^%v}6aWAxO&&F{W?1osMZE>Alb>_iN!<&w2kC45fy zO#Z=`6`I#0dsP`ZYmuTC<#0PrKS9S+*Vgi7I)!6L`Qq8+Ft|LGA|Wz< zi!xf@xI-KJ|uBE_2 zpX%QqFZjIs?^lPm4KO8qcEyE?vJZlPzz7A?WQI;*1fQf)sX6r6yQ9p1Cckcp`B(Pd z9V>qOXZRe`M4{6yb5h^u+z1DGXBZ%5SUIY0r(}4esI|i=8?dnm|F#%mn{1lTs~)EO z2W)6ocn*qZX8W+ zm))~wm88qXyC3RC<8dKfK2u--%QBBR0h6^0)PA_3z_G7-G|&0e--{2v5K?8%0GVnu zH*|a&(k?W8#`oQ0-s(;7mWYo-aOeBaPE8-t(j(=SUm8bZ0&45?*xoE-xv|Zx=e60$ zV|LDNPK>#^pP%Qx!`SQOy*$joZmoVq{{56;kiA+b-(yIkBYC8Lf-1Ls6MgV8RUMFb-DHqh zn8f8U`qO6o{f!um0WKFtq$|2$PoE!B@$2J}q7lzq{wm}X(m(I5WQ^ng!syph<*@Yu zF}{rnsANf7HE9h%3RuqC?t6CsZ`$ha9@M(UWafTs8;`QVp^h56?9KC!k(lAXAla&C z?+4Nz%91uh92k$4eKX*kwn_%2I2 z8mrWxNKPhChVp28TgCfZme0~`{YT;?^L^X4aJ+eQkt(G6(bYZt?ETfTSuGLXrOlAD zb39+)wg{)ea0e@9Q-87cs3%RXXd;yRtM0KD}*9Jp%aX44&$D-SJVPzgvi^={5Q-xT%cOxAP!^IQduXAa`_pOrbA z#ALdoAXdqIfdK;Ib@nm>qHZ24Z=3J!}%ls*v8XqNj8<2WF2LS4P|w7rdI2HV7IPsuoq{N^Qs!A zFR#gK-z2~V^VX{I#dh#xvHW4{kEy-3@}h4oP&V~*WscpVu- z@_T^!wXF!-d!T}H;IZCLThwI8rEFpYk#}d7&JCwd&G+(NN*%^u}6d48k-Lbr@lDUU!zY!JT z8Iijfc1Y0G{4^M=W})7`CEXp)HH-&)n|rJJ2h8!fGoTYj6phH6V4i*2;^Tjy3dsd( zni;O+`f4=t_8^S4z;3(fnQfA|wsT`h`{9T0p*%?zOVi%z7O+SYGgE>@fimXft5VIz z08&#U_k;Eis34Ev+DM3Pfq5Ug+_Ga<@=QN}7xD}BSY^Ee5w2DTD^1P(;<~fBWPwZk z`~q&C!2}b)23w|y*bQzl%NPcsk3p3#k8X9+36nwer*8sv9PRjCbJbH7*A|*c7*PH- zp4A}VNxd7~p`OVR6RV=ZvCKw;g28P11unxlo|)lX*-xE6V*=qTcsg z@vb(S!3Auzihe-T(rBJUu{eURW5)(dJFxKXNP=GZZ*H+Dg+Z0*b9P^m{(c<36wdzB zpH6M+Xc#6dGSpS9asZan+UG%(K7(HknVTuiV;`9gzaiUfyj^#{z42 z_v(#3^RZY5$&)!wGh9zEJ-)`pSWjM5-~2sGBlhKI;|S~@OUi37gT@?_;d;zS;GT-K zb6p$~Ku6%++%XR|)Vj$6E>Du_4o`l~|EGNxn) z4!-XBgH$qUF$`Y#89@}#^us$`>nQ)yJyfv1f|tD?>>fz8TCA>m`_+fzn>^!Dv!XVZ ze~VO4i=7KGG4WXEU~Rtz{5`!}W&>i3*Z(eVu*a&dNBmwFJmdPw*HI*Eqty9z#_|B> z>?LfE6^7fflf6?RJz%*au~ZH=OZ_~V<6~c-)_|UG@>XbUoL#moU3z*QxantDZ=a{e za*+N#-{gfM>uT2=l^;4q`o`C%UZ$U`cIPabhJL|%PfR`_S+%&ksxJ1SFIFx*>#DxG z(8k{$DOu_4YhL*Fo8oWNWVm@q)|{lKiu7YzAOUXfI>ple@$$W51r zGHzNJZj7ASHItn6MG=EA^$0=CKjQ5#e04{&^Cf)qp52#Wm+inC!MG>efo1BBLF>q; z9aSWB{!QFzRM^x;_2Zu(qV{SYa&9v%JB&h}x+ zvzodz=3}wDaF;33sEtnJ+u{!QtN~-#zZ3Z{DuydJ4{J-@0YQaE7gkF$@+%cXvPYw! zFrw~4W9#W}0H>0V>0N^r=h~tIkE&eQEpr}ALRtYF+`qR2BMPvBrMnE-NW?moi#8g; z*7iyD*H0ew+7{JedQFq`q&MeLQgYSSO!TbR)dKwU#^aEL8_QqMzKw-jnCJ82yd9lY zNyQKZ<8AJ*vJHu*R{q0ShbysK6Fiz2EHJ~VH!?UzbrZxn_#Bje{?~s_GIceOpwuya zElOy@_HmUa$aU7_?JibxA;;&^=NoF-`RUOYt@{xdncR_&!TEpbXW?=L*;z=KjR-f7 z=k~|Ywu=j)L88}eEy^tZd6(jZ8F{NxVYO&^FC?~~YJxBbbA)VyL(-lMf3m@b`+2odspF0{gt{ZzmuX7<(9B-U8>!# z?^VAfihmTyf^CPH*-9ZF? z98uaCe9tAr{*8wJ!h>2#jGc(=lmEQlr*J*~Pr!(%;efvHmYo4(XcIgss@X;``WU)p zz2pT>4ng1!TF;rHk4{954muofK}PTWMs+EE0!dq@sCN{|oZA)2QM~qka?#5pCe9gr zHQC4rGX-6nZ`mj8P}%i%VvAZ@)z*mJu*R~j;owD|z#gr{!1!@7myU}(HZy4@kZ+dB zS#cKp7f;OJ@xH3soqM-HXRLo}U)H*qqfQA~#|6zHNzK8jzlpmnT-AW*`VrFT9m&Yx zu#JJt=PdIzUfMhscEzPgU%rwtU>OUbuyy<)__x7So6>DKHHg#zVTEh?;09}r^{Q>P z@V2rlOUs9cX=g@pPC6C(qucWlCq-cn4o^z8i=Ni1nE!Qig{1pmS8{QgvF0}~TrDjY z2Yx9TZjL0BrH|j&`k7)lXjfBgVGqgH38YSt@^cV0>cvdC7PXLKuyN>oni%>VY6WuH z?G8H0SU#i5$yA$cdqKbDO;5sRMWZ=UoJ&PkZoZ^G%wy_EmP*U3&Z@15H)52oqQaEf z%bd&S=yuY;fGn_&{O(~i;46Q}URn-H$Y;G2WfU(!H}4aG=s%x(eeWUBLAvRorZ;>$ ztdYYFXN;oO+_3u2fR+l1*qUqbSTwW2y=W>D57od5Uiu5VsEJp2Zf{Wc$XxM3AYD#0 z#bhp2Q#k3h-)D5hsbuDPls9+{2#Yiy9?LP&`!O2l%n!22ziF8`NROyEzI?#)u_UMd zZ}cek&qy0L-Q+50cLj!-27rLYN7=*K{5V0v z{XlAHbi{=g2#o6GX%+vg zzpKRbLl$lOVz|Sk-tlttB5M_|Q~Xa%h-vtlMobL76}uw^G~UAZS|L1X^($NS4JvbR zC(E`YOQkeBVw9p>Poa)Ib(>RyqqxtQBPfOSE4S>1pD;at`((;5ejs4Idt!lR zQ%gTky6J>UMcS-T=y?5C!1 z@fjtP;{_J;=00`#rWK5Q!`*~Y0oP4lAr2g=Oh>U5sAP(D5V8$Jwhw?fhN2bq%fWv| zh0_2|e2CY=t6gg~<>qF>i}EO=e~Frv6>{EsJS_ET5@}G*QLb5cp}yn;1M5F*6_CC* z7L8g$r~%fOgi*4MK~h|4EuTzl&T#2#Jw9a^#XM;)klM2t4(1IMm9yz?U;!zla6~bQ zjToj53k3(Yrs@-r*Nr1s#nHM+@4LR7+|0XhM%V7uy=N{w7w*Z%N4WuSJ)S>ouSLm` z0FXqKUlh9;?js)bzY}K{SW&hCW_eARcrE3%+Cf?6X=L77V^!MTrl#J(m(J(^)S%H; zr!F;dHC|f9z3js!zBU}Y84N&+O36MS8V0AVk;bg6o7bpwb>%~b%WAZ#X#%Z2r7ajh zCO%QUt8lf0NA5&V3`5_BVz^QH-(ug(LG+b$N*0%$=Yb$vl#8O=ytm_cerehvmu%Og zP0N^|1TWQ^unvgJQw7Q?X=Rv$xlW=a8gTNc@8Xl0pYst#DqWA_1ds#^*yZ%py9ucv z=#cN|_u$~^Ck4eV!XEY%BlpV9F}=#Vwt%(PIQy|21X8C{b;$0!Fn9MQLhHBj`H*(K zD*+pyhFdEC(Ne7A6|1adRU2*t0alVXre(Z~vT0@0uxj?S5zM#JFJ?|i^1Jx01~O59 zmDFZUV~q0N8`2XxH%VEWzVI$9_1lFSt&(TNKJaXx0pmdr>B-9-Icf=k$J^6y)C{co zrL}f!4>`CwkvT3+Le_^b5$DDRrc_+j>Ol{t1>d@yFTo1UJWo;U>r9J#&LbqEa58SH zs{vE8-)ZYYaNHgTuH2?Y)Z6;=T53ci6MYr|zaf=Xaa5Vd3thi$sd#`QX-KFyrC zK+P2M;zt>{0tH^+{7LVe7I-TOCa9v9W=Wy5vuo~1)jgm?Z>0GT8ofZqa@Y{$(Xa_V zh{$WGLlz}2RatfDFMZT&Pb-movG=m?vVDn+YCSIK+YKIZ+n=2Smdub|)Su)vWKllW6r6kX&%Fi%Jp?4*@Z59eh%%MVQ3 zP!LGD1F_sqCI%x^(Ja{)gaBfR6=ghg7(wrXjA}OYv2^V@Dw}XGBDEg56~VRP&er;K zHmM~f>dxP+2uETFnv|)+FWI=!_Rcub7$I2mdim7%bEyh=sFA?q#Xqtl~roClF zhL~w~Jj(tV;UEqng2}Kq6%GNOoBd@u;EavHg{ca?0~;`Z$Z(lRQ0|SWqI_KvG^M^K zaLMHSQcs?`6{^ewuP?{@*CM#K-kuIposW7Gar@71r@hhVXu9BORY7|~?t8kON`4Jn zT5x8pw;}ZQHCD4Yw<^Y@rpEQB;G^Zrwn1&4xLJN?fUkg_o<0v^z^ZU31q=suGjMzX zJHMMf=+y81e{=42JLsAYR2W@{UBzieZ0nR*I@Hcr@SKfYtIpAaF4ArZ)ooz%JfClX z35ZAqE~b&s3B|81>s-n)kFe)mF1EArTU)4N&*MQ1Z9tcJZh(L}M)LBPf3F2`-48}xxM55=#eC%aJ>{Xq zPjcIt0u6IZZa>6W67Ny=))L;>MDKqmULiMi-Oz&XgS|I`8&syUBX@kF@~g+}2#7#9 zmye9p6aA2P04rDFMu26{NmD%P9>2!(uG%nTc%;n#PW%C~gBmKQ3H>7)j+MjUBaS86 zC}N^b#rM=bOKblY=>eLR*K6xbn+hTT^3b(nlU&!Q{XdEtNG&;S)9!==kI}KeG?t4!evx+46^JgqpC0{@+E zgj=u5!!%FwDLb~T?;81RwWj>nkAPX#zIWjjYnwS%~;c-|L?>CX}YwRoce_HxHwMl)T;v z1Paw`kK?U9Q}|b@^w9JuE&@46c{@xXeIM`II_7gr4lKWS_5f%!>|K9F7`|~kdsLZ9 zJG@!tiP`t;8NgQ@q4eUcPXZY;7Z=(t`Bv-Y3V(IpuWjjB$;!pd1?AtfH5vCtaBqo_ zJi)(}fvy|{C^h4Hq4Y?BsQCxnWm|?~hG6{i?lsRaD{5{!>|-_%=HUnq*CV5*m<5q7 z*h2QRvel%at}$Vq?sK;O{6uK0tM!%MxLDs+QrzVFo5O>prNs|NeX)I`pBLp-Kf8z8pXbkA0S5l5`vf8E*y+OG_TR4fKZ?%%k;(r5 zaGBIi?g3YkpC95#pB*{nG;%;Bz3ITl9DA%_{8k;5#9QI46@ZH#P8 zj^%tFLicyy|KR%JI=x@7=kxJ!_u={os(dI2yq@4^Q)I+bHLKw8#@Z&qA?|VemT_D{ zo7}$~e?30x{`zJAUpCQtqwSsnxBCh35EtkqlzB+*i5h->au0VHwK2zbDCKow9!722 zjxN0|o&Ev~eIYk(U37%&X6U38z1B&)YBZGQV|Gc&04qTETm1&^GR4@vaENk$Ol zvbLW-waW1Md19C`2cNBf_UNd9E6k|!iu7Y!$D}U1ZsTg1hKk-ijle9Acx=DCUDm?( z<#*th`SYird*>ZBds=sD);!v4GlZX2Eut?qCheklEB~OH?moH)-@REgbjA(+J0^$J zg_E;1>CNr_v`kryiG_oAYWLJSdbu*#A)!k|d6GZOW^@XLA|F(>Hix|Z$&!7cZ_+p_ znGP-7*a$d$57~UoKR!F|Dj8QGnCZ9BMeEnUS?qYxlQm_XKYPh0KDHJFS_-jCasEa4 z*>>>5t2hKFl3|lSE!1(JJ1f7zuDuhvkg@-5&L9pS@#=AX3+k4Q@kqnb-%V~IH*rrX zsW-jnpoWGmG|bnXa}^wytW8j||4DTjBO?V|v$a}pmHlH_?84ST_ietJ zLsYMr*fy=Vq>7A$WL^9FiM9y5Taw{8CEnWP5C-pm{jS_`y*!2a#2WG!2gvm5YoL?O z>lzD@?XhjgXgbUm=XzP#Dr4{=rm)l+Pnn1{hxRqb_y;8SZH2-P*kDG{OP^fA03v)&aQvGeDrZ!x(6pfn(Mz<+|-_J2!yGGSzr<^S}OKh z6lal@7NN4&4eQKXPQ`3*Jan2Y=e^L`uxxheO^4g}RRdr^{9=KLux-}LIN@UR+XRt} zkfr2>z&4^Ga4M5GZAj8UMMWs-JyO`ZAFo?c<2mMDg6mVrv_J<)(V~J$9)p_Bt{hv# zb&Wx&%~pC>@;dLamO}srNZ(^BGGhQ8CswD$Y~{C(Gmo;bq#|P~Uvqk|M$Vs}rYX(^ zP0Cz;6ZpQl$v?*C8do%p&F?lSXiCU2d~9jVZStT!YG*NHd|7hE!@$nOKt@zF3q%m9 z>|7N>%Ao`;RlW4yWvzr9J4CmCDQt{u(nmy0XPl`8?TSRVmM0-edJOu=8C z9r#~NO%X!r&#<5ilg|!JSKc1gz6v{3$XCtx3S9IO@7lG03a^m2vmn(uadZ8I`{yUkVA2#i z`yYf#==5U_`vnq#1Z8%;n|ff#Ixx9AX?5Oi>8>)O?2hV&f#KWH-oF)lSJf-crqde> z#30Gj_6hP-(4s|XmIjpUu~R5JFl$;$v{Ff*h@765?+9g#j}k3Mk;v6y!9fZ=cl5;L zFyQ;NzHuFG&p}g_w=uoyw5*rVkDp>{4zPFn^nK@!9q5vY7Fo#bjpenupj*ue+3Inq z!nn8Jw+;=sMM76RW?yy7H-|~bdXHkvf6|#jnSORID?u!$NP&RVE@12GSlVso2;0vZ zcTqoDD@QrA9s(I2sb89T-KMZbaDJ`2cdBUC+IVch&U4OpxjDKp8r#cVC9Zk7<#Akt zf6k!NvJW1ZykuZ6X4B3+>-~_ei%i)^ZOOt`-lWskHn!+QyTUHqkLi(gFNa&9!+#9bnC3Y$W%>^Xz?du zp-*xh+DAD`CH0+lopZ%p{I)A5woA4vgDo1I)T|VVHL+_?ri?ARBm*o>POBY)$5;<+n;K|Ny zRrs+`va@wjeC^-~eU{QFL^^8A4166X_g__nf&07W`C-(iF27 zM259Qx3P-`*IDNd6=#cXI{4)!6eVtGU{LqGkblx3~1Lp zT;DUV94c+UN7UBi*K$e8^7rc8lSd@SG(XHv%_BFKL+;u&VDamms$ixZ>-u6u4^(T ztn1eHebB4nE*ELlGQaz_&qo!M1wl0Px@Y^3^BewsBasMlnY8TG@y7UGXXv;oCDA0b zU#29Ap~l_Hqu@;z$yCVnL~AZBs>dKm{DkCy+~d{5CJoF>%4NH{y-ciHVyPfmT1 zc_na)=mOMJJOK`>dkK z5*F0ybMnO<|IixorTna;Xfn*jR7QfwTF6w!{Asy!R((>OL$*k{07dp1$u7d=0^jM( z3j)5Wf&6Kqy5{0^X?fx~O?NyhLcy{eOFhcYA19H2p8h~=G=RQ{)Fj7FD^rFO1C$LC z-+48+OlW*q=jBe5XfQsLp(}MzE((9e4T^J4i#a_NuH5)Fn z_TG6hbJBSla*jDV+zmV^DJ?q|pz$x(c8;}PJX}9KTpQi~e8b^Y%gGT~71w@C*texRM8JsU za5wSZla@f)=EnN1@meI-c`mLG`(o0;` zstm5Un}hlCcIIwDEb>k@14ka$i0X?*Z2X-*nCi~k@zBfWGMC1fkBh;OR{pHer`@ou zC}v$fiYVgeU|fQ)Y_bWZVDrW8^X`G-ya8&N$(Es3BZYG3d?B)`NCT$+)mhMBh!lNWfneEDQxD|3X{$gzI9#4CYp{b24Z~z3Zyo{& zV)J_UTsnfYV(^nYlgrpmve_i7SBX5)v7{?QLpov$m5J@NS)1;KB^CNej zquJ;0l6v5S4r?ZWAhhRC3v^#cP>Z=CcyDBx+51|Dn858sQj#03W+B z;v$`?zH6GIUy_}DEE}n68HxzSb+UyJM}eETvnGc@o-_t24G@=}OX%V8ev~k2Qw|z$ zRc6$msfg-_9-Kfm+3(>Y7S}-LVOevfgKf##$C@#rP+fRG(W7({;{4#WwgzrIl3~^q zqebgM5#0EEB~U0uD=BB{Zx<;yy=NxQ+fC0@J>@|zefBk4g*#Z_f!}z&tJs^+9JrsG z4ZpRq)iu+Uum(x_%^1TaRx*azIDRaVRw@Op@v=1BBod`yN||<)L>8)oWs=CUXn_(( zx_D;(jBqbHa6Ie9Bbl_jjb7~u{?#gJcfF`vt8!>a>!7mVvo){2vA(^f6=qGe)FYi1 zICjgMa_Z06iHsV~KQf+iEcBK$oO_`3V)O}=0KUw%ytJ|rx@&Fc`0jh7gia~rL&N9` zM@PwN2@d#hy;j|6e8~#eTG|eU%xJ=yamkUhrSZ0-XmjJb_ItRE2M5(yB0^GNpt*g9>PyXk@bbF%K}-UK&~^M=Pc{%hoKiC1_3JL8iolDW8)X;+qS-&L}BDWrwuI~}r@F_AMwd;`e$ z(&HtqM_4f|_1hzRb2Tz3%ti7kWx##qzcW`!^6meUlm&*qKMrr$L}G`}=IhFr54bhu z-f8Z0{^)FqZF{=&>S=$!t5m0ZB~@pNPuH8_G9E7;xj)WL7Q~hv+1NuTZ+#pn6#+Oz z(RFFSk@zO!EDE)Mm3aPqAk_f0fX!FIWib4 z&jy%s9A;_V9rXu2#eQqh%|j>g5=pqKfxV;3-Fy@WgQF0TRjb{TCN2Ut^-ICO^}YV) zh-toEMbn_J(Q@1$NK>8(EF*_9P*}L$M2;eF3{-S4UmDysa_Gmd*V7=%M$!i}(|O|u zPsSvVP2&5{s-Ha||75dM?r6 zi|w4d#2cdYvOlQB*NM}w55;j=mzAv=*{@AE39x8T6k&v-jG9_5wpdjtqtq1(Rfk=0+AnHKK=*vXMoDDPje2isQqUEm&N^*qf?^*|TAyw{-`I zd_fFRX2Pdz*zM3!r|fJE-b^KvOy4(ocSD-&@G0BiMeWxw4x8N878dfIF~P|2O!Qtm zhBTxLyn0fpY~St`Rz6PQ2ufTS5PhpsSJ%$FzlSiu)W6gyO^r#987!Uoq=@-K*-gt*AZ^P#6E>wz7wCCN zXe8yv8{8pp*GHDi)Zn}-uhp#$$zy3+MA$s(uUl*a^C#!L_(^>CGPOqvSbAP7jst?V zo)HG7%9hxcl*$yI4DO<)^UTA6tj(}z7&P3xV;``J3R3q>|Xg8Gt7|)k%_w4PL zXP}`%-bOC=aFxkFAuTXBAL%|&85D9qyswS2>CIV_GPF7p?-gR60u3hGnkjmUGaHm+ zMS<^nw(1wZC-ulq(fAX;o9Wf7ZcIP;^M68KjL)ZwJwMLJyL@u{=?44MZIi+&p!#Eq zpsNV_@8QA;o#`u&nD|ZVCLwi`IJ48E3A*6P6C|^-} zW<;~I_w+KzO8q@rD<;#SviFoX`;1S3l%l%=c@2F*aGKGNC#@B-DI27^+HYI$eFT2! zP56yCHP%mtIBU`Atd_8-$7BDUc_Q}$YIgR7^lrXw_tyB+i#&MKGqz_Fzud9A@;`ll zW#`-WM4d{&-Bc37DsPp>fZDSI+HKPudNOQ)Wl*NWB#f~>v(UOXA}F4r{Cqd&Ris3& zjG0M#K_UEXL!G#t<;uc6tw$|`}WP|1bt?8O!L~9wmjpWiml3yZOc>-|Agqvj}iH^X}wB{jXaf#@(no_igGi=hW6MZ zeR+#&UQjvHKGSZwdT3~Mk&UQhbbCL?rb-@zOP)+!f?UCy3kM&kGrU;&XKvj1$9rh$ zybW4grj%<7U0Am`>Kx``QOeq6*&PIBK22%{We+KuX2P?f;S*(~$|#wRZG2*F zuLFHQ$pNYTTNYI#%~*${X0S6_RmowZ3aNf0uT#tJD3JRTUC0c-gc=G z2!GB;xXaVqO>Wr_8l?{pvRFISnW^)Drzs8fQG~G7Rl@Fsjn*NgcXvgECZ%qgA*q|w z|JOIghOQJT^JE!_Ie0-fwW5q%0LecnF#Uk8T9m?!53M2zq?zCU^Vaiw3V4d$AZi^H z{PJ&iH3X+YmaMo3>Mgx0S_6b1nF`byd-y!vu$x=p|6=_-A@u9*R=bO$i8t5)P|8uM zJZdBpld*>kCtE82EJ%Al-aQH^?R+@7!3;-}Tyttw#upT@<(l&3hZH$x#dS!Cd_$uc>HwvHm-tQ?BSmC1rhhmVl}Oaknv zaeZMVFPU#=`jV1F(rvXH6Kd0MOCEeYdlU4i_HDT0Tl{Nn^BbW3qAxPDp2w50uw4#O zJdDBCgBD0-DQJ)Po1ow$4K#~L7>QLumL_F&Bd{aT>-|gJLE`m};zC}J%PeB59Wp=u zdHG^WR-DEs+0FeE}eP*-a;F*^eLe|yy8P`n0qWJ zoLyxQi4Q>t5V3jtF|j|_iJQKwBD~T!Is$UHVP5?}?M@%!a zyrct)-~lRmjzBNHv>U}Xd5Wxn+4>2WA;zx$UJQcI^)$;0%>JsIs_sw?=JhZN3mItBq~se?OsHi`6>@~1OxX0~^2W?GV_h}E(MZB3sKCK@ zow^tag_hA!uc2A% zfuNvNL3_qSDBxx-%%4G73;;6;!5fJW1}}vG&3|Tao?91KOEm*Z_|}iwZ_J4uFR9n=UasevI{U>|*56_3Hz`8j?IXKgL#Bi|;XOaJ!9b9(MI}C( zPDy-N{&fXyI)DqH49C(&o)z6&o&GB+;57}#G~Z(7hCZx7l6+p=`$*2;GOZt|K5~aYoLBYjag5M4_j!X$b@k1B7N9&d(30qs1wKq8$zHG= z;=_5)3iTFluHopo-!KXvGSLiheF^QS+#R4<0{HI?PbqQ2v~O9mrKQ~QP+SDe_lzYTNp-EgqRk@n!uYmN)JqP-2@nQ#JLq!9fKyQ ze-q{B(p?T_-x$EbE>?PN1gxOBdT{C?K<{BRmLL{TYNKGflaQY?MNxQV|r^|M{2>fhzqxTA|TWZpy_p-omx=lBJiFi6WueYUEiF8_&rh7zh(ab7QMh_()Ca8O>zwn zpSGwut2_evr1EW5)%yVD_IB6%&=+nX0P#tTmo7>3qTPY3O0|ksTjMyb?KnW}=QaXh z{geP4o2#0V?+8yy6>Lsr!Jv!30naI;d(~mcPk;23jrXIN9(N7G-g*inX z+c}1nMaQ7y5hqhIMG3-1xIS>$P>NQonGqiPdKLZ0^eS^Px8x#?nvU>`H!|zHsXtQ6 z>Pp(fJ@53|J8k{An}MNei0kc8{yXzydj4y54N_5h(-)&#Y1cECRkp41cR~IXBjNaf zbduQ)^_#D~it}$|XD}nIAde@%M*K(|7r)^no;$Mn?knqjk=*%)=e;=@{3AqpW0eAt zBv%+vD=6JQ)+;vI48E4xuBxJtKW#Gj=4DDKfM=;?nXHUy;rvcHP!RYk-VFhf1`yix ze7Evvp@%!?L}FUbvGdi{Yu;aSulacz950cNw$}`wavLB`sz$EYJBuBV2AnV1o3o0V z_dx~Nh4u1AQo*lNLN&a7E7#X9EyJ0bJ@Bu3eDjUZ{?1wHY7j?b$-iv(otcHw{pYL? zvF}Z*it2+>lzl{Uk~t42dL5g0=*c2hl#S(#ZS!YU{+sGJiItc0B`;&ijX9g+Jy%!; zw7E0R#H{R<54ocDBwvF{d;j6LYTz$_ZNF^dRQavL!J|EHm3x6;26N44h6B7Z_Z@#QWB)-*ddo>KPM_CI~!U?`M*W3?9 z*FX_9{V}Rq4aW!Vl(C<#HY*ftzcAXh3G)Ui4HQOYQ zH9+B4y^iR*T_axXOS+fQSnPd`6I5MH0OWEI!U)R!v+s)|=H%!A_909Ox^5vz5< zmdZ*6l=W#MO4KGgeEVh|jb*ak-}TgK@aDy>UL=f3?=)Ba zgMt6)@h#VMeVfDws{Y)!Y@Ki-GuO6OgE~V2<~IgJ<*|z5p+jq=%}CMy!I#bpE_~t8v+_v`XI>iqGTj zHq_=Z^+KOfJ?>A=c-xZ;J~Jh&`WMIN4Sr{Qv`TAIXF*vqGAde;u5|c z1~R1tf*f4^7{!!Foqo;IRsVj0m1>Tu2IowS`lTvdEaW3MMXoP!Hsnr$!gL*4x97fl z1$E~~V2)Dhwr#0M2JR~vF`NNV?nU>TTN(*wUk!11f(lcB3E)Stz`g&#wm!EL#!#DYAeDmu;*SoB-kpQE8zfc&SS|%Qj@yDdD6HjM? zUvb+e#|KRk3Y@(zR$wposrYt}BU?Fm4`YLAY5wgH4s2`P>waRxecs6vokP_?mh84> z;(M=cvu+~tH_sPrTV~)w0WUE9>F%f%Ih|^uEU&UQ2AF|2`xFYn7i$e3cIe7nQ|tb| z)zlV{?>;Ls_H%w#XI4B3d$D5l%e(@>+8Ut?h_`iLTa2Ir%xrg>snyqRBo9=gZYoq1 zUQhw>)Le2Vzp0p)Yh;lZ4&%btFj;{{ys^_Wq*tBJS5>dMtTKj^LcdfV{qia&8)Zq4 z5aSP2WiVKm>SP&0h=*(*VtqaA@^RwmpFK3^43-?hpKBYXhsznm=6a3&(6hl{6VRHk z2&TN*`RJ)1H%)Y~Ratjt>qGwCsUNyYz4z={kOTP2UdX-yWg;CDOZ@JH7O3oui`)}+w>jF4_$0mpkQY^ z<3H|iUoWrS`{`Ce1%T1oc2)FsV{>N(Ae5>S>|BG_pE-=W&^-urz2^JNsv|~^?Qyd| zXx31&i_=ys)m-4D1F_#I)kPXP2ZGOBEc7QAo-2Fbz@CIf$2 z&}^3{I6fc6@=+`>MKsf@tZMoop&Iu3`;?YIX`!TA=sXBAr(hHMy?QUm9y!9Y3vT2@ zPk*Jqx(~n2xa~X^Dq3?pS{5^_@@CG`J>WuTC0v^<5FXA*dHNDwJseW?=(Yt^_V(m8 zM2N2py;?Sj-9^L$_Oo5PKMjluTB_Xc{r+O$D2j^DD(t{7dpPV^LNYQ+m0fi#ICtzAexKHRkbWXoMBMg zild@6k>zIIA?KZ83;j-qFQwgO>3Vy*9lzxnIVpGmDX+i~^r& zAI;6~%r^4WTzPnqGC3gMq%FyF7Lo3X)hK!@>>58q|!>yyGx$!^Y4*vcU&6&rBA2ZH_-ah_%D<$F8#^ghSn2u+6keLA1 z+Bn~~=)TgXXhplKSqXCs=$y{&8{C+cZ)0Cj&B{|=M^-oP)fTs z2Xtj(aQ5<-Qn+BS`{)CN+jVo9lmqo9sKsV|D-r~i=;O;CP+4$W`YUx;@y*@HayN`u zZny-0t*+DZ?DjSX>k;2Ih6Oa-rDvdLLFHl;u95O1DAumP(nBr;6&4)n^|ZrESRpVX z56~b%%7T$%eJB$}0pZj^(Q()7(YmuxWslB!zjsqB%^?sMI7B7AdEG#V)VQ*iB~xnX4obIws$F)w;ZC(Hx2f$dgq}_m=zyf0k@`e?-^v z!^Tn-O)Zag2Y2xAXuAkh4ONj7l?}KVGtq1N(k`jTS!?eQ_4L{;`dH${%_;*-%y@d7 ze;vL-+dkwWe=B=N!~a+oY@+I-?6i`vsPL4Xe9cY;L{OBr%GOTtxs7yeQN*^;m31k| zEJkLfyiFKvrTA71cBXAsIrK%lCcU7b#uIxjr8NXej5f$#>4+o-DAQ2gFC7vx7Bi;B zJk=h;IC+f69y4DsZf|c^+V!h=H+6asbv8S2}OD+PoOUs#S>oA|X+TtSr> zJ+Z)k!4At5spKc^tjH+e2a_Lf`m2tgjjWf@Y`oF(J0xRvTX^syJxd`5!as(!D;rHy z$Xe#?QOOyhi~PcUKaZe6Fq~@npn_YVPV@VyF!`|>=rusWH7`+%%Pv@N+#m|KE?*No zMGOhR4&i#5#aam5f_AhMoATv0;X-rKyc#B7(F@Ocb`WBA#rm7$LwIDckJE#X&zJIFzeRY|?}>zF3lzZS z6+<*(wiT<#3PG3yC$~!|bLC8XWbkB7qO10+)MtQ{kK0Ktes=?x3bKjhLB0$tm!g=m z!mHzZ!>`43{yP&N3ndzlT3%lXNAmnc@-SVy)qn3W*zBb_DXp!c*8}1y!m`=VOlLX6 z!_VFpI>XCew%bBU8h)mA=x0)=Xonps`ssM722Nf$Vk^Z;G>QWn{DP08#_)DoQtLOLR8qwlSBJL!Xp=t| z($5JG`3$cAG=CbBik~zYO(LH(x8F;w48Sj=oDOB#|D2}I7B0=$92(Bv=PEA~|0 z%p@4nGZ?N9!|Nd2=k$x#;RmF#{wGB5-AjA|c%uu9&7Z@r3Np zPq0g#Xb-Ebxi;ZJIcnMkh0-_0nGY`k_|>e5nrm4SH0-5vybADfcR99SVB#Lgryc#{ zFmA1D#qPy`vtO;PEfVAhsLBkFW-#n0`l>zt4QOb;9ART_`M zqUq~=O^DL^;Dg}K(-8jG5h;)84rHmRjCO?pv^1V9WYO z$DCe-f44Tn+cHmih+OG(j^)Ha5608+pTe*P|u z)?zC(r=i<0WgDyPzqT2&)5z>bYVAT?9j5vanxD|$Gp4#SP3wD=DW4xph9=(HZmnGC zN|BtGdbb;Q?fZOczaq*>MWR}as40D^ahb%9 zoyCaU@7dCCk4z)Jp2ajr{>)KVDpty>&@PY1ahJcCkAkdo+DQH* zKOCMI!es5T{D3*lIOPC-Pc(*(Y>rXJ9)<12L@imVoVY&5dhbf@REw_PFje7QBLDSN zDWfP8mUCaJ&hw-=ykF#c}^Thh56ziX`c6O$`JSjQf&5T}!!5IW@7Bty%ZvJg05 zcj)5Ouxyj^VXY*~xtVmjSa5>0|ImC(s5DNRd{oq3ZmDKTSlW%DnI_6xfm-M0faxkxl$;*wSL&FwcQyP z;!#=EANY-j`5;WAGJw};t?#nz`xUrcHk5u!$4S01>-J%adr0Qt+NiE6w3XtGF1 zy3vTG%O%HN40M@yHl!*?Gg|?Sck{JRS_;gMEY_*$^;u&in@jsh%ZA}8!+2E<4EIAb zI7NX?y=A(h1hp9}_*fq9#p{3w*H-_rw4pu7;~cj~EdgdX5ECHH~RMiNF7H#mTv z$BY}np$wc1oz_sb>4Vs7G5d@f>DIL?9_E}G8?Xe(PQ(8As-=h@dnNzVpq|wmy_@RX zHUV$eugA`+(t0f>1g!K$i$EWFe>Qh1;12BHK^^-f{(e$x-n9C;)7#0)*yb1O&$N42 z@tO+z@G3DG`LHw*I@mW(+21dkVPZoMMt>9z{h^TMxital%m#bJ9Dxuzh63vi1vNe% zWtM=I4Gl_;sn&w&&^VbFxb7#J<5!d8H^}!K{or0zbup5sGa;bzi#HE}U*0-&vqmbX zvwD!YzeW%MJ=EURXuXbYq3X2<(Wg(h$(I{+u(x z<9zLh>}#q|#-*Dc-4T8nQ^CZ)`SXXVxx`bgMZs`*UyaG2d@xRSQ5v_8h~2<>7E70T z3>ECzIqNYo)y;_NgNBfKdMMLFv76xfb#T#?-5B0@*X5xSRjcg9%8vmPMy2{!uDW<# zRnkKz*V=L-q)b8EAKyq4qiz4(A4I9OWIXw-RDu-FGZvhfGqjrN#nn^cEJO_eJ<*lit7CG5=_v@GR`xT zQ#n^Tit=5g<@5pz*BMtW?-wj0iYAZutrrl{7Lo9%I+sI?b>3afIR>{(fExJUyIdtP zO%KSSc&78!&&DrZzy=#6U8-iOj;z$YwWVC}^l`e`rs2tvGmSLFI1~Zq!#Yy=Wj9@{ zT=1)wnn-d>+~>6msY;ur;-q!~UL{%T8(^+?o%kOfcN?xty^D9^f9GL`=+f_ftN2qK z!#OAjb83~z&Y?8cO3U=YjsYN-(~W2a%W2m1mQeQLE=4&OsP_LRPKP7DD>s<=XW(z| zt98DU$bNS{N9A~NHtSkuNZbuM#Y0G%n2rCk%ml@Uj$B19v1*9v>lH&Ii}aR#h(4zR zrO*$qsm`e_2s;}#B?5bHqgrTWrOMT}gV_1Z^?`fEUU-N;q*x@FfN(9qQX6+hE!+M( zQ~!hA?DpE0_7Zroyy@B;o8H$}{Yz4UJ$`YzF9Yc?kCYy(|5Hk343zqj=W*QkJJq&D zc_sKn0ZdByiXwr7sbWCA4zR1J-s%E-d3jCh<_S@m)4?03vS$!AA(&4I+NQB1cg(|u zB`-*sOT`2}IQr**QFl${&hafK1omFre-k3#2luZG9Y4Lbi7RP2Gz0mE@usfT#MHpo zDebrP_a*OkwkiP9Q+S?Ozvvg5N|+qIBY=3>eLO9zYx>mZ0Fm~*{7iK)53y=JE1Jee93!&C;osBsVB6qmpe^Y5?(YsFFF&Pbe2E3 z;5NY~I5~yr<2!?K{x!KrccrX*Jl0l(f)Scg&>9OiaD1;>E;-^xXRnB2?_p91iqal~6X$%Xi$bcC8fNsh$Y<#&m(eTU1 zQJtOF3-a8Hb?%xyS3rqi>7)wL#?z^!*&0V`a7rZ8ym4*atGSJgtQ!ekWtU|ASTD?z zMYu57_3asScv<#twRlQh;*B2d@7ckN#)z+yflAwj{I>Xc<+oMz0&T8J!Y7VV8@OVD z!_t-~%x;rr~G^_P%>&)w>v4-F8FidSLjlf>W#CWug%bC$9PW! zqWoTMu|68e_nLJF1C{=kVG_k{nh6vP3QV1GRw~$!r6}*#j?D|+QiaD7T(KsZ08Dms zxlRP_{iss*&H=Zj4SR+D9&Zc?p0@)4x%Clc4HK53brXH-#II7%&kcB*a(O+8#>RTR zHwD|7DhPeNid;|4;(2Ub(o)%GK@Dy}!c3B(qEClcmzRveTHKD2}0LLfe2drN+#E~jjC8)i> zp~n7b$^Q89f%R*s)X+SYDbY1cZ(AvQJjj`3jhUT$J8->`&QXVI-@p8MSJxsN6vqn~ zH&^V(SV+;BCBG4K3V3SBf!C;2=NyzVPCLC%8Jh0*;n6@`(jnVAUe|S0f3WLi;?XoA z4qdu&>)Y;)tQL0bA6HCN96%ZP4;c;qB@?bzo4SSq$@W4?{$+WYQLDF(8m6ULjD4n0 zX>!APx`%C!)tF3%Nuh~4EIifkvb?0{Dng_7c@x>RKC(_P_^vQFDpJ5L-;*w1Ww714 z_XAgtl{e{uTgc(UF{}6)EVeJjLH4+{cZDwXAuly9+=&SDrXi%^WoY#1(r6B|)v!9+ zSXvxo+0x!1EfHCx9E~Ybl7GsAd&+gz6$%bbb!AHv_NPkUL?m;>LGHoJ;P`y-lSdVR z0#t}23)CFAcMLqi_kQ-#jpHWig1SdbwUKK-$Cj`ttuc3^bd4R+f5NN^a3E%thggCq z*s4A|uh5Ntlp!Cy%H(zfVaF%O0kojl}v*mSMdgHgClHiI!TUZA7mXc9~XSjv(W>H;v28c_P1 zD1wH|@n7J-q^2OU;RE^r^Me$rTX7 z`DV0+Vi!rH1ehPG4!OuUSQS;1gNJ8X^7M%+oM#*-)%_W%y*T&iBKCp$;*9ilm4_j= zRr8@F=(OQxsr~q{)ge4YSV7q?8oy0HS{-dK@~KyfH#1JXi5EK$GP05K34V=D7Hur$ zB{6j`UJy?jqoG*GMmcK}2+ir=T8|C0vdJU&^;HiQOO9Q|SJ`el-j^vJPO0TO?2pGU zVP2mV0+YV~Ikj{5FRo?za-twgf0_`+B+^){jbAgtwnr1nd0Ea`Q8rl~0Z8f=b(aD7!NlH~=xY^NzdSJBj?&?aWy zQ)Spg3+D77&G-|EiQOU1{O+?h8GB15<8|>l_mWdHEe(&Sg&X|*# znhP)2wfjV6CX3HJntdI&0?7TrH&Ri+8SyG}ZGqC96M|0rvliun_X<>ed&=-GpjQ76 zO?NhBRfhw0qK#BFD((5>E8kn(&Yf4g(d8rbL`>aw_3zP?twR8v=U1ahirX+yEnPhe zA51Ml@UNdh=Z;@$PM@w#(45S@Q1@8FK|z}R%+CWEmUrIwDJuQ-=e_z1?%TyT{;*x` z-)(iTT1?4TaK{4fVycgtz)b}>e(z0qcekvHkHFk$nr`*IYbhnai5Ax^7adcTsC*y4 z0c>GoU3lw~pL60?X#0}o3Tkv~wapJ}e|epQk%*o-eVx?R$*J0RoMGXuoV9^kGev{1 zZ-Uy!y4(db`u&rC=qUk(J8S;6ACMp7TUAnICk2skz7|vFLjsl+@WD+J$4TOv(!{}$ zmgL=qz(M@Hxb;}V%Dj8d$YilXJ|;aB?+#V zq-sj1|5EWBuAv4VR?Vw^jcL4mc|Qq{jp)4~P%C6F)l@l7*p_{rqwqA#xtuQV$O`_= zNkV*oX=k}D3O*bbz*L%7_-Wm~Y;+r9>7%({(EiG^&PZW9zKCICRBQlXw7#IP&%QVt zw7~eFUS+PHb5gVXXuIjvwZLavD~E69cSXW%@ja>F{b%i}XxL!iuAHo$*pR;g8j8=+ zuFFxK2}~lQM~65ZRHGi9d`9U4QP{v~>EnC3v9L<=u+>4M)9BN9%JPF2;N9Pazi&qy zj#p`lqErtp{PzwK0TNA_Kuf?Mjd@Fq>E20I#9&vd06pu$P2Ka*s#pDwJ|ze2h*_o% zR8IUNKC!G&jkGDSWui5!TvD;bn&C}m%o`sRKFXfBZj+&if(h{PE-6eXcIEog-&MO~sYwUR~w_lM=-NqPayx za}Tt-a^y~2<-Alx#E}CL6g+o|BXOmO=0J0=-06M!{ssK-l&*$LrS9(jjQ6 zMi!=PzUXhp=7^iTJ<6Qicf~#TuuLNe1JBe5ZmMY9M^uL5lj^2_3vFJ_R%(xgob_B+ z?9Zuqtk(H<_J1A=hD2XHu*88i-R;iov|e)~9ZU5nC*J+u_$wIw^lY}tHxJwHnZ-UC zr|O&DQ13>5z%yj4GB-}!E-A^X!%I@;dMJqblq!ao%jf%{xjC00%0S}^St(e28ob}X zq=*No(S0l7Rk*fjXV&I)OSb*kwXV4ej3XUcGF<)>b?e&Xj|pei(x38u)12MIg=v_WSmks-~J?U15!)^5Cw#S zBg9n1{lkIe!5*}a1`>c;S|fO&!NdiehtShV8?_S5q5XERn6CK~cNgKoPu7aLrNc?* z@D{K^yhUe_%egf0g;UUy+2XX|kI$h>o#NNb9cRKlwd=_^y?8HSb5dui&rjwbf)j~- z#cX?|y7gE{T8Gcj(l(3X;*&ZdsUUA)bQocNu}HT6^R?4TFsM8b;3nAeY>^5|Mzydd)VTKinS z<=;3g#|q?}#c#-JM|&fl`iy+li(mUL zeb|w-tBsyZb`uSHq85J8>*^GpVO%Pu1u4e?E8T~@Hq&Uu>uVm2z`3EAR%ojw;R;~_ zVi8z28ec-#D2yOSbWg9Lf=*>rtNynn98N`Fn>MROxr%)RvtphX?E(?q^;(Ut^^(BNiDu!-0aU0uPQ$n19@&pP-D*0wgRokzRWsG1Wn~XPln6P zZcj{22h~}41EtLhvu{@Yn1 z)~fzkioN%)kwbsogd1Nc0Wag5KFm_Af75;4TUy2$C1<_U)RicD+cHS7WJw8){F76% zwwKOcCrx{BFygBRX8Eeswqt-aoL4fxpv2p3Fw=rte*zCKESCqW-@0Bk7aGK?vy!L3 zajeKPL(Qigt6Sh_@Ok%8p?9(F4bN*Fo{0G<_L>egmIEEiLu2aZt5rQ9X?xGO`173N zwz=vkRehtPsy9Wv5@Akw_AHTLT)qs-Nl3RZ_?L;`UoB`8ImxsChkg)SKG}V#qANko zJy}rhm__rGAB10$ck3JW6HHVoJWOsiV4ZQDkn8JM{B}ell!Kk#?ZJU4UPN75FlmFd z+c>DlSAE)_9)y2WoIYFS0bZ9|vvaiZserM(`nYzf&{u5}Q=j}WRiTUy2Z0)^Y&enq zuq8xz_tTs45YYY=`MvGx>;=E8_hi4C9^d=;;9|zocYkO?LI-5vVeKI$?p?lA2ha$Ng;xsbI19DO6L_J zlt$mnYE{b!tv9Xh_8kj3^(4{_(qKOGTxe04t-*SMhX!Efwr4v>)0aqk9QVTZ3lBf||7;BRq zruN9C1Wn5vTf>ecVWF?&sHtxR3}0s@@XbomOkZhzx2Z*O|1Zh+eJvJ zm%fNX8I|KAyK z{sJme2N2U~#w|*HJ`(n9wf7rhwd#r}HNlH6kgs1X+5AdtySO4qP}~D0 zJ+{^8A&if!g5VYGjm59}Y;pVuq?7S}WebFN9i6JN;Row_M`|Q156mDgw~qCHJIabG zI_<}pxt*`(jZ}g(49g>eyGY~ay=1{h#qUfLFE}}B5oCsoq8O(YV3mlB&8=v!_xp4} zVA<&s+cTX~#AW`Ai0xj zH`=v{jf`{@dXlkl!-2bVP)we%T%eBga|wgN>npGA)m}iWk}Fmt6RV-3@E{j$E6+xD zghLnGr@J}4FYpHrKSF5b0pZT8Pwe9yWZ|w97=#*WopM+?*_b3gfEe~Jj2{5g{A6O} zc-kg_e)`2uc2dz5YYHJ1%O>JW@o-ap=RZHz0giv3;71B^Ab+Bs3$SIUr?@DDzcw8^ zW!(s*sp&4~ekMY0v_JB{$Er&Yv$2JyfnYcvw~*0&6Nmg8TRvF?RcGuDVpyDOk7kyTs}kAt9X1BcET5XA`29EYh{SpyBuMXV0xN2^!}L zCwyO~(x&h^k5xWtLZetDC1kNQu&0n-$zw$`gEKNuL$WHD=>j87%IH#*c0F$M<@)M} zxdad<$K1&0@uVT%GE#*-cB3ir>${|yFJcknzX3nkkS!J3XE-+3-hFzV9R#fHH#278&)&+K>6*103>^S5XN{N2_TtI|og zU9TJQWH3_AgPvQHM51?jdp@_P07lbu-H;|X;vm`BHGVXL`xU>063%qIuIn~KQ&a%l zBppZk%jG%zcLv>w3oGd)YvXELsj1XAI+2ixg-Lk9Jvqh}-RNO+qzf{zf znC!|t6JadYYNnsogKe_HCX$fLl;Dtt71slAgo$-A;l!>rS1;G8PZ4CU*Zy$!BoWA_Rj#1|#Pco+ zB62R?sc{Qe9UYnkxH>Y_eJ&DYI$2nU?>*ncPKRm@zq0xCimUuB9cr}iBQys!O5bZ- z8eXf43q;CVSIL5u_np&o(@RZ@GbUQd>Y@FYLk_`@PhR@doGRm9ZqR<}lRQrcJj5@nIlKDF{SA2%Gy zr-$+DrGHUEmBSUDZj-fR6a`0@G4>q^7e$_JRpyRI$DpbOH;Tn6o1@ zX2{B>gvkB+7j@QEpj8zU@y!ej0tw`40a4@rq`txtO_ohaKndNN z_;@;(U{H8GyYH~Fy!SNwm^mD=rf6-dGHr>pm%XEcZ#v z$zu($JWJH-N&59Y8=J9@t~(-lAstr4Z&E(ykNq`tH|$M5CqvJ0TVy0;qdlgux~z- zpcE`?mDR;Zim0DpO^m@mzz|7ogo2kKi?kv>k~zU)eQ@y0XeG+#k0P+D z8%$*=TV#-)Ka|?m-#`7EaENBamOX!7YfEB7-Ec(^AgX4o?zjT6DWbg^e_tMIiMq_nqgJ3Xx zNzRHwAc?x3`_JH%7|bjk@fbWL+#x24$_iMT@{cjzMz@dFcIjes*PsT~XM?Yo=wsTp zp+PrZ6we6?axbewPzo^L?4`!#%F2qN4~tcOk7SRv(;&ePo%(~*IOdp<53!b>OM(3u z{7#2Io;4h9TAHnQ9r~GboS^CRTmn4&rMXiOSrP$Hh-SrJXWssP)P7 zeKnj*#Y{8uD)|ZlD7Km?%Hwfg5U+OIqOUjY!6hz0t2+-WXX#})K97V4mui= zBg$0ura;wu+-F=((QO1La;i%=M?5evH$IY4*UyU7hkIW~R+2#%@9>`SXcaKh={_#+ ze;hd+#1v|7T6^0*oGv-6mzzdS&T6VlX{;nNrfTllp>G0#&UgRW%~J83hCeI_t?;fY zO8=-xuKX~}8h32@tYxY8IU5KxcpQ~*)o_boEhp*Y4(Pf(pBr9;t?bgV5%=-B}34i^1J!vxXpQnO3=@$pT z{N3(W?CLAuMS2r>p@H94cWmE32?oA`q)hP;mq#`*b$hkP>tUpt`R^G*Aj^;@mom6# zewG(|cg5Y&QE&-V9#Ob?vpHfkYO<4SDCc|szuO{valgOcqW7^JsQBbh)`huZSnGWe z^mO1UU;Y}hW~DmxNll#-l3=t>88bt9>}>z?RrG*t{bqO!O}8nW2y>7OQXe8-?``8E zlYK9qz5e19YOJ1#Zn!Yz@bE^QJqc+<1qZ*S*Y70dn2`=?{FUKWFSgLk^fiVEO_=r4 zQHSJS71=b0Yb_3_tg!T=dAVB*AFtZ7dy9MU4FVNgx=+T zABCTp!U-k|#&jqvy8d;WsDDIiD^U`nzpup=vlBjcUFqX#^~x~o-%7|ov9xL4tuJ4S zxt;`uJtzW0aTOX$LG)1{M$Ug{ehZ)e_uYV?Rc;4h9J4!%!Ix!0q_fvE zf~?c>v%uwhi_&4{pwT8V+M3uLuCaKKHV2Yp&G#_Y;S+l|^U~h>Cu&X+uN&cJzO;&4C%JL0oTE#`)t}S_ z+^#?_y+}(-DY*NHT-W6IZbV;?1ow-Zb%ZPd0}H9 zFyke8r6O7JX;Q)EpWRMFYD!l_%isj@;JW(Z2nB+XUy!Ja(uI})yup&t3tPcM&{f38 zbEuAXzyHqg%*Z`!oomSXUrdLy^y&{MKeb`GQG!g*%l-@@gBy89H+#U!BgPuRz@ovT zHmyV~!Gu@nndA1BO>tqd>k9v^%>hru?I8W0qO6NZjx>k?vQzkRIhlA?)+|PW3N7!8KZ|FpMknMdlaIRUWA!D(V2S`0bjLO$1BauM=uQ+6CFaMn{w6&>0_lZf9>BUtZaM;Pe{GmVDC2&obdj#PO6i5W1H%iAKb=`LUug z)HHjZkO=i&F&e;?><)pm)y97n>=<8qY`EoenBZGxxbBL)lf29ie_XG7UevIBt2L1! zr~A_POG2a2IB=%=*RCjzr}e3kTIkWZT}kuWnvMf=`BPG>fqI^np8TQ4G={dz97U{u zt#=R~?Y%wih^*f~_oRO>IL80qo4*?FqGs2ApHucVL4RrcEx58ZpQmI_vWmEW!y;s< z91epwyESqs?jL0JpOy_1&+-^)4W!xB*5^c?Y!qtP804$x8|Mps4|~k31(CXVT&psx z;fOVD{eB;vgzfD#V%2@F&2XJWi?C_Uyg;wUu+<5R8651|LQQSBbYndmkx@6Y^D25` z8|UW|>3i`_mk}9j->uf<{8T9djg|1kI-PG7Ys@z`ShW?HWQA2*<^3sZkcby7^P_Lz znkp8Vdt_R@m{XaRMY}Zte7S#f%x0dwUO}s?ERTAbt~_+vrv!*<{_GEwLxwJ6AkJOI{AVD(@$$Hjc~S<+>dvynY7PXjF+-@=YW= zy(36%%FHZv=y-0(V0xx}20~C0#28<`$D)7NAw&ePE&Lg?Z02sA#*k|O{xRKXktyyX zS+xTwd~+@Gi;0kN#I$w7+mMXK;5<_NenciQvOoc=OZ96xHY+39=+`VHWUR5=Fh9XP zQz1zW;95XhK*=||zG$SPg0H)$q)74kKR^2Nwu77!T`-bKw=YSc6+~7{S{o9o3 zx)?r+v278rh@ph-wy9!o6^JC{j64>u8tFaKj?Si-ed|ww&Y|4c2In@NuEqo`u|DJ9A#zz~o??;cT zCxx?Vj_w=27-|^Ki2qM%exmi*0Ai$Sf!ci6WRq5&);Y^-92AUR`os9q?L(nYE*DJy zhfn|SjN+Bsz&9EXb!&9#Z~Tj*@xqns5Ip}DI;4@-2siN%g3aPST1WXT%6g97qc$R| zG^R+~v^c>Q*z>ULnMsDOr?N;G>h(Vx|9j8$tKsgLvD_y?*|PKBw9N7=?kxkQdhtE8 zxgpl%roESo6&1bCwPl~nPVzL35sQ@-aI31Im*nKiy_egfbdj&+X#@FFTGsc?^aj#& z0PlbEy?<399WVng2KSc#r2`;vwCwM3wEY&ToFJ}|=~V)DjJc%Ywzz(hKfR_K-plK}%z44&LK#ahA$#kTAJ-a@I1 z6t`>oXTjFn>It85&fjc4Ov`h-IjGyk#%FK-@(CZVQ6Hw2TrSQi=Vq%pE0~S4F*giO zaar|&X177P9}lT4vyUG4lMI(y9LoM@>t1Z|r=R$Dk(t)kg7r2RKG|71@%U6O{%&&n ziW1{-^zFJwqRZdm;9Mtu{`INr7C^M;xOx@}J=s(F=QTkM$gj$!7AyOSlgzyYGF)%1 zgjwxd?q#51DoLJx5s)J$Z2smpZuBnsug;aLZAn{e|4P>W;^d;JdqGIcbSISNqYi&s z#k9|R>IhjbZstWimhh*3C=sLvK(K%Ota+JTa;(tjsU{XYdmX-ZV|LoztqucBm^<-e zp!nR3&4Bf{zu7r|%Hp3f>)Vf#*D#vtZG zu&?3KPx|^;EhPi?4QZD7EG8QX9DjJPiu;RDQRPvk@kl%;Vpg@WsWIoe&y-JLvI?um zwah5)8o$9OfO>=El^jg?102*y5iLd&`LY?Hh1;T$~c8sX0+t>A$XzZPbAYed7)IT`T8GWpOK zkG;d%ve1dA=dR=N7I;jxTK9FkuqeHp2Pi5tRONp`2Q_SjRh?p{o4l) zEw~fT&rXHzyDiQF=iNktO;l_61qOSK`G><4dY>QGtojPuE&T7|n(VMYsQ*GDho6h5 zd11{$FyV~>A&@Uy>M0cA7vT<;<`LL>vNdgEzN$|gV|mbVDX|@9H-TuBtZr9Qv#HaX zY$>fxz%3&j~5r^Lf~F+xh?&u=?JcJsUIV$gbn|3uHPNtUl$&!q3Pv6I6uwV^d#Mgl9zqwj4%PTt*q z6k-s3FkQdwab>yhH&=;ni9gmIrgs%_@~Td7mG*#%Uz<_?P<+>qD;QI-`Y9|eqb@ys zX|ZSfzcX%y!?vt`85(4kIf8-EfscOKS%g&rNG8I=ML@cb zjht8g0hU}u4jfsB=lxtz+7r>K&{DjU%~p^eEU~>SdS;B*HTC}GWy^@fM83}1zdGI= zZ78)tt>ijY@QOZAA)?;(kkRSBMjCZu0jhOJrqa_+5B)ISx|uzCG<9TGg;CLS=>Mu# zS*=?8`1ZCdGcZ!7EZ~~BTg}aG;4c!u_1IFUcw#IM^{b}R3QRthkU*V9K z7k&^bRhS4cDrx?>Jawdo_mCszol9|-I%EOW0)j{)%{2Y;We? z7jvf~uh?2N>RY0qcTJ{^0o1Z>?sHoH&lM&SS1_JJ6NeK$R|~lZ?bP|QTzItB44!Wz z+(!{co1~C|E1oOMIoijF>!Uy1N2fdMOI`kgAq0jG<9U67lV2L-Z2`_=#aC<4P!ZaX z69+Q-6j~!;uU%H*rJ!>PFz0njsC1U;OV3cA3+$d@7jg5$c-N z5u#$E>Up4Y9MmAt9aHHbDf?^ZMtl#%nyc*sey&UG|j zO|R?Cv%jP{g4Y!-lI`f>v%=wxndt8EC6wYx!i@uuH4SAm!3iZv-`ZmTu9>mqh5o-- zhOdy6YyUc>W~uakHCg!5k^DQLCdO_}xJg1vDF&Q41Ax$eHdSCSmB1hxZZF_d9E29+ z8~u<&k6)fZR;-m2Fv?UVHudTc?qqx9;h=JSzJEAab=o})lK(oZIp3ojd*|ktc-zJ& z0>o==UxPEi7!#YDt!wnShV5~L&WiY&#wN#-A6&DSTLDtas0cc)!UWo^3=<<~FubZ7 zDoeo+eT;3As?3^V-_X7Ftu8uenj~hW?sc{WFIX!kbUanWUFa@tXy}6D)y6Sob1wZL zVonqqB*>ckcehQ|*3`bj48iT#8k_*YTw8b?+_Px-AEvhpO}Ng_wtO$A3SX;UJ!Mi_ z1he@fv(dKt`sRUDFO? zYYy9QCuw#Z`@WRzDg!UG*`yk;J=LlpY39!paL=|{THC%lvrDYLmJqt=(9krJc{SBb z1%YrxEDg~=mOe)7<(=kdj_o~@8M=ct4e6OGxuKIjrQo8hww1c?2AlQp^wKdbzdQ6To`>P+Npvv6pv z0c|T|BmSMaN&8iMJ3G523)aAmM=lC=J0b*hAto&}1?l#CmulRZ)TZ6=bj?@@()N4j=Bb3ro>gSC9Cwes=620ngbLw%AhIf3fBny{7<$n;7nMb=w}y@mk^ zkNC(Au1Gi0)%md>p{vKgMYTeEVV^~Qfyp|U+U4w5n174f)I1z) z?VOzqhH3+%Cey;%ux0b$gnA-syFf0q==1_=wv%2*EtnxqNBz<$|FOM1B~qVYH5jB| zV%rcso7i3c4Y_}Ar;V|ffqlT=>nr)b=BaQxdUrc4N-FD7#<` zP@H>rjt2v}5AGW#+$>>dGv#-Yn?XqO1vM1hh+UC9{YB{2|IQ#Mi*HS=9xEs+{_J}Q zp%1Tp8$gTI$X9FhI_nxUkk9=rXA)~KSt{o%Lj9PXGhSt?P)%;Or{)9>lygS;ca1|V za=^-OpN^9>PZW8hHf?>~9N#U%ZkFXl55@`%zcJvo04Ebm8)4puR zh$n>h+@!8t(GHSf;$?8V;TP6@6qcm_U@v;=VEV=@9ZOEnA*bu4yQ;2+rgco+J7~mg zmIV*q8C3eEhABj9$0VtBuwe32cix%|&!cD$o(=iVg`%AWJhm>dQWd99|Hz|GY2de@$HvfyU zy@fW&5E?sL5HEyOogFawHd-L9kVmUnBNbBM>A0hm&5hQj&BZn|-&sBX>CW&yQh=)9 zzIJ8hzVL_B?g*H!5tenVr+{|9|JdoGg*SzAcsoqVwrZK8Z<72eD)+&83=-P>Q0fBl ziYNY;>X=G)e2v2jS#1Nun5+JfQZ>6g*6Oq}<7pY?^+?+vWR^AMWxbzHriQN-n&reE z?9Wz-O)Tv@^3ty%Ydy)-4qCB?V*~kpTT#yVT?KhzATM90IRGm! zVEe$5^Y-MG5r19DJBb~g&x!zb0IRl{$wjw^uDPN&&{lc#^;xt}(;3<-DCJHoC_-}5 z(-GE0WCuhr{YXu#`v@tF$$?SHe`i`X@Sy>YqtkZeA?cL%2RSq!=CnN-V<@l}J|C`^ znsN-Dnl+0nCLKRE91Y&M8OjVYXll^Ek=@dyD1Ad~*m7^3tcL?N70_p~`%Lt9gx*?j zm3WwkCN-4ce7_DVoM9OciPe)uhKQrRSM!@Mkm|mDSF5mQ?IAX=v?CsyG*wd?x7n;)I#zOI{NlxU9b;^avAnOH}sBzhgP(!@Ia@l1Kg} zp*?dHGE$|xbUCL`o%xQ{*YIoO?}h@Efl_x-qvU@F6uO<_lSSk~Sc~2bA8&{2BW{oq z;kBW}WrG`~-eJr$!c?_~G#ka&|GNmu`kW-BTN@b{(x13H>4|1h+@efK8kqQb20 z+ah^^8<#SjJdCdv2?1(}!s$y5-O|($5~adDqvC{Rn>`|x)Q$0 z)l*r0Q%gB7MYkNt+EdHI6?vq-%mTDnOd2Y9R)>*etx~*S%eaY@{%}5IqNC{#lk4Ou zK;w76Z;9qG(n<>`>85d>W^=qvde#H>)PHA!vCO^uolZX>8QOu%nmxYxV8F5xxxGRp z0=`lUlUaYa?%GgSVBJ)c$=Ou>BCscC7hT?){IIT|{}Np%=(juX${zT7_%$v}e;c^= z4qRU3p(d=K}zOMuo4JULtq*unM(wsE=J*ovJUUc-Bow)`5m;jf_th&M9j!hjzL(TJXu29 z1V-9}vFA}XWE-FWAyM1|x8DClw6vO(@^LTBvn5Cs=F!-~%(171l)li#E_G|cYF%MY zX-yp_tm4y<2Pt|A`SBAZy%R?dN+=lODc3mHZKZWD>7>;?A(AnR*9_@XkflcPwP;d=u7zV$}m*<7nwh zd?EVbH(ht)?BMZafpTxa46PWUouTD9)~q32o26jdXH>W7I>(C}(9`hzL2QH8P|HZ3 zQWq@hin@y@*Lr4ja6Oec*?Y|7G8rzZJKMabwK>+}pvKe}J|K1p1RRW>PF)HyC(|hw zim^p2;e;WH;ikuYrV0)yM)OZ|;i=hWIfiSzS=_G#O*c=v**iZieM=kJ2|zIJW=LZDcVsQriXX!yi-N+{Z(2$mZPhD*;9G*$(Tlk<5|En z3uxq|p1jox)j!D*34A&ZP67g6RN1f|_20KRc_q89euJ=m`yz6(dmR8B+LE6k;k46yO^N824-mB|Mlfd(UZ=IGw*= zwa{|_M3h0r!jpYc){9Ue-)zAI$ov6%#ExRT;|DqNYRKS~GB2JHyt(0;2JVyMDr*X1 z#Y{fj1@rg+6UKbcWcV;*C+CDOGU)?6!WhHkl!aHSAkt09DecdW@K*uY=ML|vQPrR=)J)fVf z#%JBNNu16^{41jFB-IY~+v1gz2n<*!GWZra-VtqJ3lxV0D+G5&m{6DPF_7x)4< zImu7!3v|m~o--#OOJywP_CF6cMPoJd?Y?{FxKFbhP)o}BoaAfmn$Fze7rd^Xy`HT$ zOfj6!Tu#S{6@jzg+LJ-n&-8DIw0tz2Q(|k5OsO3XFRZy1DZ(3d;M{k{H`4y)*k;5StO&yAO_~4fM;4UvFN|~0yE@ewHRDDGU8RrINA=4wd zLUXZ~{XDKb4|rlEnBly|Fa7vNOwmAG3<7eUE9FSEM-8@1mMofYGYQhh5gB|b(VZ_| zDos!|Q6m8h8Gsv{#APEny4g5I4#p0Axm}w@AOH2}>#awTzUFCWV?QyOPzr^Vz49ov zC8ZY=CEWB3c7I!3tB1v&Z+*;TIw7|^S*6?Jyt$L7M4bI3y`d{fk+`Jr3Ud&EjaXLk zokG1LZSim08_C;@EE|W0=k^&~cNhejS<{B+=P;cZa^2mo>-no`{Bi;mnoP~Y42Gn=R&(IDEYJI zUi}+SwjJao-0loNGR(+>1$oZV{~ou4eoBUa69v?HMO$eo>L&-tL#06=P2+4D{~8~L zLhR`1CbIfeN8@1@9ZptmXTc!Lv8jakX2YNGz*ld~bN}9SC;41`Ot7%UW0XHXdxp&e2Nvj99a@67)3bq!D5+3Vq(Yhd*Nz!x zo_6}eeiOwFr5IPT&OVk4%UIkjNI+{yalUJ&TrbWS`fOVHhXUn+LSchv#?3bglu6}n z(eDZ`tQi5I&=1gNKzij8^>Q)9m)oDHgJD_j(6m#NG-U_!fl}QH*HL)006V0}3df_jWhUkFN<8@m`@niF_2VbB9BlYb z=3^BA*!jH~e{YD)jD^+j7s#0|FS>kFZO#glWC6DC)Pg61l;~@n$3!`=rV8hDoVjtm zc!qCS02nGuO|KY~BnKlkJeGbn|M&Ieb9|d+5)+f&AgNvMhraIi+k|wc%Uj{;*NZjdJ|X#^ILf$Tp@=?8(ehSL>CHD6 z?#8rjhX~B?@yiUyCwS#n_2!WVn^kvL7~@Fy{$&i5PUJ-&`&*^C@7D z@BTsyN(vo1tIg^27{eE(-ctyk`9+pRhd&-7HI?@feRbf=+i?2rXaQetp*d z%Q08keyhXmQN$3IyLz=ljx@fa@S$@s_KA-|^>4hH%3of3b1kv{BEC9NJ_1H_oEo3K zklGrcT$sbtl5V+`4Nsezy%)6g!>nHq#>@^CB32J!GiMA6pZ#cg1}IGujKH{m>o+8Uu}>>CHC{HNwIsrxb(3m6klSy76UX6U;^A-JQ!qdDSW# ze=L}YBX#_>yfZA6HCdl?-y3luW(v%Y{GjH?bP#>TsG0pLMDr^sVjDeOl8xR8M|+6C zE2{WJTveRx>XiYh?fv`~F4uj1Q^DIB%IA!P&g50ltF7*+$qW+09@a`@9up__S@625 zkVcN2f%QJL!0f*>8sNV1utTKZhnB-Ps}f0A=fD2lNK$!SoqF9Ez+1U)AN!7k5WPql zYJxMDH4YJ8yCi1FVKGjMcLHE;4BUk`!z%(;r{eb-mZDx`dn+Yhw5l;QGGZnkY3U57 z?l{$iyls?gtf3>`Agm6YvfQOeYv=>ipM%pe2=-j(LY5VU3};lphm-ubbPHHs`&Kg|7TVezYkX2 zx-9{3+3QZ~Xixm|eWJtXINn>4&$n{78dN6}eiI?s&2YaAubp(X$ra=JJKO?@w5DZ-Y9@BUk`vD++8;jcn7*ls`S_}O zh9Z!ra~o5NUVq6&iwHtMMPZrvN1|?1$QymzZPz8w-v95+ozw+iwO*N_qS!rEPQp>M z9*AI>K?(@w_~X@zp>rEb_fkq@ZX7EEMzR!ajcxEUTDabFb{&$1RM1;l#(FFjwCY?E zzw-N%|I+5a0<-+XZq(XF_&awB^~pfcrS8cgQ|KExD&<=ApLed3cYP3<&sx53e#RN+ ziat*Zj(!?P=_52C*xe1&S&{1ArxCM>*3v@RV^!KUsC+9zC$OdSY6L-sC>7W&PPU(l z)n>^|NH&;r{Q0`>Jk9a>wF>?AFIn;Jg3H}?*7mVqk$Hz)Lx;|fBC+5aPVM?WY1i8H zP&;=sO9SBR5xS!TTbnkARy4ce#;r}?b{0Rmb4zNO$-=e6nyF|1_K8-e4>N79r^Zd#fajIHy%d3{&LL9 z-4qeymMSjTXc!d#Gn(~tdT}FyT{SdC>=B0#icmYXq&t3}9?Vp~vGGMQFehebP1afZyg)dq1p z;m2fpccUtkG(-l5p(?5lq;Ji!PI;%dQrgpg1#dOCiaB=0+HaC$nnb>%nt6Xf4#K;D z%!pg12MevM2Qhsl!n)!H>BMzOy?)>0SzUbB6ElSE(hZoSqh$0$*GP zhj#!GhTD@RxQD3S?2qaWpKq3JRh*SJFZ-7JI3!VG000)P-hodhg{xrhh3;RzvU>r^|*$@>~%27F@f* zKqCV<^~_esdos7T)7Gv^)tR77uW5W4$4bR%Xe@`8LqYs*)-)UIav6VrB5`{l)c{WF zsS75R50fcdH?_9|o!)i2ZMN=M6JuLVCIG{DYYoeEe$`1)Lg(&{Bpt6@oR~-I*?9;k z>kpQ~BuerH3x+Vm_m3{As`L_g?4)i{1=UxV%bfpcx^_ibNage^@tu#=A#yl35?AC2 zZ1HDz05x#TUl1FPTIbBt+=~IeWw&%xCoyFNIh-tb!#bO|c1!Atn-&zg!|lw!c)PW6xPZL5zS4pHF6Im;uyTxnZKL zpr+kA{tcJ!!Pe(in&WTz+gL9QdQ#v>QLU1DnxaxNkk)=EU^HLjTHIcG(JJ5f(hjwr z$q^&-AxIXW&X+ABF5JLFT-sy4d5(P~))dSvFHL2?W2=K*q76CszWwVvF1>E)KC(@Z zl_$K5{{+amzNax?QYB-&myymXL(73D`;`n&2kQmZLgiJ6@{-lIAW(^fNbLSnf8}q? zqdudk$~=JhAl(!c1Zcg=$t{8ci(h>j`*n5kdwuMt*`C;e*_IarJV$lyPzAleObNTHJclTW^c0i!wwNO|NNIA;oSPBqWEd>439CP0J^YHR$z5w6y zlxE7_J0oqFGamwaemJ=ne;x*jf;kF)NC>sT@=G zQ~vBG3}viVli^Yy4co(D+EFf4>Gu@G^oQ9Mx444ePPvI8A3&~?Qkb;ImLfWhQ$3d0y}ep6ZruxT@e9rFzhN6*2N+sN#AZ?I z%TDfXP$7fj@LQ|+Ij-mPfH~bo&Q~7PmBud%8vsR{(FN^Cl{hs5Qo^>7DzKMHB-Z5k z`T4%sWZC^6LucXF^xlSH-{Uc`K{^biM@WnYk07y4Kp1SW5z>q?y3?bSqyigCN(>ld zLtsIpQc^06kO4zlx?4Ce|H3am-?*Rqx+>Rh_0Cq#^M1b?9H%nP|9;i_jGp<|MqWSk zY(}UX>;9~<4h3C^mOO^dRH%`QoN!6|zc*P(oO6Iey(Rz8rK&aqJuV%rDyVqw5mg1G zQtySH2)EO6%e#AU;HCN4yX9IV>MX}`W|g8!mxi198h8+_`uYsqmQtqk42be`xE}*G ztqb;_tp3i`m)ky2QPXT?VSSW$`!>jFlzNvqn1h-w|AjUUD6dZ|mF(-PoKU&2GUwEk zlaW!%(;HzF?s|3jsPYfs7aC6D1yk7^B+KjfyA95Ua`uH*h@6(Qk~4|-VbW1k6d5Sw2{7e{|EjBA%?&YHJ?)VKP;8h zn&aus$~HYX3<(us>IbDhKhT;s;WDalv%5`hJU^rApMMr){ZWj->y@|{ieU>{QVrjG z$_&p$w04Gwe&DcauWEBKPaesC*i-G{=~1KE0>npmeu?HR)6e4$4w3T81KRVaWeQ^u z#DsL8dJyoA$44&JxC^+UFVhMH#|^HMBL1^86B=T3fAzlVH?vdYC=`aL)!$n^^Rpe# zl446@k~Zh2f8gzysv%8XqNRw6d_ZxBEVJdI^0x9}(%(k@G0e>_fS;C9yxJq>A%naJ=~}zP!BBX@1-~o8GhsjhX&V z>{6__OTh|SsPD`cHbrmx3yLFp&eR#nEdfd`P0o&O6^&P?u1ni8motxsEA}}aU(>c| zq+Knwwlun**YPluXYZpWpZL|XNfz}_!2@olIjmq!HofiZmSE;}gG}|ls$JrYl$m#S z0m6U7yOc}9o+FLGf6G&aAeCa~xfxwVSf2Jdj6ro+A~+?XV34>(@roWpxHy3x#H@_Ska>ikZ#}UA?BelVI*1?O8|A;WUdbUhV2rvt1@7y=zpnM>+abv}%sPZq}>NUmBQgHvf<*rc#D- zmi(%&hlq^@BwVp_Px71o(&=UI z@_UQj9qaPB^^)}Om*GmIuy;8+G2k~0i%X^|QOdMXk+TDt#63Vnp$v zSD5X1BguVY%?l)!Vz znmC*z3dY*V1@%Z}jHjEp_Q|Z`SG@Ic!r2LVqFWPI`ZXZAd3V`8(0a)cb59M)wjQ8m zu$uN;J>W%6U{aJ@mmu>^%DARo-LYr`lSy_NyN?Tacdl~I84Tlf6>Jq;Zaoh^OHXIB zGety(w3NVITA{w=5$d<2w|krg;1oxxHB2|2x9^(_#8SLZ902glqPuS9j;rIzaXy@z zC$Z=dnXgT>;hkfRWzf*vyoST@M@WESp<%(WyRIFEB8Ziux$8nsHE09x`X^KT$5>^ zXx_N_I@^E#s&c}8d?m9Dqf}$nbK9`zzCuNOb$OSRj>v24belR)#fys;Mfx=5oOL&| zsD{LaW1}q=bCGww#&aa~qTF)cSQ@8Whrl-2_LxzeL7Lk*J1@5==LCjob-WjevuvT& zJr;z8YAVZr_R`et%k0fM=($W`ud@Sk$ZU~qs%kH;2fKr_e9DI08YIBhTlvU3<24ox zeC)O6Ky)awcnnQQ#?CI(G>=gxZE$;o?Mb%x-cHemWN^dqGZX~IVS3u?@0mUDGQ4%1CSE$!=)zL<;?N`8uC35Do4J zE3d8hq1~EncIncgH*ebo*KdvJ46N_`ckZ$!J_URI)g;=MlOvdJHb542^zzdh`t!rs z^Rf#>3x*7yOEF~rvvue`Sl*ve1kO?TbN$N4mpI`j4=uN8fSyK}trv!Kr{Ab!AI8v= zy(T^LihwY8cMvHb#9Ha(T1W{lNokUA$Q6#|btz4(uRFRONh8DvrS71B4`__X*sqVn zl!Jg|(f5ToNsMfT2o$YZJ|Oxf`S?M-sbZbS+CrzlZ z!egY>bc+3D#67>&`8A2RqVVNUORtx|&w|(Qf$T5Dl3oixXa4v^Fc}-P4CNBcwoLHP zMKMyEmkLWm$m@1`USX0m;>L-U#=!Y(p=Z_j2by2r~m#(rb~mb9x%{0cxV?@()p@wz`wA}>`d^N1#NBb#v1@-km=OviTv7iG7ioa zkXo&a^4^C*O-d?Un1&<_5U{R&DaDe@bDmy@;{KU5rvEd>I!^L4pxExCE%Sz8KV+p; z>`!Gc7CXFZr%$_~zXYl^8SR;Y`X<4$J27`ir}V0&sO$bW^`KGmHzknPNU}@E z>yiPNg?jR8SXq-7%0^4>Y*wjD(@HzFj0q|Dxpe2jMoGdorZUy<*CM6m0Djv#)e$Y@m_pFBF6DFK?UjB$=&F;|3j3`07_DL({`2*y z-Tuh_Zg`@xZT&+6SZNdJT`O%9V77D8GOXQ%YB&aSnmfi7iB^h8mUXD~YaBP_$DYcJ z9za|7>d%1qwQp5NCqa``FK1+G0umdW33f93OwmDtI}-R-}mhXN9mw+f>`&qh00E)B>G^jSgj%#uX(H5m;M;9=_Vg14JMIBtd1f z9p9Ss)#B4t>IRtZ4Wteh7N)hI9g|Kd>K#~ZTX#6zn$*_;-XCFY{CAG`x3((7VZh^$ zNij+}X!-B*e#=Gm$QU1j9v?EEOcg*Q#}-Mm!GD{0iie@_C{Z30KY6H~+BNso~xr#Y9rvi<5Tid2N-sDtYYUaM3N&5v0tGS$yQ*<~7e zVE5-$H2@I`YOL#UNNwyi%QxNXwcIY+4Ih7h!b2J+nIx;5E<`M*^~>M3hFmk=oppHd zvaQ~~e84iqkD!wa68D4$W?1B8p}Kr`PzaD3gxpwlDMtW*k`6z-Q$#d@DGny;E%`ti|XY3a(76Sa_)KOqK546S*!gs z=07dzMX#nB1HiZ1JK0u#8!Ke^$QNin!Sp#D-Uo`1DB0K}2}(}wrdpq%U>+YVsq|`? z;jjgwAt7uaHm${=yMEg<);;R#ZiE~?>kq=6+<(6)N>P<)1 z&FL4&xXfmI^ySs{fXkJYat^n89=&&Z8#x=lppkdqPB(7KuHr{7_^?8sej4YxNB= zPchdbcn4z)En59La*B)4qLSYylSx{4n=8oJ?+&RWJ{faYGHf{-;Pd6_u%_YHepYr6 z8zi#iEfz?s$TWMBPRo7%V}i9f0{>)fjnpSBFndIL(0+oKo6VD@18E&*;XgS{W3e@r zVAa$L^BDbdIZtT6EzP(%vF*t>l=z1?q`I_$YYxF1L ziSu4Ou%yBCJ?@p4fOE?!_H)(BNp`_I|DR-5dU7CWCEMgsA!4;=Fix_7q>m%OMUF{ z9G9tY9=QMZ)G*~!S>#%eYJ2fm5tvP>7>|Mkk_(IRTbQxRR=>PFfty#-=F1j$C(23} z!Y1fvRkixrPK*J3`{rJ5FWLd0xQGi>Q2^a`4KE;bgNnx6b-&`d#ecqKyMYYKUL_9Z zhJ3?|g2hQ!5R~F9$7guD~&ZbClI<#-FHPLw%SpJ)kv9u2BY5{DzA6i z0rn?FM6Ff_<*I6ijAz#K*2vZeRz{pY1z%{3!d~+4SvEzX^EKA>Ib4$88kcQvB{>=( zCnQCKDFZv`pfy(iw!0b8?)|eQ;VimlsYqe=fXO6eh_XgYaM{dm^R6D7_??BvH%{?? z+iv6T*W=uK7T;F=SkS3vOg(K9b;G4bL@nlDsnZg1&XXL}v7~P;LC>PJdqTT1ctV`C zhg7QI+~_ZGhH`;PdMzLGffGk+MyoZ(C!Va?VVd8hZIAu)Jzs0&rx7zvX0b9i{g&Q7 zsbU?-=U-c#1DHCmE71FHjI*3?85i9|ntAM7JDHV{9kY@R%l28SB*GEsNVocdJ#P!C zj+#dkH+I$tcXkxZ=?C>^O-sH}(x{3m*0d8iKk=Jv{js0WW32enbKqIz z%EWPNZWq#Mb;8S!;}NeLwA(dny1(BhJ#4g-?Um29dm)!&%~@g-f2oG>sZ2FLLpZ*7 zUXvVZgW|7>hV=VlcT8|_)0!}CD?9v-;Kw0CZAX?bmO7Uy<^J6!py_Bre3&V0N;T0! zxhH#~q^ev}-BZ@Mi?H1T@v4l_{OLdn>qS2xwc zm|?WDFTGGmz0)N6UwgFwix)|xxyFJbX0!jZe}sMN{<)RmeT9-tmx01!)P0NvscNDT z$a&OQ^-h$_5&fqnB0Yy;;d8NlEyA2@q6A_|{4 zyh!@&T;~uV+RZa_PUr>J^IdmiQK)&u8gk1>c?g$7@|~cU*N>dBkOC~)^sA|eeY#Tx zsp&8`KX1ab9&AxPaz9UBxjy`_dyX+ijlyGfT0qXp5~^&h-B{5SW^`D*Zt4}1uoGkq)-uV*AxSG*~o^ijT47bm5Nf8+`( zBWH};)CFSc6F~oz*U~_KU$ET)Cvf4$&v)P9vA3wtoerr1 zdv2LEh*$?E#?Z=AQE}wQ6v5G6Ho!PNmX@iac(`;%=Ky1 zGioSoos=er|MND+WXF5SqD0#@lSA^?<=m*yO!ldNzSMcQ_GsuUmnY~-6+(}Ho+JIw=3jp2_<#A#HNvT)rkwJ^ zPqvLumIORkTQTjtDU|&R*jPS#+#w5_J=vvwwv$@_TqBj?%8Sh0 zUTc^vS`|9_4bQfCk|f=3{`!FnRG`E!?O&6$vFYontS&aVu~6*5>bzOIzF($hmTAA8 zUIb~cvN>5!#-`3C6~6Psr7{ z#BWG%*z^FG{d@MVo`*06`G6kDt6OcR?-J(l?-+ZOBL3S64R)Qem6WCt+EFC;m7lOI zO5u2Vc)4;QEjfSzVV;%nQj+M4U%qAzlPw0slB5R!A5CY!LVMp@)_&9VZpad5AIhdR zEBAF6vuP-OU>t%7;gHJK1B%~S%P)DVCz3Qdhk-R{9PTvuys+zVGXHDO|8vjZ7jDnV zy#dEM+!e{tc*D-W+FCy>!0}twJ-G|z)}ocYbY#QY??)-bUiv^7!~!)64|2Jd}~y>lWGg%OXNI9n6o@* zrLRy(T$axX5iVLstT87<#Yaeus|)1{#JKXztm;L~o#Ey)4(-cBis{Dyq>2;hj>VN? z&s#MVWV6@9+JCr2q^nY8_)NaGUT=h3NJ7nLi_;tIxM{GFB6<*g#>dQT9^AFxG!j(v z`!o{CQZN9L=T%d5-gYNv&XIta5VV4&*FqhBkH>DwZE-ALmx>@~N=W}lS{{EyC&%)b_J zUx#+{LR_w4U6>k>Olto;4^)VS zZ~*5A2D@ixAys=XRj|GGJ{>}D=`Lh4^52RP**h6{N-jMUPR`peWPXoC1yvZU=QxVS z6aUV|79Yv(vBu6`)r%er-t^Wx0vcIHfTy}IrdYSG+*+(Ni~@ojcvREftbfUJ5g6Sc z&FvJwJTvh>yzM?2H&JSg{|+QGl9tWW*Jjrm$@P2vyA$E+YxiJ{MWO%Eo9#}L#lV|@rqsV<%&_B6& zotAyvAg6J(+&klFf6?T<)IHYA2hwSZ7nz(I&hG$D8C_q_zx@14VMq58nDY?T`2@?T zp}Q8^P zqS@woLETFB@p!W$5cPT*Qe3o@M8ZJbM}S8pSJC5gk_^&+*Y-6C!?3|rk6=%c;M!NF z)hVu9ZKD0xKU;|3domDz&CC$|abhd8^<1~9e(*wGolak_E;y`bE_pi-A6^a zEe8=o{UNicnST@6PP_LQ9Qg2$tF?a>+qVQRIcU7iD7rS%_dQOq>SkW?(2j5Ey8d?~ z3%oPNa|B1<4=l}rC7U=DT;gnEMS7wuHP)G3Eh=H};E%5FNH{z~BS~f#@0**Uf@U5IQ0 zC6DQE+rrb3!xGxie^=F`MxzGk#4^!eWwN{9cI(sG4MbWWTo>>8c>YCk;fux}-5)tc zrFdVLf-|g99TfwnpvAwZde%ni#Kj3)D|nxu`dgnwGiVUTfYq);q9D32|YAJS(s&p*o-3aI%$O8N`|*XikO5CxcnnAy_$Nm z&=*#`ina<^6qJ}(!>jpji(aJVz_Q&dU8sM;R_>143cPg2$d0rrSKgC)FoAhDMB@SB zRxV@-`!yvrtUdy8$?h^vvUPk*5i#JUZ20~XBs04jBqI|se6;-hj3*9P$gIhtVrNLJ zVaJWxdku%wI&0^H#8)R9vM`M(6{C25+9%ad3F>L<3}9pnuf{@OKG$ zvl_H5i`aGeMPkbG&@ln0tA&1ywrN-K)2~^GW6JE%UK3-eX^-Kx=^>UMA@a5dADk?E z{|zUOIe+Fx>OIFT!&#-0c~#w?`Ua5v>9z4WYr^vd6#+*_AWsNEpMR`;F3F=Y`>-W` zY}tPinge)_H^w}2nd!}p2xxBhLZZWDQBDbp8c5JXWdA+UJHsrdva`(HcS4#qK7ub^ zIC50oXo&lIRd%;b-&48NsEpXrC9*#<;!HQf6m%M7!86Ef75|-UASaBEk#W^XG%*=X zdSo6`%`m9s@CeCYu=TkCi+%U;d8Z`d1^{N?3zjPPHh<3`DP+Aff zrLvN3@Ehb*eKJO@%z&w4rGwbgFHU2Gg~O@4*7XxirUauYuAM`w$E$4gV_@QZqR|C5 zyT;Y|amo+OlhDGqhAU2vuiq+(s^BeUZ!&n!5s)a}c(OjMHN(YCxnTS-xA65&lzZyKHTtN5y&MNyX6q z*`@iUqpJ!1ptwt*Z{}-&At>bUK-!UKXL3GA3_47r_Zx4TZd);+>fXBnaO-u=?NJpN zuN=D1Wn&eOA)k;`o5S{u0wzH|79swGO6NEts5~=`APHU!SXxP2+Z|%|4&~kCA6qyT zu+GEOVT~jXw-h0NW^r2(p&kLLxf_j7#i)w6xCcrU$gHS4KN#18^2Z9Am zA`$8g;>*l-u&K|eD4;=xA6~;iB3Lah(SgnP>?kdJMM#Zcb!sPMBX1?xgSxYB@Vd7he)xxJmvXy5ngumRIxsuOQ3PjVty;RL*+Ek6T zYc&#M9q;9=ZEcM86ipWr0~}p}7gs&KV%p_GNTf=5#A-o5{5l*5lzf&iGccwo!|bleKm`_Jd6G2~r?>xY%HE1|DF z>ExGAF;(GnOlB{Sxe^?T<{Wf1_N~S(ArbraHPxeMAU#U*#=|72S$J}jS1Is>KlDsX z7~qdx@gC7uZLAHTDEo}{gzEZulc5qYbnPpU!Y$Q*@1n83+Gah)HCJE(GA0&M zz8U5gm9%nZ^SX(s|IFEA;YV$CO>~6~lnv3FkM}}DnVsheiLo>vWqtm$)+Sni zI7E_8kDz=OPdM5 z*9IW4fbJY?&O*Xq#@%-RF~-X8vCN6Fa%alMZqBI-i95SehYrD9+crWwD~)`S3~w+j zR`;!v;D^Jg+Z{vCgd9ez!gCmM1-8^{CL;LPB?bKHo{Nl_3DvEhEUAIOMh?$a_llYB z7MAerNj6^N_&e6bNN}Jgl&G}>8nvp%PDU3tS%HxiK4YnrcWeH5H`bKz)hTzOULSY-1UG+QFs-tmhu`OQ}8Ti;cYMcA>~TG^dwsc5j%dOMD~#nYo-aF=1ngwE;tlEL?xq;< zaDCA4_c3L`K~{GjG;Ur`eXR)&u)>-xBjRj_Wq>7y_Ebw!M=kwkkTgasNBX4|lgrJt zBwoqVc6t6lT%UG{FTQoUIK%wouAnOzU|2@Va7YWxaLQX#uN5TY?zo#ff^*Jdpuh0l zSs()}v7te1c9^+7^uFGxG?ik<Vbo><(_GJhiPKveDKAl<-aiOdFLxa`<(n#>4vtgL`AAi(gQ;*#S*iP#47n?n z>u|~N)rkUo_{xkW&qxwJL_wvEA@3nc{8fGV7zt<+>0;W;^yoS$cz}W7%1G_M8*`WT zRQqxwrlP3I9nBruDha zF%wT(0`=$)ynQg2{~0m4K#E+VWWQT2& zu=%g9xG(EZ>(GX-=_|fJQK8XY1pO{SnFkHr41rE7Wn?nxMf=PHM6u-OT3sit;E2 ztM+=h+n2_4yT0BFkT-3sJLaqNH8o2%;D0+??VAs*Q$}>i2Eafh%9nT*emScAU#*IN=y8sHZHi zQ@ML~^{4|r1tLa{pMi=N+4{~I2hi>;71^w24>!vo*xhoks&`DtNtH5cu(O^Jzh%r zWSl$%m$gxYT7RVN8>s*)WlW@OnKa2M$GEcc?mC1i;`_9;eM(4h|J|6R7^Z@=iIf_OOKo?bCs8wNDA;(4+{i^a2XEACuV`cho zy+Q^kGU~NoZ(`impB~M=O_1|@n9y`p6ton|_1b)Dt;JO*RdYOJB_}5$S0rai-G9o= z=O`yT*6*5y)pIGe=XDYgzSorq&Hh*+x7nfq$!&l>cjR`aGU35={`GLfgOkli#+wUm zCVZ@1MVq1L=}!;rHd=N216CiwHX2jUHREPFLTC5r-t8e_uF^#N*~MX=NFhqY%dIHc z`9(*&S6?>oIOdu6*7O3^epNF=oM50#i_-WM$M_ELOM)~^_El>SdvxxS{>v}MN=u)i z0qz>ZNfHspa@VnQKYPV^Zt}u<%Gxd3M=Dj-vCIUcXLEB&gu0G?!g_gE*vI4?=ho5F zVfpaC4U{zMHA9VknJi^UV7L$K#~X^ZpPOb8&wP-io=~!IQd? z2--+x`Un4k6x%41JsP1Ewi7+52*PAv5k6)-6pUIh==Y=o%1%c^6s#ubvyB1MVm$1L zR(3a_{=RpfnpXjdojh!g=w}4u3;>j9tRx9xv+%R{u&5?_RT50}!{4m^wsm^6{unXe<$WJ#;oOP5mG z7zLol%G=55FH@;__nH);ZxzoEE4kd-cX3HaIWoahzD!kZSM{w@ehZO;E@PR`rCk@~ zT-JtG>M$~g`GA*hcX;ZnmD?-Gl`{9nzl-=p8`|IGyg9dSoz6Mw=XdXmi=eu2WgOP~ z5)j-nWuGoaEJr5t@zZxi!&14#Q~CdESOef__E>AUmXJ-YWEk{>^%Nb0lUx?HZBcroGD3~x6yu(#06SW{$;!=JY%vvqBOa|6*H`6@ z_C)=Tr`Q_h@t@QF*`y6IAJ)QLwmF(%`4{KSifpDIR^CM1Hpv46j2!!}`VqH?j{^RH zXiQb_!=%#h{1iMSE4=*nQ0>GLE7?w;YNt_^PFl@2@)BnDsmB-AVig53KH44fSI@fK zx1UTtcyF4f6D)9ohkcLMZU;7`IHG&w zP4XwXYen0d@46CzQPnnWQ&*p~2(Ja-zo;Pk*2)=WG1L1vx2kpOjsVYh7&droDEtTN zc<6x%vjdiUk_%dV|crnut4P>zcrs(MFZK z@f=3llgI(!@dd`NkeprLP-CXp*=>{}oJN7ws068N=!y)lR11WCUBf4=Uv_dnNq?od z=v^Y}P^Bt4qtNKWkLN!?BxFjLiu1oEw*>Kl{hxTmZq}Z>z;>y)L?lx@RG#~@#c&H zu)=H%I6#c)?iZ)n(rRQ>^C=G$i+i-3vzF|Pu(*#<+RZ9s)a<4Bm{Lh!(_syB2hJU+ zJk>!=+EpQKHGk^Iw`({X?S7fv^OAN|_@=d@o9RA5LXD>L0%nSPaVk&xL<)ot?g(x^ zQfRF;eb! z-M>Z9L9lC_k`6=1cGnJCke5=wjC8oZi=T2eGhec=0@ZUE%aBpWjigZ^fB_0elI@cE z4qTaLSw*oQm}x#(fFyH~WW!pTbYB}ARXy3BYDtW|yqR1qNfZc1OgSd1SKP8gr3$u{ zSqx&rdn?RtoqF^$LHxHw4QXn2i@l{u)lc^xCJ^{7q@+9_mj8Dyz*aG}{hAI{?aQia zy9TAQ5R{)gQ|&QxNqNzJ39+8_Fv)tTp|l(Z3$q%l_uZ8dH{s{xxGtrUovg6tlE(x@ z80{L}0s5X#1lEOZq6Je7GPxQ)74fm(0IYn>@bSsWB1pXp85=DXHOq0R*RkQWU>xV+ zG^N&n9_9KipP`lqDhIEfpm3vazM1?Y7bJ6TU=mVPx&22sVq( z3?V!8O2_;&Se19o6Gk*gsFmK&9Qz{okC(@Y{0L|={2(jISO}j{*YnScbyzvIK$HH}rBZ^U?qLK*Hu$Fuo z>hapdP^HW;`km>kIC?rnk2?*l4H9ixM0cF7|JQ%gX=4i#O=E?@>zo9vUK*0PhqN6X zyl{G{k)xc|$-j7<9TM%@Ewd7eX`W2h_mbnWg-V;DrpeW^DY#sNhQ_G26Mc(ylCKB} z)4D9{R9kPgkZ5N3D*gUYP?is^c^r?Y1|DBUb@ntcLLY#3w#}(f++<_{EiCAV!)!jG$D9x2E z@|QJMj7BiV;-x&zd|}A-LNq4wzjMgR3ICAdS$wh6+HQT6EG_WVCJ;e$e_PhcmVAxl zNk8^hmy-1Vq(EEmBcEGEIz2CyKAVXat((+*(9=UqdA+qf6mja4ZWo5DE+cfy$9>82 z(yt`blk;ecVW=|`*`=Q|b#Zr)oxbrlL)$b5we6YoIjBfD?zP_=A-j7VUtZ;kb7lf7 zo6>@s_iEgS7g_7U`})+?rs5rHy*tC24u_CdR%u)Fo|MHRChG}))XCXRp}$(fZpvEr z+P^v*2##aHB<@Nv*~tD5QxridZIpbv;z13yT}J|b?r>SEhn<{Yh!Kx2xa|HYlUX=_ zV*v2KwCKw(Z*NO@y{EU$%qm=R2=qwz5%&y^KFr8nNguK^s>D-U(8cw;^W_}NdtNSM zbfc9_y+vX_fTm!XTm84Y^2=C-((sfIH`Nt-6Mo5c!*oBco|F31zJ|MF`Hr9iOR~rc zRT)_b2t$=4R7d^XmddEE0mJL)ljHT05nA#%DyC}N@Gj~pANy1EyP+R1KI;-^4O5ge z0)KY*Dp%&GE+jrnZ2XWBN@^OLAR(KM&||)=``v7^t7kKJ%srcmArg(AoUbSr*YjND zrgX~8%R5E`$@z`nW<=bxGxF6gpGOOAzC^OwGx31!FjtokW8kCZdgcjoq&cUYggO=} ziULwcaQl(C<)ZNvr!>{n-tXH|FS%lOS#?{Z7J2{lX4CyIirp)Gvl~~{CM9cjz)y$# z!R{`T2Eu%a+XD9JE=kG7zLKTAHJb50QVuChd1DB(j5oV2^Y+`%{j`hPzs=4|Ub=++ zdWDlN1gh&y1GD-@QN;PB6K-Y)E6^AjhEzdMEYbd~7LC*#{+6U~b$qEzt=X1USAM`?G*ER@JighkJ3!S|$KKG}aGz#IUU|G8}BmYnUJ>lCVdAa!CV=pdW1s zk+TJl|Ca4|+x&!0#P-=ZyJdLNf)DedRq?sXg4psQ=Zm?OZW>-K3g`%~im~Ow%+YUt zuYA!~dMbBqmzz#BchrThtQ#?QRZoXpvJyZK46cA*H~;lhs-P{I?eLxU<_r8&=MIqF zaIl%0f5B;gT#;?@Y@K!C;ji5qJD0`P>OXT^d~H4!_r>|QiqkS1{&elM)UOQ;oYq@` zZGzfv-a#DrwJMG?ZI{)b)`XxqnOb#sLEx1GxsFJY zhRx2`7}192#=(`H>?brz?XZ6j68Sa?Ac1{RlRkI*Nh#V!K@y%R)j*?fuE(nl*(yvY za1uZex$cMSqfla;Pe9c+EQ67iXj)`MDc!3pE*y^A8M)$IYh83+^-GK<(BlaS5gdvY zcn02V#H#_+P!a$uFYfW2Nc2G;r{dC`%R>bX1G2)yGP?jn4;fj+Jo2_9Njb}Th}*^|4z zDW;p}{O;1L-j6k%-!H^gLgk43wc#Gl>JN$Hf?Ae30S<-ZIfM>VNZ3T#>7|a4i_W@2 z@f|w3lE22Vc>XsTh3SnsGkh8{*KE#t#-tXHW6L?g!Qg zcQu9gwbxBhIZGb)s<6Mj*+UW)zf2F32$%ew9lE|TfgyLTtOrj>VQ7O0VAM z&#H_Xs-~MgSN}oG<&&j1Uvz@PYdzXN{RMw{WwX{1XyM*$P{jClYQv2~Od9QBnh`k< z0=nz$6oyZLivbb-O%(K$qoVW^DJ8dr(C_SO*m!B^hp*PLTR+RB!@nf}c&G21N(CLj z*5u$LNU`G+rf?Cjj4StKfJ|jg;A#E+vDx@k`Ip^GI$if9n_9`gZbjde_Un+L}mONWiZrs&laS8Qtyv#cKP8m3JgI5NVjcn2Q{(kA7#Vm zYi@TqC-WNJZcvm0+v@U;P4)$i$v;<^JAdsWrY;~P+8W_gmSHp2(A=bfG#*0|Yow$= z+e)jYP2B?#Dg%4e{jgO6!K0<+_0wcd@Ml@gpHJfZn;re`{D|ub(4`bO9k+4xD*HK< zhpF`44e30~59W*^dQl0W@a#~l>U4(7+Dct``eDR6oY+K?n|gJ6rS4bM>qzyJl1SO$ z9@CGE)zf>R%?Hrx%}dc!{|cB!UHsj5C;Qh=X*oF?$_WDS=n8UCy?vKHI$&YsV7D?U zH6?6PK5{H2F>(<*fDjNs#2>lWVu%7UbMpN*{U>sllRH(1JZ7Bfd{1A^c|_%Br&wX zRaoqUn`-8XmFj6pSQI3GREf~-X`120OiMGPW)zMYB*Jjcs|1H-GpyBghBGW#`Qtmy zCbRtqDWx!C20m04Y#GF(N-SAP*P<=#@tzbEoV?S793wy*+cu2Ii*AVTFO>jt{0HCo z8hI`y?zRXlt4AgmqM~jpCEN1udI=%pntAA1t4V>)yj6^%v^9p+u$*x1NBW=t&aron z3JIPef?IjzQ151{sPg_39!mFLe|jE?k0B)Fj}ZIY4Myt+7i)hNfN?V2<(}28bP#+` z{!lw8y2l;f`|wP{88E@mweWgmyzMNG->5D%u5b=UKyKf4l~9G@S5bpz+Fl#R|5gT* z18b@&Rau)HPE<^l0#G(jodx4cO?Y9_sX9 zFFuAx3lik0T=3EDAzx2x`W#*AtoWrky)CQUQ+-W~>z%#)0o{!2;hQ|*t z?NJr*!;=ZrP-aajml^9DGzTA;o>6ySJ?&MJ2!5|oF?&u^=Od-Sgm1SoeCu_0vWIYM zhnl%N!NJ|(-dK^KwS>5-PGEp&4;Zgv=KcCKOy*xeF8I+-v&^J)+c{Odd1QY#ot2tK9c3Nvb{Z`1Ty# ztj!078(Y2dH*b}pMR|?ybf)bkc;;}_WB~h_8j$@-FV1ndj%RU-dtl$hoagxC<`8JI zs#=*SpSpMHRaSpObt?Tp{K0Ywi01m`JbKY6XL?yzHBTy6&8$iCS*50oR5hx@yow8jpm=7@rcq#ot%(Pj zci*{Mo)G(i1RQ(MsKk#L<(xE7_cKr*1v}@&N=3?gwjfSE=x1{!@5jv44X*y5qVxVsdjI=y z-*Y;h((IJEHElR@?>#zM4lq%1?;NOrxD~hORGQmF!Q3h0LL>*M;3#MA#FeO+JNL?! zpg`-URit+`|QpQjd}@7v-)-6j9hTacT5_i!HIe7H;B!e|M)G> zi7QP6n5muHu>hs5nw!S7z5=mBr!9lS;2!jvePU-?5{3@B%$}bL(tZy8+bBXM1LC_- z$hpQ{g`&_oCVnor-d3>ZXl$y8%5#z*d0o!T=Kz8C!pTzdkf9#v# z>_cChCv|EVyhbS5{!~N+Lo25v)o9g+j>?bR5R$t4eK}2I)r+zhx&9AR;!><`qm>1z`gM8zFw*}Bw{lcX^?%AHgA0VY8BpgE7CNp z(@r}N8W_x0oygsp>+3z7nKhxZ~$YV|N!cv97OkIOQb5vI6Se=@#T5?W`fPF@3NhyYJJ+k>LGSKXeHxmtb z2%OY$pDf<9!U+~#g;wT^V9DHRPmUu0Cw$ki5JJ`0|95NTrv4Y%tU!T&sVwn_PX_nC z(baL`Xt^5}DH?;-;izP&0ov)HU<7~|INX5R{Bn?vl$Nl7SehNBQ1uIy<}1g`H-zVo zvt)W5>jNGE%l(RMT7~-jB2Z&PUEd!jF*zY)UD~`X zq*f8pOjY@H3l}Ke>HlLVs0b^O6ZQ6e*}yQGBcn&7OCWW#dYI~+(D?V~4whdpL~o2& z=%>}>!vsgVffDN>k<~I*^-{~xVF0myFH#70adACD16n~023faaTK530QG&hdF>yT; z+)wJt{>AM&7U1A}M(tLD(p@PXq1Iha_h+#E2HfebHS=LR3*@Gxf$4ko?@S~WGF!ZQ z+b>@y?lSy3dU#)Txxnm{mbC;$>!Ipp^^T!^UoCdFTW!_tt+r=c&Hw8B78`F$#JGvQ zHJ;;+d!1Z=;tMK{?57@k6ZaeyKPeNhr?I^b5Zf(`_t}aZ5iEod;HtZhzr`OYS=XM5 z$On^Wzsr9LzRvj~@Ok29n|kg%d^uB_q$SGA+|NsP{0?eUf*T`*ysN5?$j!Z_WbY#@ z6`rYfIh#bF(`MyZ$^4f>`Vv(1a5Tp8p~b{`@ZRf%TiH+-!aASO+xlt#$6G;LEFHR* zHVCYab%uDY%KRHxO?+`nW3vor2zZ4~2AZqYvjibD-^j)-0Pp{9PaZk(|S-C@}2r)P~3l-3ZXsVmb8Y3fCk1Q&S@XGRJkSwX6=nsYHwpk4A7 zUP>G2m#N)QZxU(_+)o+x0hEl>M;EH}gI|>;cg(N3NKOQ=wU49KL75(x1C_F|bElXj z=Lm~{EjTpT+c%@rZW9x2_XQ$6E&RjGb$_-wU8-17%B;#y^tUg%o9W~R;}!p1LHwF!hQRg-n-#r84}{^AMDb9!>nwuII(3Gg@6$$+tjjvqm+4(rlxdd-`nsU z@1fgMGdRK^q1fTkmw&5KKYFzZC^mwkJ>5tXqw`!?;o90~ce4s+xZ%C4o4V5X1$0#o zLTUUt$_{qgBI|W}&<&JF8_v&bDh~@nm~DR*qk33x1Rk|CYh+B?Z8sc+BPkj6ds3== zk(2&YGhr1%^u;mh;3%Dm74c_skht%RDxPjgIlb6q7+OCEuH#ZuZ*-HcqTQS3Wk5mWCc#t~$$HYr86i+)DHjU+ ziRSy7IfnDVitEo5?6+2|xu53mOyr}JwXMOeldEIF#`abiM-cR8T-4L^G@Tz@(h1uW z$Q-~`23U8r_F-7^L#giO6YGjpq8$!an{P+bW_Uhk28sVbMmu>hFe!)Rb#p$8kBJ;b zdgab2nVG&h#^%oh->CW|&(?972PzX24f3YPM~X)KfYUfohc%^ctdHn&|VS{hVZ2Qcg3?bR)7rW4QwrCT^`kV{illtqxsBt{9Wv}Nd(&{#h%`-4y=fENC;r$wo?SyZNTd(n3 zQ1OMO#p_~XJ}@7Xb2FqhVoEcN6cZu|E=2=_#4AQmUT)@;4H7kzXUqYzZ(EN@DHV|h z%tIPy@)_r3tk27FZ;y~E$ih9p&w;phIr56ooi#c-*M#lJ1AelQ?V9x7711}g==^5_ z2z`Cw(bc)O!?#Xb>vKAy<8m9h45uM>qwhfAzLwWWw~L6`NLOGtfTRi(+{_)1-pR2V zuci}dD`_#iYnONP_3aVXpNJLHvs2Fkl!+&xlGKGsliI7aFj=MQu;UGTr48mtorJIGTlgZW=cA1O6w7Czp=8~7-(4*yj*o2&NtjelAZ<@w(-x64!uAt%XB zk{eAHMRpbyOmU^O-R(50nK{*h7*4jOqmrRiUNxTi``W0M%Z1&>#y6-j)U_2%gZxp7}dzAkq@-v6gZ%wJnL$s^^ z$gXfKn@AF^lJ8bmHnkzdhL-a3am`iv#L|5B6rvEx^4^QzIxS$g6pzItdfUZi{l)F< zq}dUX+k;di`H0#->poi89$jC?sIiZ)+CtcUv$-UB-b-PF3|(SVLn`9m{wxAvh1(ioWSHwl*@QIwA!SUx!d21^vG4XcLc$*#lgMI~B{4DSv?Hr% z^4ujfZf>EK5JGMc{NG6|am{~b82Lvg<5sAQm_eP57HNDXaYz!1nPOK(jc-e33 zV2>wO$8~(?D^#j>D8|zM{5lAI0zsvKkcW)Q^`ElGF4@iMDy)xA7*rT37VsL}P5Hd=SQSs$6w|P* z49;VE&a%Ey0bA~qqN<5Hw?iA|Nw}H2@bGJef5uC{#K7{$mc+r`+4{}J9ZlOQ9fDHS zAFy|@%*v6VhuFTBJVyzC(2ilR7}g0NZ5gsSKEpIgrP3!B?MC!UCXS4hI}6>K;P&`; z9Wwu2am|m!i^h%{Q+io_Gr!bgzx+1-qK+3B>P!HaS3V95c$VLF04GY*Mq8K#7i}N9 z;#am+-i^icwgpo)(#ie!lm_d7(G^wudTuN5XHT}aw|45wjmh6qoSq@HM!J)3npCWt zQ>U6tRB!h!sPh(Q41oKn3$rnhetpFbkae<1FLpR*P1DdL>JJJFk zLXtsV4mk^-T`FDjDu>EQod7*`O61JM#=uW&yXhrV%kr89k%e|KF0QLOk!L}L%P?g_ z0PW2)#THsL??vl^5q>yP=QL0-$R_kuB1a_Ic7SO27 zIEhj0TyU{c8)%|cZpk97zwMJp+l04A?bZ;^aEHA;^{hJclG;s&Qk<8Bf5wX4?7;>X zb8XaGVOu)vG17YDB(PJJ;%ydbbb{2z9pZ3{QEwe1?2jD#IXC@2S5y-6N1vhgK=yEz zPj`N=y-?QS38(<7MfS+#d+96WvshZJ5V25kqX@6uS)XBv(!j)y&qM0biZfYKZW=yA z&I==I>zH5DxWOInNS0l$cnp~#baFaB%}OO3Zr0D58#PSu?SJ+p(eWudycgXLMxi?1S-3jK22pw!_c5vU^2`>NGv@OZ2clIJK zayN5TBR#X_TgZveGCV3@1z~#-;C2*#(hqf~m%XjNymxY-cmIPR|0Jz@eaKeq;nHB4 zb9-#gBf*<@3=f2>AAbA6a6RAnqE^TH1fkXTM`Fj6x@CXa*=gxks4nvjfRt%9gtuTv zwWc3d@cA+03j#7C{l^=3bvfnsQwyo)BY4e=++f;KTKtB}liSUz!P>-xR^F2&qul;? zVkjS=kvC6=@ZQiGi$hZIgC!e>({u_|_@&N{5byhuSX&z5ZI_GWsCB-?HwR;Nptgfh zZ6>U~dUf-(35m{VrlKP$CH&Z=GOIbxEpBdnBG9U}C6oFCrCN{R?`##d#nPG;7p+?w zY9gi^!NeEx#mPeH`^f6KINr{d-PTh99>S)!?`2>?GhC`#b{=5IK z6p~~?0_h?C#-(%8hvQiqW96fzv*EWCVd5HJTU$8H5%moSTkWOPheCIGaB<^71l`R+ zDe`noov(=P@*6FM6-|irRaoyM#Tf;;=YG@g6lLG-+1wPA#Smc1qj{ME9ysN`t-eLB z8E;Ihk=0O6s86(Sl%7%n88BxtF@mI!FYT3J2IV&Efl(FGhxY2p6~c=4$}=N|Yy5vd zhrIC1Zf=|H6$JLP#4jD#6cce$K3vUB#rUVfnVzr|ec4km<5xt5{Y1CZ@D!lE#6_tA zpsyh_=sRa*@2o13WyH_^bwhNv)!Jq|sQ+iGHK0QY$@2Gm{ZcJmUTav5Cr0>%b+%P8 zRu&#h5bq1DYnFK27GcS?$XZWYZp{y(Dx;BoSQZ&tqBCa|VGcV-rUnHxAr=sBCQQY{ z2ri{Wm084=K(lgEvd2g~V|X@Q_JcJfO*ezb{Y(#Q=xUL&EH7$LR?AkS>>jU;p@3ig zTMT7v#r5_}{=3p5c{&Rh-W^*v&DTixai|=wGDk8gJfz7j6^e4j8!g+ga?SXk+We+2 zB7>b14Sym0x#@{qiL5nVl_s#D$<+3ZhM11Qz)e07xGfn-CbGvlRxsBHX1?`#& z6hVek?asv9UHI-KAtr(rP;cxJ%ATu(9yHSIPL!%47I8#fzSA-9=rP9g5T2V$y-l3!;Grs7$$Jxu_8#%HgXN$P|+Q;(tEGo3H{BLo5k#z(oocgou?H~GztEQA? z6uKc9TMTo`IkGr)o_M)bs9=^{vPlA3&7QaV26`Io&K!M|N)&AOl)c};m-9kFANW4& z*a0u+o!7(v$}vx7E*N5V)JjvxbW_UDo5|bW&aj55Y>E6BrKvB{F((r|udWP2hv^?3V-bQ!bEWjCB}^?G%sUBw zZA7}EspsqObKuZIi;wG#_j;JhWkylapQXa(x;e$oQlP4Qy#WmnwN{VOZDLve(giyd zFpdLOxy}#wjnmN!XWGZe4WH@KH<(KsE`!vgNq2VyN;52SjYp3nw>MC6SI5z^x$2t4 zTr&$CqO0V-vOLH?Rc#O)Rn=s_F}) z{X(4?u( z^mk@%p>ggaxv>jR!X8J+`it-dtWcrab2d{xmn%D7^ZIvEMk{B0BM695gEex}(692Y zU?lN-!}cAdg#2}%_uWP4!hyJLwSSXQ3+hP77eSl*oQ*)Z!8Ky7(@$%xF^<7F*qD7* zTvoTVi~w$_?DWk+Ja+IcInmLF7i0f?Nfc?KxYhe=PDuJMSJ}$Umx}qx{I7lM+XsE4 zYo1T)CBQy;bHY}YAPMnv%=EEUgT>O~5EdZ1wF9)bZ8IiMK|{}XwpV6Ok_Rm(z*3JEo(VG(qtrQ%B7~;L_Bi=>7vAN@mKE-5*H;dZEGo#Vr};C@?X4}=u@%0 zFth0l%EPlI5sR)omc@#cE;B-}0h`9iQ4n^^qRBnacc{tU7Y;{+f2*{R3uM&K5|KQB zND}ZD^awdS#ZfKWdVhv$fDlZ%@jqMX%i)L+VaKLaj@+33{r^4umpfPF^Sf6~rW6Z8 zw#D1+kBwo#zI_7k!CJHSw4@$fNM(DRAf(R`01PVGyF(Cz1aEOfN9b%p`H@@>*oHj<)T|6W_cS`6tt0!A;nTe(x@(p zjBy_HY2h7YIn`3X$SIVB1LvCaiAPL~ewrn*GUT}4yQ=m6b+^CiIwzSF(9!V+4zHsZ zT8-5rJUpK)gV|yovV^Tce|R1WW9-|6F$#N^L z1oJLnp6ic65_QrFeF3JJ#83wI`~yBzs_K_8ZLlm>8?z!2xHTl<(8pfExcd4(B-+2| zM-SW!+yPd4&olonvX{JVy7MU3gJ-5t(xp+NhZkgKQE@hR*Bq5n2#FFvPVB5yFDk@l zI%_VYn>I-ei`7Gnqcmi_S5g}XToe{^Ne^~Hsp$)9(omlkb12c>w^}dVQ zGpnzmQvkpy79?rgr@CtGs8omeL8m|&eH-sh+o#$sCCNXnN5XvmyYl2b=O}d+zwyUa zYW-(L{qk-}&7+j*!1{pSXdhB+@*?r1+mEdyWrlvKm4Buq^9pjJj^+sYg^R)v2^+6! zcRX-tlH#nyOw=0htN=&hBJcG4i@WzIQjIl~LRL}h%mZvNM1ATN_p%$0X6m?B6s#_2 ze)9onTSfs)ts7CTu86Fz2Oh~=%GKngSjM9wsY+E1MqA-wK07r=Ta<}4>DJM*9&wR> zl7MZ&_pZLowsq~O+(s#i({b_XC2Cczb&rj*W>;GC-eoPu*oQxs(JQlUiaZhnWE|)ne;^Wk?E#lx$zu7Ak9#m0-V{CLNg>|K z$F53;OEQOJEuiH?6Y<_o6{@X&(wM`qZT{Y#awh~F<^E-#dX+N1DRb=Y@cz8_Y80#Z zJGQS}ApK|5Q_I!-F_Rn{G@Jy>+>w-SnTGE>Inc3ftXgd>1S=(rCQ`GAc+7WuM`!)Q zxuSHTH^JJvtDBU9`~@DHzeU2_NwuhUaLOI|3!JYf8AXZMRB$f)if%HM55 zlyngo1b5L`;e>7J1&kaa&LX|2g=umzCZ&$k&F(k|G&wuV%!e)?ih(&dA_n#4E0^dL zfLK+I@j7j-I?cR0^6zn#b(fdR1H{MuXw}jhur;ZEn%eNJhS|?V5&o_V;~U3Qwn7De z^-JDUPdhHr$M)8XRQE{q zX$a0lGx{j(G7Ys`<2JeT4^i*HJYQXJ4a^6MIox9&QWYOtx1$$w zjwu|Yhx1nlh4BKZ*D>@#hGo#ZQ_$z{-`10LyHhv}ODge*-vfi%OU0Gebw}x6C!-4r ziA7!DR?fb!Ckxw4qt*?%M%8W5HKO#k``k(Niq{{MZ_QtpzVIztQAiMW0Us7bwT)C` zzrMb3PhZVV$u%dQWJ_NC+pr1$fbx0rFKw&sNzkQrqj}G0;0Zl1yj&%p0RL%a=SXKD zkL`WuIg(2+Q~~**NzH9O1NNJ*uoqlxt1hnp&W5}ac=w6m=Ms>{(0Ctjnwwdjv5LmD z9#ZFwe3@ND-@3=0U_Nl=(m1i!$XKbB>YdS=NB`CuBx&e^688@JvLHn(!>A12to{Ai zJx*C{MaLwYKc(jnbS4^6xy&KFgax8-V)$gSfd=}t=8>J#7I3EKt#t+?a>xW9#hpQI zX+CV3omS6HyKw?pnTse}G3%&xgl(<_n~@w0?kl(>^mw21_o|!i&uS6bfI59<<+Njz zc>#)?6g^0+YbiLE!zY)IqF@^~KS*%nU=o2iMY}vAs|2;(2=xdBie|x#bnAHR2XYnI zHnDIml&&tPR>kJ%ieLiF@aa_yEO+Xi*BxPtS8%v%ocBTRi|(^ ze5>w6TJ^VzK4a17-1GM4eetI5f%73GZrpTWpfP;Y0?Wf(K?N1MH<&b-~Hf<{P*Bm^3JDeU&a1)JxZ{oW#Y)bX*v48 zD_cK)(BL>SnQ>IV@6av3g4eih=A$!Y`EnVt-Q?+GwcUE}2zHe6b5Aro@CNjI^Ya;g z#n4c#f63hRTB!pfrpa(g#5_Ri&G!FNTqJ(N`V>mn4YH~#EM9LNHQ7%G(R}S;DQ^E% zHWBcEwv@-MJN<G3a76zH&yU*4qJ>n zz-mFG<8geq5i`j=aXcfR=?xEIY+JS z#3P2xu1pPUF`N}5+_kk@-}u(d#^pNU)&lC;wy(BtGckGLi6}@oBg|LE>f86o zs^2H|+5ck6(rm6=-}0#bMRl5NixP@Zgf=xwHk3B_(4~s7cSDv!WS z=UM~sPg*op*O14;7Nj!)B%4SMt5NyX0J(I#lg?1;shaaVv$(0%c}KGUilM4_s%5un za+8EEGXxv#AKq1RY`1?gfoy0-Ez4M}_ra>{kIYaM`|fE%%TinR{tnS~bARK`W=<5l z_B%ARligM}>y=iIG(z6J1M&>un=&Q!zn7#Rrk(SPT(dj}x<_de(1YMMY37CaCDASN zd4*Ln^q^1rM|GL|&sMxou1=0EHfc=DQaG13*%@wysl1tGb)3VtT^6h`G;PO~X^$1d z@Mfcw{?PAH*NbAPXmYZIMAHlS?q=<9k5_{5$@Q5I*gyNlM)s!>TRTCOLAzs*hWQ%P zkm&L;Q$TeM)i?-g4X^xK+1KDFZo*Ed+bL-YN~+|ar}49G#GQ(mQCwdK zY`0_h*%Ip4T;058`^>>$XthnX0aSlbdvw~MiCEvEpQ)XH12*knemdC)Xe(fV43v?+ z^NnCHWfM*qyZ-wAvzO`X3i>n!{REMrIh6%~92IN0?DbDfzHRgY&=y2%^co zluB^JHCVO58OxGIMRxyNHjw($)G^&IU&UAH#i)35Zf}FFof0xe(K}bb2V8ZtNV1X> zE3V2vjfdhz=)V{Y*wI>$qsBWNNWsb>6poGkAG&;vBWd{;0$iz48 zELYYy%KsEz1<)$j0|WIDeBX_g~*KJL>7gC}2hiQ<1RzooA%JE|5u$^Ym~ zN&cxvI+WY+iJ53CmZF?X*t1WP=K>PxiPMya`3W-|wjMUET8 zSSIoyb2%wlbWud9bZfZ(F%>#kIXBmgz>-Ghw(?;LNAJuXnlTt6dYit|O7|rkZanNR za$9u1-Cx;SwlH^_VS7TR^$j~GnNN_|EQ4D#L7_h1NiE#wK)1SvrbL=v++VdFvgzJp z*ErfQWK=T_$N>I@ZC9Ch6#frtGpXclUR1ehpCL_mpZYL&I$}WJrHNtm@0ar4Nf4 zcqskGoSuva837$Us8^_B4~A$223D8>b$()RIo?B==;!Csw1y#A1J=^>puM(#BefTE zpKP+GAf5McLuoh$oSQFubnDMpnvGAh5!?E-q9dRZZk$Ixq7f@&l&! z@=@Qu!TS|8bW&(@_pQ9$Orn640Lr1?=*$qf50bB=TOmCw;`)oM`L!%ouo4^&_c7JV z5Rk>n{Ci|;V+zboz&?u}#h%!A`~y_nzS7a59i8fi!R5Dj%@ zi1Cno|NgnLw^T07l0*JIZ?|8b8wpr(ravd;@)$e%tJGP-xw*qMG?C>Ee}!?QrQh3H z9N0XiY)}oyTQc?#%e5mmC~LH5kV?>z3iUPL6G}O3asBU#<*q0dL0rGPfq<5rOfE!x z)-KVwIV|?}$jcvQYOhR4rQ%uH1iMO%NRE8)N35;3UEz5E^uq3GbIF`k3t2(F><^Yi-#=fIt}T7Xg5@n-f>rr|S+ZJ9F&-0mAc4=UD6yU5kLI-q`q6Hd>B+USY{uB0 z45&jzlnovtKg~^VbkglYlR5L*HMMto(@l*x|T2Oo>ZPpDf5}IJqB778D(Ku^3`-gnsOsQCe;NX?dlHR z9;KapCPez|b?QjK9RbmwLz1wza1Cu7IfK2b&S6%|P6QP%s5zaGGEwRYi6HwQQLSuP z%2pVU_M9BwTUTU#O{{nwr+Vk6rP^8jUVV|oJN)nseLp-ODox807}yL6%FOj#YnD!6 z7SMNIRct*1Nk~75Gu9PoCgv75NSELs#An%KqI;8_lKsX;-Fy?+h5m2SA4a8Rl-*O? zrB(Vy#-+cHcn3{KL`1+PAu$qkhCE-%b0e{W&4IZ*kHftgYYBr{Ub-kGNLHP8Rfma|wDP62EF#?t3;Koz53Mweg*vz! zxJ~PYyiqG={vuP?EFkjocfN=wioePDa`iC+r|A~!p05+wbUCE%JicdRmw9*j&1jC_ zsNsH>Plnyk5$%Pl%qT4xH#?k$87L2O%j0xA$IQxVE(EndD;Bc6ZfE^^+ayZ~GwgZO z$1@`3?|PJB*fl+<$bPY55?iu)0-ws`H+94sd(mH8UY1OSOywIF8C%g3vM-@|F-pal z-XnXI0v$5TYnm--ndL`~&Vu?8R;?i+`rZtoRHQjPhLdjJS*Vd#A4XepRmW%srFywN ze@vEKsj}}^TJaD$9|$pu3!dcxf{*--wIAjpSE7h9E5I{6eMIitw~^9qyk7S}5QTTA@kfr>J&o0fbxt)`7`Tx*&w=;(+Pp#gzd78Nh*^0-XsB zQu&z%30k;t>hIV~Iu)A?mNsy;qn~o6iM?A6JaP+IuNnIBPzOnW@u~mGFZsZxq~L`{ z-qc|(~r@hBrDGh)pOEp9;&S055Ui|a%C3N`3= zLl9kMEyq@MP2El>M*8;5o3^LSAHpk~gJgfJzn`RpDP7>ixSKEEm2e+CFl6~>XFrrV zC3ui+!ufbI@J-p~A{dH?<6o^LA;O$VTY^rL@0tI#8Z|f>_(6mka3rEvPur5Bj2k7V zyay`D(1zC05aW_cF$;_&B`*$KJ zR>rQ5z`L)f9;nyvz8F-!okNYfM+mG=6-^ZfCcBBwM=%r;DGn3Hvr6Nb9qh4p_D#ig zzKBA|?a*7iVCbaVU^+)9CM;p#Koze>q@&V+=L^H6QqgoDW!aB8A7>1yy@CIh?_u-iInN7lQ%|M-2xK!;2Og)ku$lD zD>XDnI=TI>cR-yr$gI8bCPHGj#|2`StS+IyZJo>x2m<{){73s#=o8lVOX0d?p3IL}UYPx0>d>~~>;SA>YGF>L= z$W5Ik@J}p_cj=oa+t((7)^z5g3!vv!nbee9{dT)w0h^37?o$ELTh*LglMX<}A;hgFWC8xWMQ zzs__@;75(>CxcL@YY{y^g#L(pz9*9;fXp#T@Tq^I%x*5w4h@P8icPNRg~E2&eL}3* z4R9R?HDMwLtdf@<>Hcw1ZO7Hn%X6@B~FSMnkFF!-4_quH@C@l z>6sHS7cP>TUFE|mfQd?WxufmOOnjej6RQ0f z6ty$trf1WKW;X=-vi@xHO}vBEvXnae>y@#^#mvXXN}$Y>fi)1&59*9R(>B-Y-9_`E znSn~^d_`{qkCjhpzi|c%X*G%P$?wle+j5x?+uH1E*=oTQ-&;l(Cp*76VAsDPf%|y& z_lvg-#&dq*D<9SEnoW{s#NYZk(|M$%0Yh_Jqzo*7%qRugORjHIA-9sfmdidjc8Rgn z|5$+bK_${Fcz~I1M@{aFV)U7Y@UzMv|IseKj(OBXzL-ez4Qq@&ll^6nW&7bU%=`O5 z-(kRBMo0IL@pFg<2yEP?M_uEL8Ye|g+WS_n;dW%VG{=)(gDFrQs~O~eVa~_N z+dOeYgN%bu4nAq28gDJ$L8hOeo;E;mnt51 zRO=|D=hN_YL_c~2Fj%JP?3i`zn8S?k^8-qgXP=nnc+Opw|D9KtMdQo;fVL0-?<`W{ zVdE#r>3N$xP}#+-FOzU@w)!XKe02IWXxh*AhhjX6Q`QZR>WB)#_%+-O+;wGXP)@sCQsCSmQVn;P7VpNi`9H`|p zyV|U@5@K(8w@&FENfWclo963cGKw1 zSps3RVcG!BB7-d_dJ2hnv_w1VxZC_C8Ta<~JIjW&%&n`p!)6~+ew%)(sVgq5`P&RF zbA8M_MbI6UG%__!AVyF3PL~of+8gMAt>TC&rwgm2@XPASM$|Q#Zyj;ons@u-F9WQX zZ}nOH9!s}=XY=9o1;ip#sA*7JIAbaZv^RdZf$%A)>Q)3rws}r$&=~eRYlBz`2R4R# zZ+s$oq$S@0{}7wyPrh$+{s9seFt3p~I02Mdmq@&FoOOk&t%mXA_Q7^@s{w6=0fDL+JPEda6^*7P zc?jR8cW2pOX6!M^f4l@XXy3FZRektTPB#u*$E*)J{v=aRMFPcXuY3Sh0#)gZaWozs zPT=XsN9jLLwQ;klcD?xSJX;^C$L}J1m*22QNPPIAk_ez93S%1|791Yzaaz2P=MW)z zHoRbM7i2`WD?d5u^J&v^v?Q##Ad2hle*bw{U_2H6dH$z4x!YO6eyrdvu(S*SAm zPl4yIWIpz8^_Pn*Bz}i+4ri%C{Tw9J`|_S|7|zF;=GRm$h!zJEC1$=Ri<9^Q8QA4I z%rqdPw@Y#^D4;;->*a%!ogUWRSs$6^XD=sf*R3=Z2vsV~26SrxsZmgNw}-PR?lHR_ zW$b(fV~uWpZ?tVVxf$vyIj9y_E%dlE0{FAMJzt_ydNfZi2-2%M$T{eNt0v&>G+Uhu zhw31iE?izk;R<%j=6r zc1>Zj)kU^UC`4(&aRGF+{ures-*JsOdXx-UXbYcDz1r94xuGl<&}D@Y1!vWFFT$CI zL3yBD+`R>{C-~813)hN~<|FG-Nj_$q_!Rm-uV0We9F(Y9sA+XPosu$+F$Sfi)#F~sQ}>5PW*D|CNF&NGk*&9e}IYQ#A7h* zSNLU%@1EU7-_d#R_$9Q=w8b_5k6{rF2!4V~DNfLx?$b96KQzMEMQjpE>YtAtr8-&-V_PWN zM~1yWa1;?V zGIc{0uIal`X6bnnwFAB>A%3>x<4rcgqBTW?Pt!Mt%z0;1pML+XHR8CSdi_^*mKC{B zcH>!b4tflW(8`J;t!zwN(m3EPKDglIT{_%?vHmn-Wd?0GabT zfiXOlZfr|JFrUSJcy$3a;Kxv6V|JfhQeBFwZ=58v?gX6$*ICt5_zhft`^VCK*~%h# zttr_)^Bq9#Wo7c8jMXa=`8rWi*w=NJ_FlQjQ6yYCs5NUeOWYzcd1p`Uj6Bk9yiG*n zjwg;ojNEnuFIfm@_tx9^w2)$H(L()*ve1cp-1-@||L)*M=f|bIH+Q6eZdtJ-d>`^1 z)^>?x^ef3;!zYP-kNI2S zkF?iI{$=r4X>k&-uQ07yAVxaodtTcvXv==lWGl_BGI|4Omc4W#Jnr-bz1G_ zC~rqUzvWA>@9X15+22L}&6kpaXh9^P;5eBE(lSPH+|fXEY*pRPV8B&NZCK4IW?Fq* z!|2AFZWq5s4cV#Tjet&YkGQL3N4gpf3r0(1a*FE>)sk!<)0XhRT>iWA=iPIMy<2b3 zRL-SOZs1OQ9x<^73{hv^lhy9KYZ{|#m%KC`b{Iu_Css>-K6itad-wP)Y0JEeQjiuc zO^PxC<(lr2v+!#g0^ET!%@`rb{4KL|52pt&12!kQ<32Sj`SVn15K=nkmz_#AQo=c5 zFFzhKg}yxBzK=U2tnxT2%o5*hSR8>&3m02uJZu@m~myYckC(Y4r*(>Tk5gk7{rIaJ3dCWS$e(FKR znpD#|`>&UQ{fXdLl^b?HFG_rY0U0_A7q45TBCSuv&MYGD?H#u>rI{!F9dQ3W{`P{a zd)KhR3kYr}T1H3Vopb2?9NWe(%kfmwt@4^@NT}3}unY8&qun+Sm!v&jR(|$ZTMgVJ z40#ul-S(GMzwki7%^uFg_7&SVjuPyBwN=rwH{QQocafxg>~!(msl4N#5@v!T2s-&V ze~r{!kQ)78XOp0+TBdxqN?=0Qa+tON*I##y=&lmxM@kYDG}eUEne|mAHjyAPCO46C z!y?#9Fu0=sg3q@^(7lg~V>;*u_0c=I{iOSDd?>%aZ&d>Skz-{mZX4(xldwpvAA^m( zZTa&S9X zYQrpM{Dsq{O1ajhx~K539S_iCMSlE zM%~Up*oE9E6N3@&pC^l1#-q*h@UrXmQC!nrfNhZm5&~q?3f<-ph0Xd^+k#rc_b@V5 zd&(SR8`dd69?L&qLA&*9-T5p*hsVp;&j3>qKopEUZD@4pph`wCl?_*8o23yEFE z+m1KXhbGp731%cgn{IQo2J-lR_0VhU6J5Scez>K*6BohMz46V)Yuyw zAsLI>>2EApfx3yBGqH)qJu7dK;rspqyh&Ydm9GBTs}l;H7kRbim6_$;uhZH<=0~ZP zA|lAa8)BXiu}YN=e=w7O$jye4u%V<36}Z4BQ;gQs{<|XV=0mh66)n>oL#@AGHX%z- z`1QU9E&6%bchP=Egwz`a)O>bLND~zi+~(h7V2!Dxp<;3K)(j{{f)BC?xY1oWI6v_04QkB7L;YC-hDKu-+uykKV!d$k zY?H>?3gf4v=$^byWyXl=SdA_vlza36gW6O~_dy2D2z!CA+Cf>jdw9}gC#LBC3MHAv zu4_jBZOr$!eWrFv6>fkO5pJ)~``IufBBy`A@zYoIswR9`wCeEYUsv_fu(K8ud4tFK z-<~qKhfqrc%hpK$-@!NA_t(sVmOq^-bHsnyGOAHRN^wrz_R`#Y{V!nrKKd)AkN6Aq@Fu`b|oNry&5MrS&Bm^UGvBpk1 z2#=Ip3-8hH1TF_$moOcI(+xvVD`@{ce`FX-KW#GVkp) zdA&5*27xP&FV``jjHX?+bAP5EG|_W8*zsv%cjhug5UM})gNQwC{pyoUf{}Wj)<^K- zyzcE`sCD*yiGvzhx)ZwkphtGO{Fdhpqu{OiG%~i4>w=a2 z3A}NHD_9`37MHy|i3f`&HKZ$qz{P-4)T#B=uW}|i2>}N=mxEJm*`C{Rsp*dWsIsLP zoZ_I8-tY@XWmTV3!&OEH>YoFZ%C9Q_P9+Ctc6l*_YeXFX$N&@4UGL#V21tMb?+t%~ z@z|b+Y1Z=@FRH02q|ZcEEC-Qf5wMmK>|AU3R%wc9!JIk&U= zcQX@MT%U%H6bzJ^Z(mXuR%s3zI<~O~>WXbbDl<_<7kt0Z)A@~N+i#lzINg7U7WQ1A zY}WDe#|ykKxq6V}OY*$%%ZbE1p$Yr*mkX32WCZeI42y=%S6EA(sd6jZYCsgl z1kM+NyWm5{sK#_Ph5Vs_xIIrrsQejYe$2psf%JKg?A zEre{K5i5`Np8x@MZ&?__f*8q*{taUr)^#loWtTB#T z{8T!#r+3Ue-fTS?O8!|RLBB}SdWSiqiyZRre=kNlMTIeb{Zy}Fgs8pxS7xNZHDgp# zPBLxyk$j9=w4Hr;gpQPs?!XaokzGVUM6O)gbR6@LA2V4VU9YwaRJx$$2>H^(re9BJVeFGwJmehsF~?(B#-iYa{QPOQ7Cgy+Eh6-9u^7L$#Ad9|LD(y=uwm z_Y^d?*;b=}3`uzu6y_hDi_rV#bZrR#J~u9~IEuw#As(tsWH^%#c4kWJ5F3TkTPE5C z%Zd;|#H+RqQ}0&iDN6yU1KSDVcRa@(1Tt6dnw!WU8oQA!Hn6qG02nOdf(@N5g_RU- z@sJ)drq=9F{tJ9xljOqqU@+|JmI{(Iy6E%q{pj~Mg%(-!6D3w?l49Ip_pqo72f7^Tv{QJH+K;{+yga zwYBxy{d2}zTI>N2kJcFAMCA;$_3kh{#1w_WUy913sH#lBm^`ByYG4IKmKarm^>hr1^IxxM8oVI&}9<*>_PXQwZ? zd{q8_PpuPgq)R`(^}kK2t(zCkNi6GZ9|av=3(}k4_@|FO+U|!KFpAIcBu<#m&J3<7 z>E8%9Kz(X-f7T3V7Y!uJP|Agt|G^KbNOWV<>2xfETb-N!<@oHn9zLKL5sEF$TTBl! zw?%~NPWLX#zYx8jf+{wID;E7ujO9Jrz+t#Wm6Tp%uLREQZNY-{i+!nhJ83ntW*v3g zRv%!>Gw;_nM#87f9efqm6^A~VIPPtI&Q{P_+bT2)TPgLQ^J7dWD%IVv)oznog^n#R z-;`dz^6mwV{?4?C9%EkMz!GT7H=o~$k|$<8K~2|HCm19@cEvtPnyobsLY%I?1K@kZ zXBr&3Rb2WwWPZTEWTPqcZn7_8V?KyU8PX@0uZC%a2Lyk`;Wab{5&^z%P;y>yVvg~M zDa#sC-O$%mm78ehYGi#pdF@QYs2&IrIAU8f0xS&z>J=)JprD%hS&k$_!br*hU9V8V z{`HWkR$^*dR46tt>OVt>PEJlis0OlAXr1pKnzx#Qr7rkd`p|dF%^eScqy@4-1gy7p z{H4HNez4kNGu>1_JGa!ZOtq`kd(5sN*UJU?52gUC{Mg_;JQ_@l($)0?bm$J0#Wlh+ zTv>k@|NS<;1Voea>qhzccGyeL1gwzSbxIVwSC%Du(k=pZJlfO+R87qj6(GPddj3$# z;1H+xdz&8rx?>#rpV&Ww0*XhaC@+U2Z&WdGuy@g@pPQF+2=7hm%lX{}t(r?Qb1VtL zq>|miHMs}EC>zUPvN&NZl?cueFj)0~(J&l-gn@UR9$bBA!o(y&lT7wnj8N`hh zpB_@f>2ep;hs6z15k+6`b$DI$;hs&>4S`$vhAT=4;b#Zt%?VdZEnE6aa%273`vQhY zIV%ryk85-q7E#?z#0`FR{xz}T+2|oa?11oDNBQU6hdQjp=G3puxaMb3sx(>SiJWb0 z+>6|BT~WiRtwr}~ifBM|sZh{Ogu!MWdycJCW7nn1Qpq zViT`e5P5uj-UQ>&rUVp}Eg>b-HR#J;A+LSq5}Iuzj3DiDQNkRr0a*o2g|pVbXb_wNDxE)+kdT zVR0SeiOY0tH;h)73Gr$eOK&m@`w`A}@F2Jv#GpjDnWuCM1y*|0MBakc*q{W}X;D2r zQOsE*lx-ACpzEW$Ik(C*)?2W#Ms`Z4`;PzmNOb~F;MsBTwWBj=wD*c+eX-iBfPO#2n6 z7{!%eR7wyB{ek2m_@H#(M5#?pkX7VCN42fkd@4tIIX!%lY4YlwYH$Lua|4=q(@ef) zGFJ}dzi0{wn72APCOtP;2nYD3%zz?y!9ltIJDGrlRNu8i%43R6F}P@3Su^Zl1AyGF zMDn(#VI)gK+&<{Zjf9)vCdb>g49d@pI?X&H7|qxrAW^cCO|?lx?BHMdl`P6t$_A|B z^06g@XRZ43N$uTE&KcqCK2@Pn)ceLFS4zmh!#o=K5b~~ib{Cg^4+(Kw$u77enQd=m z)ofi*#2oD_nmXumlsD}QpZ}WXkxoys=>4iSVprp2sUhg zuW#p=6JKPVDj^TO=YK?)JyA8L(f>R3X)C7%qje?rzf+eEQ9%=3^7g%vl6$w?<)?e6 z2D9&93C=OzOqM(8BINRoekqQ~9`CHBVrO_^(J?STZMx_YPZr5d(?RKO2RnFD8C&S6 zSZ6b9bmvcs zYH+1!m7^iIu&^=pg763H`kaUiF0mEe$t$~Bt~034tK21&6eQN%&BI@Njx;@5JYhQf zwBl3yZU2ykhgp;CzLlmGDR$`&bi9PxV_IhPa6NN2u$smMI>OqG#&)?4T8uIny<2so zqJywd757^7ZXde;Dc|S7_aWbH$n}<~!m&o!bEA^??^Wf(m&j%Zrt!t?Z{8yH9jx5W zG1V55``L_ewZRT%2wU#pz6a3+W-t>R5Lmok7!ff~9SJ0ix*wnJTcM%=?F({;a`_xd zbC2wQ*2Ry3RW+~Y3=)9%%|wYL6Q5#Gd=0$)8;U$@{ek#sw$w@aJiFC`D5{D81VukJ zxJ}i+>^PmMm1=MMYm)4r0y+WdhzFjOV(p zx;s&pG;st9ShxTB{-5fqGku#aIIly=Q0qMCbCvxiY8?(1Kn?RnPh%G@gtdOUL=l|$ z0{=AKWYsnpP%_j^lwn!lyg1n?0$7I(b`5WA9AzvFr(Il7EjGy4O*85-G$k9F`XD^A zyn@{FJl2uc+&U9d`ML0WgZ^rQR z|Iav^Pz&M`=cNY(5}w)K=YaT?=)ZUGB#wF8bXms{RkC=K-*sJ;LQ8HF$cj@;C!pzf zP52xa)TQOhh}87XgkfoU3CU8I5F6*loaovRcz~Ow0DiE&o2)AA^unQ3)*RBLGh>m@ z&ZIZ#lDRqB*;AW3&EgbgrVTW*m+2Ra0gXV{qZriR9HSB9xYAIz&cN|ahrJN#ULC{F zVwLCFKuTB+p9jaU$L;MYjxll6o@>w}eETjsvk*{8180;EPF2)`jk5#f>Ws7xp6bsI z?YfL$aR|6Sx#Y=yr>?js$$+oLD!Ev;t;0M%55GH;Y~H{=TC`nYvxyr9#IPpoitM4U z_v{e89ztjB0bkA66AC}vR97SUj>*xZ+7XnII;*2-+*p@LYwsxtJp7W4X*2?a1t=#{ z(AQ4hc9_8p8||Gnb{y?GP}#2b{7vWAyd`V=*Xl#{IlPwt?_tgzbGjr_>CEihwN{&g<{E5i!HAU>#WwhIXbd;{4X;Tfh1#&NAFsznX3lnoOKP~md zHW=`8ts5;IKLlvED#{}2Psp~lo6vC}zC@tDQXm7d zeb~2zodg9{?d$M!7NCQ=`|f=?Ddwxa5fU<83m5Sem0-y1t%3 zxHMb;jr;G$+A5C}M-Zua@122hl+&l@c-Oua&#eKfz2>0C3saX*GdAXPCr4zx6B|#j zhw=m~xT?_vn^Y#W)>_&+YD%;C;u7Ui5qO6hDxpVwa7R|Z(NjPCs&8{BE{K60Ra4T2qLMRqQL1VrtfR#dj>Y5hZB zlzB(b&+DQG&nPu(Jqf6AOQerD%gZPC!vs#4pd|K&$mPcg%Y4iSxhU}$Elc|D1DK;5 z&EP_9b5cy3MP_8XzlVLT_693$Bn+5oF*YJ<(J602&nT5#>%k2cWu-Vyf^>RbMx#?G zUWjLmJ)_BQ@C}}}tHCdj#Q~RI8dB7nRa_HP6Mzs_W@nUykGT1=ADZV)J)t~Np-C+> ziwL^PFa}l5m~&Rg>4DYILwa^z=i2#)b{j~FyH)zVu=3XWgq*TOogj=!Ir_`R3s@iAGY9KDuWWRXuIqIqaiPDf& zkW9xc{RZ~iqq!+2hHEp4xhGLva;hD8i$2a?8P9W+|M8_s-7<}4|M+jLGIPEDgVez1 zHgS0RU6}G`*R)(@8bIK~!lS)p5{yp|Y~kM@xim1tQpC9Tg|4p3FRn4a`n#DX&-zdH zK^^4(J7qjRhtmFP>N$J}{Oo9WE5#ZM#?<~XtmJ*pirO9U=AUP|bs|=C&di>_uuks(Y78>MhkT9a+!PTq zoLzg~zKz8gr#OG^`T6S+Y>G3x-$arMZR)UDLa73;3*4riSZcl}zN*q!NR~y-tN8pc zL5#&YcV=2*H^bs{^p5PamfqBclpv2GZx6G<-^haOE&Ns(q3v06>P+W8td|Kf+A&%z zYYNz=zb^NBiKM*$qjpmgGlHtgp&8goR3zV7H#lgme)2i@d7BZZ6E8G_vxxN#3?+N^ z&(LYvp(iYNL}!V5K180qfUhw&!x?$a5i!?*c^#rgQpNt}zVq_HIxgP{-SPx-ArY`B zXlqBiaF$0tRQ_^)-HgHIu10q%@W{frEPXp6hOf{fKRMn*HXzW4F>Y(i-7+>a$LPLg zNJdj)@Yl^#mTxQCc6w!$h1U*`$OH;&!0n#Ic8Y~e7MU9ro2RD+1lotXAHWKYvjoUC=TK)U>2OApJ zWls&qw@ilsZIjxt zA67q%yu=fgOFKejhHXFx=}sa1e_PHh0rKy96D}GL`gKk{Od-9CO$pUt_ZEkj?t}ul zTj;LLffkS)F(8=iRD)b}&6y%@BgYtmB z@5GRyw#UG}plCtLZZUIxsNisD9=UICo7H69GJv#uSbV)7LkK{x?-vHKwWAhx;aJTx zIX!$8!57+2>sbqVWsEuBRQXtS=6SR&!SlHQvrLcZUzWF^&T8yf*bmjN;f9P@mf;CP zBJxs&fowWym5s&@L3WF}0*XZPH~&a_51iK5Z5rm<{dwx+d3}1(!#<6-0^W~g<-2<;pU_5q<9M>X)dmc4TT{H5j#V(L|#LYPFG~+*;l8EHrr;H zccjAkB#m$XtoNxZ`IA)d713e$EEfz8(B#CuMEDy)$Ce^jXbmS9vr|&%l>D+SjBJ+} z+EQVM$M&Fw-_D~Yahb(vt9GWsY{FxA``DUKe4g$tHzXk1jn)AEKes8x?RdEGfL~Ex zW<1nLW_EJ9+<{I~M;ICN6s~S`=#64Wz-~jRzJ&BTDA22=CqS35Q1jgd1ruEHQ$rNBb9QGs*&txwKeQ z4v-viFtR#26l)Kd>y&Iit)X4N7?yr*{~)NH*X?!pq-0X&^K*K>nYQvJrA`jJc!3)W z`LOCxR3md9X1Ia9)Xkf&AQN^7$inAX;fz!_Xn3@3!qk(5AjHazb1by7nTMdxpCy&= zJiRbqtS_E>i{jzGWnENgeC1p%JCzq-cfB7p!aZbDhkDY)*MdKEFz;mIPzG1uu9T0P zjP!efN&0C6;VOHn3)rHG7pc78B|9@Ys%gy8=+i|CI@PzV{ySx}WL^@H@TYRqU`3gS zMR-}Mgp4AmW23`y*^o;sw&QrWcZKbFj4iJQGg)ZdD$1I%cp{%?l?Ouw?-s^xeG`^V zzJMsJz75c{U$XslL)qm+(x)#yEK!0oN&m?+g8K5^JwT|;(ik97+l)we>@uVk zEhjDbbe<6Hf1+#RoLzk1HdskKd42!Iw-&t%sUy;D&MeA=I`0kdjBdAcAgio&En`kiFAyc) zh}oIH-aTGKPccg_sRs{y&Kn|5@&9+~=ROny42Q-$0RP1e+MIsvXfiDKUScI;zHY!^ zM2v;AApohV**-8G7da-|>YuW03QL5F~MBW*FV5`jBk)6Q&40+ zXoJNl6*c(_%`v`91ma!pfdDW!3WdML`9=7F4a+mAXVZM%P=O?XCFlf4jSAb9yOeHuun)wdLfip z{D?{mLEao?%~2){Q_8Fal;+=66rQb{dEe%AwCZNkHf}&f?(4zJJ663U@*1EP@h>6~ z4cEt(fok^S)<+KO)8+Z=;EIbXtPod(=s8S7pMpZZG~|Vmho(5eab= zWFO%*>cW*1^;k^}zi9J2WjDbX5Y%C3_hkLeg|rpW##av1R9=)CR!z*@SslHJQ1YSH zoVPaH@@{sC=$d=2;wk1Md%^m0!EItzD$HR8kJ_dEw%-h284W(le47K@q9qLOdr&;M zLiXTfttU;CGPO3p;%bA=5kJ(qyI*Dv)I)ZD#ejiW?(NdowQ`craa$5HJmEtlk@yC& zgVlaxi5gD3(5|@4*7Epl6KTmYw*AQ*7R-P=Qjo1wAD&KlnzRdJK9G_Xn{ocOAgCMy zambJx$eZa^3|Jg#gWcXHm% zJ9Rhf^?ikS0qCP%r)Xfs^|oM-pHmi>!MSHw$Sa0ThAd#<;x27JhzMBgWfzC(nMIHg zy~SSCeuvPJvBLjOom=@7qPSC8`J6?`7<;m-Oq+S~Ge8Dl{G`zD#`TMDy=xyS5Un?- z9VeJ`<9a%x^S-YXIpQM9x7qfQo5e3Md+fOU;$){K`hc3+U-pE;cUm+<~&+eby1 zK8uN+GSlgx1jjpnj(oU;<#`~Y4>3Li%BmxaP?j=_rI)930D<@=_nrWRZ?h!orZF9CA(g&+H*$@6g7ixdYllj8V0OdXGWePyLF`{v zZ|jQs1EJatLQ`Sm2TeQM=}MM4_Zv%UYx=m$LA#6o_0;NH#zunD$tb~g;hDd0c_m4{ z&4s^LIEaeTQ4@1wrJl1&GrNx{YUc0zwcQ(N9;&Uh`OCFZbzon@A-r-CNa1pH8oY={ zXq<3`{%v_XgmQ_Y?Ca^em~Q)@MsKfXhCG1(xbWn^Q)&>OANO#)}f1mTa65c>d9`ii4t3E zL9m8`d=V=&`q+3T9Z37&Ca#(IwEyR=KhB@l{6YNhRD{@+E6=p1c6j}o=BdJ`KZ%z? z&oK9^2quy>i^#EYB|{{Rjfb#gI~F^)BeJpRj&T?R(MU7DgZ4KTVKua8dWqi5Xz#i` zCpis}-v{NcttaQ{zAAkceYSSSzQQ)E8NsAp0$BgO$Nl2QIT5^4c|K-LH@?a%;mZxVn*iUcR^h4-%EYJvry`?r-)q>> zD*R~X@Cjf>x~ZAgw?nD6iRF!Zn=)up{K)-~o73Unw{X~-b9`-IQ8KNKmV4%ltOxih9QQ!eovx3(7A+$<}k{HtLiD+AojDBQG?7f2+?P_2GjbD%%a2 z=vnWV;?u}(*HuiHLl8SvE0MzPHGp*Wj%yiAJ!7&~v#PR*uxl`f54;UhG{xif2>v(Qv<__#{E>@_%oBvd@LnCiH+CgLGO8dj7#O4j?X>ODPTzGupzpEg1|Lx|@GAP`a`kp%&!0 zvwOsF>x|3$*mCzrY5f(vqQmp9)`I)hNff%j;>B3|hq9;0e#Ym)R@GMXV;v;MFqz!< zduQCB+}BCZ6f9@dHs04$Mq@7zbrD_sv|>J7^n@q$bq`u!Q#K3X4>|{o`Cg9Rq}RF0 zz4l%B3=->N7P9(zz}{ZiSc;6b{rOFRFLnP!w;8|)g^e{~%j|XL@E#+!SG_cIfl6o3 zllr@769wmGYdTj(q3E5Z!JQ%c2Bb3K_!?$4zQ)>f@Ebg%f!u^!J{96DX_RJU!>5pJ zDB3>pqV?&oOsTB}CwN@E9jY7m_U9JDxWqUKX5ycgePA=S(|AbCV_2-Dk@KM1x;Kuo z)snSqwk)&d6_HlAeATiN|<4HKw?aX&X784r+DJe`||f%vEF~*u#1th zC2V58{CDcf6>*&bqBr5}2>=usRC5yRTzJc~E1yWo*WUB%W&S!Dpn^wr)#iuw++<;CvYRr3*|fnP zL;0`~R+_VXbG0epB*d$2gsBiB9Ybt4gQ|>H_9G>*wQH9cEvl`d;l2h1X3A$Fv8u@( z{Qvv!l)J`10;6iJlF30y58{%^8=n#c-?TowZ$$*$K`Z+vbf_iI8fl*Zz!+iUe&3^Q z2OXA|al^2K@_x!C<)N!~DX7yG`5#B1BMx>Z(J|mUm*Cr1cs*Gm zPsbHAp7hM_pyiyl|3ycS+4Jl<01qC*y8|GK4dN5Uv@(HI?!Hw*+vfqWj zPa0LRT3p4iPn9K;=hH8quB7HyaPvC@J@uR14ZF^(t-p_p!CJpe?>N6X)BvJgw<I}`l%Mp@2=HEYC zQ5B_+8~z~%>mXv?HXVM7i0Jjae{rDlm32jUL-5`|Qgwi-DY<_wny2KzB(Pk6>qCG_ zt^l0H;%BqDnJ2{Bsu$M$KH??xA_8+HQNAE&qj}+w#x*uYW&iq~)12iS{~8+ z+^VOwiY9(Nf6hLRQ8+TjdI~#9kpZ8ehJ5R?Lm|OjvB#1fM z8gy;uFNbjs3f;PX^|eNTzc3Zi>Zw*@GpOSH>2yH4l6F-xwxh;>pzgY5Gc@aa=_{MV z#M8-7E!I>=eLCSOOnsZ5IY=#L<^Bt_ugH}D$kfj}8L??HAMgYb=CefkJ%^6&!@O#mIHjMgjB0TW z`SvYb`CA*5Z`VdYM*VhcU%7&Tgb;`#uNkK0^R^*hlWsI-{0U}jE9Jkm)IBF9_irD) z(3P{9ZX(oUrm~L;dFFVT$m%3{(VZQnYB#QyVs0P*>fyChh`rh_{Oz-eUXRLK9tybm%2-SX2=i;xRF}@dQL!b^5&I*RN0}|&(pvri;inFLws@U}*wkLWjgE(zy3*`$e`DO2+r^$ki&3~e`!F0a?+PR@_Z z27;5b(3#eOk*lQMEu*moj(S)%(yXG-|JxMoEp}$wFfdBnrbS=u>a{YN9N+d+Qg=YD zA7=S(UD&kJu*S<8@;TrERdXrf>;FF!v|V&-O5gJ)IF$IN76xmA)}hN`(&NU8*r8rc z1WaF^OPZJ4V`zKnSKI=iQ<8FYxgzHRAknVw0uf6i=1dS0n zFYOlHPw=UZq`z7pDdT%3KPgjQml>TSbIqi44U&_IL6Z5Dg@b@(W4B|c=p9pY2QE=e zTbnkHQbK9N27x~cFNzKv+kKoL^Niso`=C2!zupa$jkhpI-fq7IyxsV8B=Cc%RTtd& zZ%w9hp^+(3U3!v0PNg4IA*uZb$K89i`cRK*2h$GDs{d-QHnQA$rH&DCXVJX0l56Lv zJAf{bxR!0J&~o`v2kI6*_KxtrgRd~;y!7BdEQitS!F}GvrrtYc-zfrh0pVm-w;;}P z$cisJfiGz&D^~=DRZf{fo4J#zRpTqO)EO!XHeM7jseX^H5^0sb@k1lY5Ua;r6m3)f z@Oty&uMJ)v-l)fcQ2)vw&@021@%tm8%&t&d-GGCw!9$`&d;gAi>@@iL0MK;92t9nUQaudcg*+T;|LC z)97kk@KgEdq_Q&M#gd&e)^;l0{V#8VRr}rb6*pT$K$t*yHBcH zi$Z59EFj&uzy>9K8ta6FJB|$5A1&p(osz>E`NQBV+OrBGSG`9XX8wJPgh9?citN{&JX370!g;4(a2!gc4{}lDQtj|-Uq$GEh3^UvZUr*$%1GX< z<*(QmxD)ie*7XF_jOU;zrR=gX{LSXG z^d;{ygAAM7Pg!3yWBp^zE18@-Qm2*+j5>F!I%M0W^6H7bHJfFy>@vdDMjw!u(J#vQ z_t`5$u>HVB+M?TPP#-H(6!xkYU=n?~^YgdQB%jp%+N3vseNs;a*nFImt|AEBFrL5&fVr2y#O=a!ZrO_P7+uVLpKyI#asFjAJMI+t9DpAa zC){EAYU%jAZZg9hN!>!oul6mPY3m_Ur97TA^-Q7WmG^3g zA04*|X&X)?#F_-!tD{ejkyW^{MI%-3N5Jief=5H+qYuMNTRWm4FAfj>eZY#HC^WV7 zo6b?l%28e_TXqXmdeT6p4>0o`mET%YcO4cT6R|bE`?i~!_v)3~D-+Zu&ZIk6O|h=| zOD6bj)Lpc<_x%zkS!kLgNhEm%70NHNk+k0-^IdFJfVYwMrph6wChRM9caW<(n{sJZ zq3XHDpAX~e9wyZTKEC{L-t}En93}dBy#9+bC!wFXLZ1ow`ftxc%?bSXSl5$K8lGpCe(JD@=!oe_ zZK*0;^03;`Yv%()BNnB#(BCB><`2I@L2-j}k8i|(o!egBTojP>#3VWx$Ve8Z`JOzp zP^jw!HfrIU%AYc4wVz#IM%*aTuI$L1 ztvF_uzbSk}upfLoA*#w(Y`~kUFef0-%FbRenJ<(~xo^8%emhy#_5Imb2LHB5)Is(i zcs`FAy_Ys^_`ivJr}UR^$&^;6*OyfGY!WE@cFY&{mr zq13unRCsPJH7OPFjtMX9O%mbyc@qm{mnIk*Ozg)6J8(7T@4Ej4Be&#jy$%yBu4+1!00&@ zZL*a4UZLfk@8xrL;Vqh%c4ZR)K+Y=eD4-ucJv3i1c*mkROq&ZVC(>2dRwENvtSu5W z4(BABGWea=qMvksUq3AVAYt$qGeuYzRB15)&YTXVmSOxHS52tsL{cvelbqTp*|&-K zjffaRa)W{%6ipnPWwfe4vAJq*?EE0SIlR^W6Xx7EN!};&&qfyv6z^46nS^yapqH2T zb!X(qfXzm`CR||sVa+1iQNJE%h|T{43s>k8Ps$UNNd4omuPaKEGx2ZttVOP7M5YCu z(TM#uG7<)Rxf(j}2bcM_oS*$+ClZNX46bQ78i3K9#GN0`s{MFGE`xsvZ*JLr`o9&Y zsPjDWJk_2&{Qb|KnGA%NgW25O|4!+u429((3i$_cY5k!@(vV>TtucMPEGFyXAI_xa zeFGIHDSGtsUVS(JPXe)1qV1#fT>NKx<5XKl(Fc!(KwWHRb{qZXoGBm1?KH@!zQg z8=ioB;Zh*%v$h#OQ}Kmu>k|`AU18VC!F?~`HskalCRya90r)If=zYr|(=Yt=^bG7u zhSNF#7hjhu@3hcwX}ue<&>NeThMS4Yw65D{tc|z+^>c3d<=RNwt=XEsaI@m_w*dw2 zYsrW)x%wC*OYhpo(W8N9;VB_AdjO2hY z&>ykNB`3>etqSjGPz6fUsydNEY5I3v=G`s4_n4n-p@mKO8J(6Z!uiC9G{^IUrDe;V zcqOD#z(IGYpW1#y&+&ztiI;qP<;Ul_>pU$jp;tcCTi!@ozd3Q`eZ6^ZFzBSQYcWu+ zqgoK$-G!#gXI{E7w)l+ESFc;78&g*#W~|wks^!!`x1!cyLC4f@o27(zwIeb2>=yan zFxSjmT|+>feiyCzlyc3)PR_(ir5&TO_eEe=3@~;Mdj9ScX`t`m^~?N-187yW=7}Rf z=jEHu>KlTs-&x|>K<7J_GruX7-v0B>h#n!)RHyS@Uw^dci?RPT=14F5?Oj?U=0s03 z`j@V}t2ZuUNfUzLK1B#xqU)uWb~1hEEYN+(`|h6;6IYzSKZd*iGz>-_^!$PIriNd> ze5cTY==rEv)49UNFxrM_Zkf`?jw14)oW&TVnAsNg>|7K^b0ddUTly}}r!Iy!1|aNt zM#rqWCo>pJDHQ0v|DlG2|xv@@2e82 zUxDvps6SwLNB^$bS5%+G+1+clt=S25!Z53!!lC|EH4lZ3rjajceg@QE&JwV{?vtG7 z2X3CLFBWepHbMx_PZSz)tarR-@9potPecSvu_KNPY=zyJP9Nv}@Rsw&j* zW#-E~yv$cHWzF|)H`mXz(aOA5`RZ%E2c2MveQCS>Y?mIYKzK(_PmO|Y*GnNV>GYh= zQ>%6151{-}DH-8`qWyw?M2(R2GI5)|c*ASH#4jzq!6msd+ZxJH?I#{7_(47bunHTk z%MHF`{_jammxRwmrEUCJww4tc661-7eDXk}Mv@%8LLv6LDm7;EtflR~?8eRhf*vp} zbLQ1(ATm3qGIDK8Z}*E2lO^_n8S#} z5&M8M<40Ky(_P6i2{6^(q1WU!Bt-Tci74Ct!_UhdE-w6a_ zkNEsfZoXX$dP&lxzs1K3NZq3uhkeVZ`H6W&wXuM$PU~QRv;4#_Fj%ixbQ@aiHIrA6 z*Vi!f_jx~+l*acZ1Be%Qe#8n9d1_<%2+Io=g<7ctL+wP3O$RL~$f$YO#3QnC&&~RK zq-1cQ68}6$hof+pW7maJ|DbXr_PF%*Y+kF_r=QjJQGLH{FkfDvUW#8q1bH1CsLTBm zc%&!by&rQ~qlBkat~;gJ06Y(A?f^jx0UGZuNhSqkmX>$bkW12Dfg&cnNkBmtTG48% zs(G`rn5Vusp$n8Xa~<+{1vfM83rXzEzO`OZH+kL6aZM3F;l8a+mR|8I@)+9T?a6nL z>bzE^@8#vif7ejB3MZEzi!4Z!OuLvYB;z&9+kL|c)Bf|$e)s~r*~*9Xo^0xutF~F{+`EDGnbT)4NnMdqfv;WgltB zcN3pf#|HmXxt2EjE&`E!+^A6?T1M zVl=27QFuUVk@-wI;H_?sWOm77_T`O~YV#*sBxAXjpOw7XU_f=M?vm%-6Z&Uz=%%TF z)BS3~vtkyDFdLflAb671MjwiTJz-NYf7`8J6r4eAyT9&N)zvn&6|_|is^5?~xTWMZ z^OZ+;TIkv`_6c|+ZgpMo%;d&bgEFxzFp*Hi&^v~Pr3Is8A*^q{#MFc=nbxqHz(P6| zy&yWAv;i-wtIp_io)xP{+JLfatV6ZkxoPaWM$L6W!Wygj_tPC*ipTN2fg4ZsxIBBf zNtQt$?zEDEMOlIrV;~O)8M%&Mnw~V%fQ=XkEB(*8Qd~9lr$=A=V7qGoddfORi1#Q} zvuqS`AQIsW=ps1_wRQHz1G~0Wirs{NuaS6EDm2^zI)6D(!7^|Qhhc-eGmxM+m^^Ha z$tNwh*83vipnj*dps4y=0eL_4kzOiy5s>v?bW{w^Eh)$zsh<4sdyD@tvLnCleJ0Y^ zT8@yERKxPw-aJ(B7S~LfT-!pl8367O&p(tS_GtAcCx;GqTSA7?Kj8za;?F`CUaSx2 zP{OO|xUBsWYW@pT9<-NP0LRGDzFZt1);uQi9h05zw=QJVugZ|WV552sIjNy~Wf^uf z@8@%rQsi;Z{)cDm`NF81%Cdv7Z}23bv+cG1fp(YLc;Hhhv*nUKP)4XvbZ`Vpv-qgd zhMl8Oc*$N>wgVLSD>eR(4Lwcn$T{2IqU=VYRss9GthS%Nrff5C4BFiVRe}Wgww1?( zD}`<#lY_q_h2-v;p~!pV?Q}cV^N%vapDQVA@1nO@T!BbYEu40%y;3-cudkXjag z|MK%fo;_wAIovbN2=aRjWqB^kC5_thd`ifCc(|>-C(@AF@we35EH4AA%m@kM496s>*V~-cmIA*c3*A{1ClL7PJ^nd z>gvL5dshUNwi|5@To{QDiZC1Aotv@39}F5TV@N%JpT)HrwJUaY3#i87Xi4;jRn+Br z>zhjP0}i*#<@dyi@Q6Nyk#0GGKDZ3L7TIF6E?9THQ*ft-W^}zoAXhtA=i8%b5koTqYdvEr+(9rw?3%%~CiVZv(0RtQxxaC^=bTQ}L2cTe+Iw$W zt=5W)89US#5qrKr>pI3SPeDZmI&+oqP z?|of_lvWUHkcUo`8|i)Eyh~rn$#9I37?ie4!8JDr3>cSGo=&VJW_JO%dwv!bO(q98 z(w$}k_z32qin-Cj!H~d>gn`l*yNg{s=_le@e2}@fMOuj$0BK)+9Il(?q=&k%u=n(6YritfdDCtigiGeE?UQr2 zKZ1u^MwA^=>D`N`kQ23lJG|S>d~`)j_TAglu1q6|Zs){Oe10jU#++}zEk~Rt(eXS) zEG^CPeOs}i)>p)eR}&{gzRIkpEwFAZlzsT-$#fPuEQjai*A2`7`&XgRvKnE1WHv_H zu1a6tLl|XQ2DGg0tS(~yXtkLDzr8iuE&>&5&k1da8U51E|0{Yf{^}Xsrz5@1=;M@2 zz|(}*r}U(P8b_wN9{RDI>*YC{C;v2S>#di)0+%@aPpRHZx#g*dirPU$v;M%8$J!Lz z<(el`+drWSh`aAId}|`6O;U*X>GO9vUjb6%;hKkkZ`cbWy_g(~SpRm$C4g*nKv0A&5JXsrbt;8 zJ1EG8e2k9+`BUUeWkw6+E2(q~%m2;=Etklhf8S>*dNr;9vT?V#io*pNYAGPS$f^W_ zx8*Xt^OIU)dss?gM!Ptj^cpy(2bIcd&qS4mfy%ww^yZ{VCFm? zz!42OV&BuSd=|1Xt%|{Qo}PJdH>#}6EciCdkI;s?ud5kv@DKL)WxBs}X?E3uf$$W8 zh}3+IF{+L+?7h6d4r#c4n7-ma#$wvs6S0vWpU4RM0e<&-YQuxib{{Yji>1vu7s#XH zIqE`T%<)W`V&ou9Oi)Kc&dK@9MWst6Cbt0f%D-YyWYZ&1{kY_41+4f|pMnH55E;*m z|5BOUr5SUz*PSymnJeajrNFeyKxl}%=7Z}eir6~V_0CSZc)QRml%II*MmgiEINyMv z($$+p{#(2AzfAtHRRAf|>IR`U0;$IJbq<;3T2g?lK4;mmUv@Yc_}$*Ag~*pFPl(5y z#s#59P=UCR`OKk9rnAGL?Q;7e$>f`E0Xvbl1ARDNpI}gX`e4k5Jf;rK3ZnP z{L8Krb}V}=!Z!D8%b((Dmr_`Y{N|(e&UWd`i4WGTapr`g#3NkUch@eC-v{R2Q7U?g zBD-IExx2kWMR4#`qgNk}Y?d6B^5|hU(M!M`XTny+Uell)t+!2*@4;e#ZWvZ6w$(kN zTy7+w9zSayHZXFk=jSuG^=EP?AQB@smz@@Qk^PU?`19@kcP`Lnav+{3WVjxj@ih{9 z@cv0-20AZaAv4FQMfn=-71sP}isRQY~R zG+JI2(G*ibUor!s9{2$@9C|h$NO$$CP8?x<1ddL1%R2{@I06pKw6<$sw)tTK`1!sM zz@o$ThrRa(@9}F^KFRLiuF@EFm2M@gy7H-3r_?2ktJYqgS6ywthXmrCGp2w*bY!fT zjF!M7!WKkEyPEY4A6G?l)IS!eQ~#u);;73rr}G(5QgJ~~%J06Ic+paaMuA`W+!kNV z)z4S3M%YzN`sVXFCtu?3PYYj*zZ{{awK@N23XKu}Ex^+;@9|8HVB8TG=d!=6>1<8| z-`9$a$lYn+eV?Yfy2m%Nk*`tu>NEbu*>O=93WmnM4hv#HO+)$goW-kv+$ZqAvva;@_O$TKIQLnvc8 zMKnjJAF~VsxACDGAv6iTl9}rmXDiZSISx?~qu?N=Hxb!J>0sCL?9Uidp@o*fo=0#1 zrdNw1vAx0PuDP3M&-aL*@cu4EC)Tg2blrobLmle|61WZ~dMH!7=4*#>JXia5sf1mR)f*X+BbP&N_**U8;q{lQDT84nFg< z2Tva&uNsL2lG~wzIrG~s6VFj^J|3ZF>}n0`g{*^%ePr!f(v&-C?Y;}NltKT6AI33t z>Qzod{UJpw@OUQxO>~P%IId|IVQ&UoI^f2>bCOKbzUNdCTK29Zpf$6Pbf?u1wD^;Q zxA%WG_S^Nb1%>v1y4;-+=%GaU6y6sC+Ce=KaT>8z5i}k1QXPOsfRs>UR&jAY0l2D( zQCRoHye@(CBl$1V=y|Q;4OP;$!@@mNHDmD@`h8o|)?XIYkNxhZ|K^0;oYH9f7pSk* z0JRQytDL&{!kg4GzNMdkxoR*9l<_TW${3V&7O3dbsV?kTa#2^<@WB^hms_t9#tXGu zHPyMl<6&fr-7=xFsKu4XYN*J%;~s%tZU-7RvZoz|IWUt``*BUGQ)T@(KOX-px@O(r z+TACG8d*}Vq~IF?(YkqTs*Q0L+U;}wwV;FE<#~vNi+l47{Y{14iTq!e|2yaLSdM*J z>RN;>wfEPmApikwvZMLUwIFb-Q9p1etSOEin~K@rp{;u6OR1pukL+CGDPHQ|;Y&eW zR#ur~_Hck!93@++*PuCZ8S6{he7^m~C7B=W{3Uwc1@l*TnZPKH4J}=BTRU`p*?DWN z=6COkRcv9+tL~}b9A`iL!^Mf>?76pI9JKAiBtMpSYhzh&o?j}~A=)`rN=rBTHz3rE zFkL0t5a*~UYPF2iPv8@>#Vgg1VDydHrn3I_JezQq%;oN*eji0$V7Lale5xcI?L^N zM#c#nTTM<5le7E$kv!4~iUKIAyuOe43FI2}^Qk$U@LyoA#+{Y6nrRdqE`c87U`Rn%pDi7*ZNK2VjwSD2z4Ft0U+N|Q34`1GgGiC%S z+A;~l7-xV*Hz4}f;?c*rfA!RQ#BEI7=oTZlPc$pr&pwX{dbx|;SVDpRNP2lSE%(Em z?sUOhd8|ypL{%{XBfe32kU{Cgs4tcZX+@d!tFT2~vnD>3Bdg;FrqRW^P2VOgq6Bj) z%ZGiXJ)h+SviUTb-gmA923dWO8gRukA@qI8t!kIza%8z0guceq--2k^Sm-^@nPN;Y zuA<`QWvE&msFsSD^=-GIz0 zV03}%XfbGoGyys&Z}GNpNqv_qp zN#6dGl6_Ht=iZP-E9}Z;?<_B4`g>2g|K*#xH5Eq&jMOpk&XGC+HAL4__^Pg7X}h9!G|{VG8zY5R|L{VH#tEO9_gP8x0gJIB}7 zxK*Zi$<1}FspS6o3Hef8ShyCt7~*!OB+10Pu8Ccx<|N5Xoc#>sCF{a`muL@H zn#6?#NnSP8i;nO7LhKcgP7b+_(Lj(t;JCN=u%XXZsHU-CD@{Jl(Mk6Re1@|oG(0=i2)zci@`Y_Dix2(N>@$Z zk?mAlcy`M!4>vX*&p@(~032=wX*6&Pz?Za=P){TYzw6 zYxHI)H2t_^-&{7IPuumW4|pWcPycaJfBhOZPOXf1$Q=z>8yb(ceVfaXYV@di(^5wU3`uTv+j=mDvTe6LqwB761xO|ofSCi!;MryCT_ zx>`4(7-s}CI3SNs+a;s)BAX_l!AsJcy6@u}auKHeYHwSrq@v>w;?Ph=hq*bw)s7+4 z{Jeu@IFF54<6W(rO|D-pW`uok?`|=x@>;`S09h2v9Q*p7NGPR{}YhP#X z({$2st$ftK3f0R0d-ynNqCj;}OeHJx`Is_@!Q<4>)_e&V3ZQ`cvHq=i@q$AJjq)>q z4R{=O9$TFD4R1_{}xO%<-20 z6e^$(;{Csk7pp0?{Wt3&e{}c*<{J1+w(CY5ZZ33@3s7Mciaki4B3!1@-Nkirt<}hR%c1JWCSx?R{Y>+| zqpU1Ywp=V=6`)1wU=P2O5iDwtv;G9EN@tH2@J9NiM`n1I2kSPW4V5Z_6%dcu8*$R z{CCi+_aGc-i@!EhOH71B>C<(W?MxZs@8w$b@?PGt_tFR6dC(tOM+<{Dg=P_{yBTpx znxi8pr10=Mo+Tgc_2dj+7JkAcS!$0`1%w4HJtSyOILteaubJH|_ZdX!l5zqindZI6c77XT> zpp>gYNBl_a2+3*3y%Dx=h~>CZ63j z&5SSSa;uJx7J8Kl^C5-87AFI4LPcqRgHIOI=EJC_0!N{b^u*LNJ^zAS9dpZ%8jB@m9}rMDvE&07CIBtr&s&;@8__Xoo5n z6;PeT*LJ);4rz0Ewtz5WSIvA33$UAkf0n$j7{B>7384Ap-k!4+Kn6NcnOQoHHh~2- zm>K`wS6k9=Z~C_ZBr-=7#BDAq$mPhHc}kvJcwTzfbA2K` z*CA5Y!IgNz4V_~fXcgwm=-@8|q==jFOvUAcUlkJl1>Lz5H4|Ypi9`{SM)F_1q1;d{ zi30&zkP=wpp;rzG&>Qitx9J@69qA?4AMI}as(t=LR;aAO06S}(mn@>z@Y>Is%BA=% z#rVJ?LgU+V5ule)+qRtyJ~?(Yy(4jc%MWt`S&?4Y9)7+hp3hRyH}iP$N-oWtRA$k9 zDP#a9AC_1oFsyZX`xE$WhkTS4=WgId)#^qSRAy#t!Xz=PXL0a7pn7Od+Sz%qdDFP?ExD>*KhgHOmP3tyOdq%hklW0 z-?y_`o4eE6D8hz>Sorb^m(oGpFqff_@ijWw*$h=v z4Zg_upU0@Y2J=p$&Dc=XQ~1YSu(7x%;qY1W!*fzzmfXEmwb%WxR`SiWKaWOiJ2l)` zzhR0pMu(6NeKf8FzI;4hRad?ZvwZc$7*bg!CkBgI?P`Wa;9JZNE(=P}x@X&1!hCIc( z$b}uau9jBqQ}~`~c*$fRR_c2(+%1(Mjfp7U%0S)$+y! zNteRMaMy9LPKk>d#va>DC~1_xRU0W;9Gw9#5t?D4_3mS6hXKELdv;6%BcYCh3l7XZ z=Adj!LhIRACvawO z%5PS7seW+H8ei7g`)2T~Y#pC${_NHB*#p8A>5%U&smqx@ex?X3+2_kLO5kmHl6SBvfK|HQ5KUh&^r-V;a`{vL> z{g$4^48FO>x!iBo;&mVD3%JEI&CBIujU5+c{+_u_wD~yT^9QTQnSN7j&6@9RQXj5d>~X9_%4AT_=Yc>wUy?q$0BobO1h@P4{Ha zhl!y;^fHJs6)E%yH;>(N`eH#HVN2B%PB(IpPkB7^P^g&+@?jM$B60u6)=Cici{Z={ zyRpE{&7X&5W_P3?3>_SHtY7>-V!CY^uw%CL_g`sujQ;p%PoGV(6#=nd+SdNu4$2mj zF*h?+1g<{Hd*|@etfvtX0*G>{C%*z&9d3O&TlZqzn`zrYp>h$*^(abscA0C zJtr2xKK=SNj+T%GmTd0h>q}YdXmfMuEW4<*Lye$Lh?p%>6qRvEjBFo1!YAV!=1%mj z9z~0UR4Kh1w;B!-KY!W?C@_FH&iQ)61vTehXi}rJ>?#*aZqG%pCn|JkOw2081wN_M zNf0`Ot!@2x?w?vlN71;%^W>1vuO}to&;He%#1xGwdk3qkLoxk;m#=P6xRN4$zYGq@ zhSY2n6*ItK_+B$5_o#u`nm4}^0FQ#Z-+)ilM&%c?;DMomV$z8 zZcnV&vdEGn0{jJX{^II^vfV_QDONpxiHs!k4bQ z3UkVz_>gmrG^w9G-hZ#$+C%h-L;trIF;n5f(x5$#dscIw{!u-Ooc)wrlDMkLuq>RS zu)Z-5f3T7!)RU;PHlgsPwp??UIH@}5V8Z(;$$ZQE3%FJ#K?T|R;D|ZTE5fpj|G9p9 z`>FmJpU+=qyu3kIJjH0?n?-TKyO1ASqrSPg?7B#?uMHDg3%@otj%Nqrjnmio3c`*! z;RB&77q~3E4&=9cc!c4iA#iWg@2Xp>u(YTa6gq!2olNZUX5GFU$>y;k$Y{mDbx>w* z>i!ZL&uoushD0qjB|-SU5xn&*gXPr(Q>qMPG$=B7|T#b_wa43==dY;(|Y|$`T67~SEljIQ*Zr)sdVlu(@$;W zE86f1SFG+RFy4FTfI%L*(Rm^z?ru=_=Gq!78La-pOLim<0^O}%ByEwPQH&AD0XXw$ zv;Na}13ExAE61^p55Z;k?wcoDv8ftFj|yS4kNI=P4&VhnmG*6J$3GhI$-nr6zB1N! z>ni7|*`z(iGJBYl6oxv1$((BV&>sJWOYyXqj!`cPL|@qrm0X(oQ&tUqQ%w}kb3y(x z&&Rn1nSOMKe*J{HcM-n6EQc`5Jet{|+T9ig8#;_Yqp-MAZ1ecc{_)h0umWRh|J*V} zoJbGL$&&GSw={gw>W-n7%*@btJwjIpC!QDe2nh0J#Y~-GjVM&0y)#yi6|W(j0*6}0 z>9)EZ{&d?)qQj79D}l`|+0aSFah3<&ng$B;l-ne)7Y^*|D0UWK`XPKEJ zC>tfk(80B$30MJG-CFlkSuZ+i5HEddF-wz3S|4XdvzB-e00!f81kvB|HwfQK+OWI`TMr5b^gReRR=O>Vpu558oq4d6hJGF zM&bx)_aX;XnEE=><;`MNP{L8Pai_Ld3-MgtM|VYIi0Dmu_Vt>pPV9q$8tn4F-PBBk zL9GAA==cNJ6nZtjkCjN7>rtm1lx|_wejYU(&n6MFa(NWOZx+!n7G3qY{SEE+x7_7> z_AE}LG?_aW#i#8-*9B=^_KjFzsY%^I35KE(a6j04i%`^|6>lO3)C3;S(7~~8hi-{V z4F_UEi5m!#FK8vXel+LMqSIT(HZI04r4&&}q*6&BK5yAg!AN-+jpf}{J>NX&DxuW1} zx?a30T>Cw2>UQUaThiI8w}lDUEh24Fj)G-DzOA{|6Xgz7<5YkaOAZr3x-zdk7P3m@ zThf+nts1V+Ukx{7VDb?7c)II2dX5ryr565>6QgGOM+@2Xop>r&gK!#W&b{dwo75*q z=RBR(Us##n(w?^~)uU)En-eyH6O;}7NKke;M<|l*0oHxfPr?6!nv~JPJTJ@ zFbj2ESpCf_R(<74tgsX(EBWVzsbQT3O_?)yQUeeWx?8_`9U#noP#D~&iK(QFqsV(u z-Skv`U5t?t)6jM)57Dqc3M^*ym1dQvYUuf6zB$;3N<%7I-uo{PbHlYvcpJLH1%l<9 zOfOTBn|vxcs7ZkaDr#pwBAY?A+x zPw4J(F6wo+g++^Tbpa*T*am^K2%?%lAW{tS@f!UBNixZq; z1RCW$w<&g!*Bv2FQly?CCspAuF63??JrQE5ntESkTjd(%3}&Ur(&O9!*AEWkwCYxm ze&QF%c4Imfu@(VDha)EiY}FLTruB8G&;3uN?AXU#T^r1+vD(77iBvo zy|FcZEEP}O(pXKjG{2#L-}FJ$lD!H<(Y`>H0Y)6NerYJ)S?*n1osS-yduk?T?jh1N zO_0dHw@B#Z%uz!innt>BrU{r`zvjcKAJAJ%*{G1yxZ_YYVTaiGxmq`Cya|1LOMnQp zhRBiccUa)Y>5y4w_%Bs$x>KPK*?TgG9R&*bwhPM_==oo^TBumBPyEYFB zq`W*(04=~awZ2Lmk>7r(woJrg5NAK~MJqA<7E%CJ2gEXcd~@BgHJX&Z9xL7-{sX?+ zD|2D!<#_{g>0G`qv^zbf`VQnoqZ>YL5~kntLOiW)>LyzCyf-Xhw9^n{z#NzY?4-8F z2Hzfq1=qC~fMaod_fDMimh3eatby0B>$4;7bZU^<0PM(~gtx&=P-@O-FP zbregtvDLA`E8ekCQe}#f=OobIy?OOtZOq5fF56Tmqn;@uFYO1DymkzQMbUb9wBLFN z8s;e;N%^)?X_1yQX0hyvHUXDwOC0kU6XSx=T|+J3q!1@QeRKZXN%66M2LIIjW8tTs z@22NyLN^=#!Ou;U0&ozIy4KHob_L`CHY5#3(bbb^2Ci};Xcg&Q^PW4rv2#f=VYn*A zf5QM4vkp}w;N9xNAM`u_(0h7t$`V<)Mp5YUxH-812IeE@75OI*DZKO@`b*34hTy>ER_9TYdIP1ZnKbw{{P@u6| z9a6eYCe8*nLl4;4YM`&fy!$R4WUUW!uE}qDLcGkrzk>b^tGeqSAA32|{9XNcV}HYl z3737;v}usY9li!xOS)~h$qY~h#qrMU09Y&9;o_`>ELWoBNpXxF$vQg}=(_Au?9*l~ z0txZ-@c^eV2uY**qTb1ln1wnFk_?Rw4^?O@b1r1A+R%q3k-*VP`dl+>Uv zlR=7hW@6&+5ZrCc+^85zRZ1m;#<1Y;86`9DXVWrera`cO3viP#V%tfj_iNu@MHh35 zS(@+*-`=I!FN7!UpT7rAGS}z=R?BF`>LC?D@zVdD)2LD?#f&z^RgrJKfpliNxQ@Qn zJT?m2g5?ql*a)Mo|HjUaUO#;mj`u;F_qY43?*BbED{Xm)8y3iSZa?cuz@Mf6o$Cc{ zuMX!cA;L~o@ddvTvldBvC%R@v3Vg-dV&|VH9UA|ha2Xc6Oht~^oBdMpQ*=VH1H=uo;0Mee`~{pYV-*yx$CDNfB2mF ztHMZi`1hd(KL0Uu9$S_S1xb*!XnN8in|e*m=(G19hhY<0P^rtaP;7iYSUBL&LXJK` z8mW#NZJ<@`1W&m4$(=FxEu>ZTh@~I0=_+KV9CVd5@-yCLXmd?${vU)-Ca;g0>5|KUf8nyk zLcaP#K_;R3lY#QQA;_w!*1*RyM{c)oZH5>e+*C|CF}N?3ZWWd=+>jL<2~~(Z^2eN# za9+h>&2^Too-tpxZVg(CybtgAmIWLxNx6E0v>-qHEQ!+4))LPri=ViY33R6|Qhw%o z?c*{9Y}D|8yCVA<%Nq1f57V~s*sZbR*?h)he(K`>2iOVVm#PC25LeTj@gIGyVEkcz zOUB(|D~ajuSC{P5Zo{ujAu%J(N93@>E|7RN#kF0j{yuqMV-p|t9y*`C47lg@0H?`v z4AbfD5O0%E3$?UlR@@~T;Nak}MLH>Wne{*B@#04oM?0+h!Sd4&_v0fP^ZB?}{sy?m zD+e>ri6kyxH@yewFj-9KF{NYr?AuBm*}`hFRzt(EPu$JdZh-Pt`Vk}5ranZa%n&O-XRl_HmpGsmg&(bqTc6sU9Ur`% zw`N;cVgoP>D5#x_gq_*sfBfY7Mt@k@;%^TTMfOxiRcia9-=)yGD#yu}ON}O%uX)I< zEA43b1o@2M_9>e`0pNz;(yPF0?iRN<+d3>AW-SVx|B896u>7?nS?L4;}b|2B84WOF-QdQ-Vk#8-4&xshdT5c_Z+fo@z=ojF>lwm){ z4&H@WH{(lkVPwp$Dah0V6f-a~%w%emf>nreaT#Qw*UFJ2vMOQAJe((ao4ccfhIT7Z znMoAQ+vMp3TG9OmHLE%I8=5q|83)*pdGcyH{j*oZB2Nwn_z!6GomWaCK$ejScTnTVS+mrtCneaO=>h{ zhOi1d*4s)7K8g0$3am)@l!X&HdhV>8&?E6rPLtu*(K)ddYxu9;EjQVkd%Z!qO%^5* z#e2an?xVvv_{S37!*xGO1ECqPM&IZ_%v;SF`T%`7Pm~kmBsgDZ>^!8}jr$ zx6r(=K_&O~Ep!|6#C(!p&o`OZY&p=5A$2-ypjw{AykOYI&!23qcfm3}beyW8U_4cg zYl2j$C7?9gveX*3ABqXT>o3meb@ECLDL%aJ@^k3!7taW`h(*7TsXfSWadKhOg3-+* zE)Gih-%uW*HyA*5_GDK$Giro@O&p~jMvqKM#wET&p%QbPf2%|)UuTRS-e}UV_C}kD z_Ng%L7Vf?2QhzRXE~~?Xqv<8t5}I(Zh9M@B!h`Q-byI8B%-2?BqlmKO!voOBt*L#V zR>hPi6qlKZqknOfkmmU-I$SI_Rlw$v)5BgtqSh0r_8MZsoCu2-$0Qz8G}c-Z_Futs z3sfmAtPvrDLhfiqv{47%7xarNe|W3h7@5GCSsD+MB;jp{#tWoNH{l)LVh1O?J;T(T{za{o( zi+%ddFgOv)NT$ij&7xO55f>TJtIgDbrNl&s*^h6isa6t~;jzzWA>IzIX`D7H94+!7 z(?0O$1z#%=NkY9`zWvUB=L|H)H@6ZMnMF@5G#+g2tYZ@?@ll~piXuVaAL-}LT`>pL zBA&iwei3|zEX-s1{Qlbt{WzaclN;}RMp{jDj@zpI6?q5?*e8uhO<4ZAs~2Hu=cm!# zWVF<4{%4Q)vztM$L;NJ(JWF_2;WK&L>Gmh~Ho80Rg-xEV>wqa?25U4L+}dz*8#bB_ zk&8RTZ`3c5S?icqvkhiO72}4&Ks93_E!vFxoM3v&k^X0*$h~ta9L8h71jEuN)3H_G za;G4N#~7QWB1KmZ%OV9_x%(~{1|zLuQ7BI87apIs3N}{_J1kI`_P-00S8OkY@1AD0 z+*GZw1(w|JF7LvYO<3A(p0F?lPP%3&-FOqi;cQ}2T(at^P{GTjacAZ6-#i2J*BM0#H7k@bK@Iq7XKnB~D5Y;C$ALDnUT&|N~@`f!e z96N{@cX;!*sducT)lW)ZK}X-{a>A`{(NTWk2*F9shq z-gU7uU^l*srz6r|j3gL;gJA6o%dOL3%Ipc#l3jLqi$Qo&E7YS%Ne8FlN= ze14LBd6@8_#Mm_CAlEeA>5k@wrC?Rj&H8e(XAAG|=gaQ_8soCOtDP8Ggsc<*sT+wh zlNk#^ZLE!!fXobG@s{a#cUip_{RS(>lD`6@Bs0YqHX1cnXB2wco%aB%3Pol=SQ9P} z+`A0ua=)*vpUB4yAHa9qu-MZ(+cSmpmfQjfJ~z@%^>bs~4(*5?i1Eeg|IT^iGz$(1 z^lFFv!&`5j4)YM^jpe7`p#mWL9HNZo0 zEo3s`ffU^q`6yl&m(Px}v2_UOHb&T4@#_Tr?e%Vv*MAg+UVN0&>lYh+BHZJ#M*BQp zWy6Ky2*=2)&*_lzYSoWw(KP8Z?7s$68FN~l9nW`We$rzEu1a+t}QsyVaH7>@Pj< z%#s`L?v@k{tl>oh7p}Q$VEwShEEw-0EIIba&ALr|5dDZqbNAW)jSZ*&{xd=TSMoxl z;qF$i(BQZ2ADueGshB`NM{K2e=GBZdW2ZmOVEV-iU`^_ivM|A#@IUOZRbRt6`E=|s z?)(;CuG-F40l956974lTlEvc+VWUKi;#|nbfv$PZ*}E?@rRQYA;^TrQ)5v}9^XV@R zZJKEVOLY&H+B-(|^=hYkknN=&bBP)TRNtKoi-dgp{7_W(RXd{>o6AlL1X&{}SMk@h zBnY?ig+zNP{>L{i2_f#8U%Rkn-~GT*y2rmbz?Ew49zK5ZW&YFqI7Ho4XJn&l5=-|c zNVbo-qai18DZbTzq8Nvqn-Tqm-yR4zju+x;z)Ms4RE)3 zF*m(;%Z(?odOPB_CcOu!0umGMpGYRZ%%E&Z&-~8Z!(KX#9o;v7{}a7+)v_w%NqkqN zW@=(>0Ac6rP{NO;i3h{t1)?{pZi2+moQjg3u9aF@`Jq7;Z%YAIm2(?9-Yd4(oKqb& z&sL<~q=>XSP`>4oCM<3^sD0l^lr`t#OcZKFOWp9Zyv6b9;~2NK+vlMP#C$=be0})c zn;rgRubrr{-?stl-XxTO}Djuh4xWYKp3NqUSxE)T-4|qt@v@M=+|{w zL(IINE9}K9P3;6sT^&ZzexXlWwrx{k$o9AYW`PEtOlqug=!|)9h0&)ObAxzRfq0Wg z(!Kiqn(1M1`zEs*y5(H!LL942`FwNmC4ZqLO#Rnp=S#VEpD3jQ1M-JqpA5WT(2Wc8 zt;1m7EzmsH0=-K|nFDf2hwBJ^zUu-dE(P0T?8#Bs?HVkmQ$sGO52AY2=FmPwKHzy7_1ZX7m|T1paG?v_xnPja-2`(uu=?YyPC^YKu*QIMYmKXell zkEH4Szg;-GNEeOz|m!bR&?N-*eD{{TXBVe%4y&HM_SR zg4VUxI=vbaat3j&$zW%LUSR-hh*=~2nTGxrbS7!c$ z<*P?L9ab7Lmv@0JNUEPP^lj3(b{WpDW_bQd$2YwJc8n~g47eKHW*N_JR|99v1~yI) zL^Tm5F6qs06XRKRXTg|_XoKz7zs4;a`!2mm@Cm)x>_&}_6* z0=oV5u{J`@Ok?y2_|>{yGFy6uQKy)9TVd0@cX|q5c|b&WE;PL5&)D2-ct&`;QJ_gR z^MI;r<{vaZ$qC`#VB66IUT}99<<75r`lQslD}R{_N$8uXW$lEmAg_H`L|IPtXl~|> zjnlzTzTAF&AP{SEmS)lFK{4j^hkB;j& zrahGbXoe5nmREPXO)0uOm!prlrzAxpzh}zJ1&ul}lKq_v?L9smCTZ6{tGg@pu8g=8-;%NTM?r#nrPx< zZbJtTuIw0OK5HFyF&s@2cK;RK(-F|`TAQiwkcu&j{jd?qc znv}^l1!*IvQ<3p-dzY!|)3PSy+>PrAiY>a{Y^P;;U2?$s&ed3|h2rnuH*UCp(`5zqXium^^X$=Eu@$j;MmHm2)X_m zHb%i7x#4BjA|dsSo)@gzvyAt7gL>W%8DaO$L1Ge?jB2dlXWPXR8gnTc&sf4`+s?1N zF7BFG&XNFR+%>*vi7yzLQ8TBLn)njfQYxusLy}IvtlsBG ziK)tJ@HX5bed+fY8E=JpTX)-JOKMMR3e_c0i@Ivo#!e!OYkBQK;w9LA>LFz_f}y+P zh!`-T+caS1jDZoYHV}wbmCGiggovkW2L8Np6LS1)f)xps-WWS83~EqfU0~A2l#k#H z&6kOh!O7~6yt(WDb^3>Q-Z7~99+jm0ZZIUfDC!t*_OTO(Ihj(pl_^mVBAIC=M*Rvw zXLP!0L;8U*H<|E{$n6svKdJO5jdcJ%dTaFyw%uj*tD>Ia@)`99XJ(M(nAa?nohr3D zD&UVY_B#r8?lZ8_Cs>S%z+<0L)@h@b$9xU@**it1GDAi zEg67~nc@)j*me&5wkI*Zlj!hUew#JXWkOSo7_`6U-mNwrQ`J*6^q%@9F%nWUxvpDX z^!ha>IMC{$7wuyHv1Pe@XK$?EiMn9@LCiM^U7GaR|LpSb4Y|=}?0c+edsgE=6YC@0 zXpcs-jy^2KbPe{-eOkZ$e~Qk-k!#!Q6bZV^{?Ww)hs@e9GiiQe;ATe5{L`3Y^ zen)Gs3JD@;5i4RRseNkJt{^H_jZnL&Jh!@5!Z!ev7aC*=Z{FaF-Oort+%ZY38_k3u# zEM3{&(HmF0>w_F?+NbZkTZxU%O^y{pgs< z(0V)g>G#+5)!8D~`Aud5U$em4uj|m>t2{xiH!{mP)r({lA|0I9C$pB~ zv$a447V?(@KC2J(FJnKEyx{3E?^_y@hmZ@SfdxrTIn=R^E@CGQuF@W@A zFE`w$a56-6MCa+Fc;DE-1-B<+jZGsJuV~TzcyBeqE1MEgu&jVrl6$D9o!s$Ku;-Z)ike>*qMGa`_;rFJGVlo{nM&{3W?NibL3Z!su-XfIr zj+^FR0pvI13i3hnl8si`d7J%9)N4A5kMmaVi5`T@pO)H-PvKI2D7#ZguM1aW(5Bw##^JAH+0*Y;_ug#gT#FRa9g!^;iv(Hskus9YVA64}0+Id0!2*4enh0-HoC0 zX{S9|4l@A^Mxoybi6An4{GG0}UgTX}6g4O7Mw~L>|M;<_T61_H<#o<%dN#h@=dbHq?djaw90Z0=$f=m?`Zh_us6e!P%E#DlNY{1|l!V&Srk29I-Uw-MC#1PXx3X zR&s3oM2&&Z`R@E)ZHHRA3{Z#ReVR_(g%12z)N}%9quj z!QD!hP4!?JN^i3%&$7MaZAM&nMynYHR$L~NO*fo%l@LaS1alLA@(C%JAdx#K%;^*8 zdG??t-k~-HB{C%@5Hc|v(C4*GL%GIz%w;*XYC41KSi>^1AriqdzC}>YcllP+{!t>P z#>{Sg1dl9phELtTRLNYCe0g3-cF!BC#v^_YxyEE{1~bQMK+~JWKZ6t#DGgq8s2j#} zCR}!{+l~7{F0o~siWOotU<|n<8&^i7zdR=TD(7c9>9JxnQxJ?Vkp8V3QEyD{6UGRl z{UHjED26ht(}_XcEdHJHoK@(P5`Zl@2L=c?>yT3u_+W~Obk`>4JGAe`rG1=)QSxy6 zKmEf5xA;1r$rHPxd}rc#gGT$C3vhTM_T7u;J^ehxZhTsaUz5y*zuxLro80P&&zS$i zY%2IomY0~oe}@s2BI zob7ED^_5YpF`M-OF^4;6N(XvS`utXO^6pIzH=2^0Bv_yT$e(5)6SEOTLX^63-1&FR zXEQ=dNKfGX6UU5*0}b2FM9;%)j(K+XwMFh1I0&&f7qBSpuJ9*o)sV!aS-`V7dnwlU(ubBC4C>z5*lBUJ-G9GmEL99r%!KDB9#)W0&!=gW zI?&tWS#&ZAc{a?~_LMh+ZvDV$u3Hl$?v84`gJURS zRx#m3`qSi!)%4Al;m#E9^XoqvzU^vfBvi17eYi*J<~pa(?ab%<4kc zt6vywh*0GK7n)G2o0nWmSH#`$@eWp?(|hRN1Da6|3GJ-}CEudKzPu^+5q(y9U;*tQ z_&2RJaF0~1|LU7wAd)Xz=bPM4AW(Fm8t}=F-+cp2pPLhlA9!T}=!rkga~Vu=A{wWmw5P}xNw(K zY793Z^dpbSpffVa_7@3k#_|UjGWX>u)cDLNtInZvy)2sfVpO^hOJr&p z8kJd=a;O$41|s8J8aAlqNfmlQ@*E>x90WeD|h6K2-}HJ5}vzageD_N(A{nn7@o z>xh32Fzs7CF*2%oC%qQg;5yvI4l*ii5{aQ%?dmIJpVF0EU6Prip*VIb4Rx3Qf0)X= zPf37n#}BdG8q>vyn$+Y;KQ<1Kor2#r>Z)ZV-K&!S; z(Y>IV%$16~pGU`dv!6_2=QSEMI_*VxjjcYnX|c1svUa_m_m+osl+&aL;3~gZO@*c0 zBW0qCx^x%Qn>MKV*mBp(2#xr;dD3exkbyS@cBVb;;NJA54~1wyzTatK6MER%G;f>a%2Hz(f7`mAAh$Ix};VpdeuHHZ#cT~bXfszw_hSWdbC~9 z0CvtO)-Rs1PbvB{47XUb$wKerxdOD9nqr@i0ddh%3Yp*)z$Aa!>+*XnosrABjd_^M zuuJFMq6`E|)takxcS1(xSbTyZ>R=kW1w}#h_Md(0(5=u3CGC&QBSN#r)hLuu6iZgY zhBc%bOa87`%>4M`QzA}OuESBcA?drbxM75$j=4nVU$-#l5zU3?llX3eDkz1Af#xhU zR6P(#&P97Psi~4P9L0zb;$7oMOR_tX(oMcYWF!(A6u3>u$)9C`C2O{>kK8F}aaO-$ zW9*%HZs7`x(8ce(T}hLdOBJeh=kvec(cw&4^`3he7+pz#;nJLA5??ISl_733cY>yw z<0=(bGYvscZF=3a>-ea9C=dx)IGqlG1VcNF@4sxOs^6YDhzR`gviF+5zkp@jGwwkO z?=!TY=f6^7c~MtYBY+&p@5M!t?PDdJ*s97BF|y)RsS*lttZC>S)oZXgv0siJZx9Hq<-WYM97ag}jEkeo=Qz4!>cKm!jPQa1T>s-zar&h|u+W;TV6XCL8?njQ zW*ueaNRQ;#S}Nh|ckn@m0^UXy&)3Q8HOB>CNm}LjtfG4^qdpQi{Kh`eH$AT&kUBnY zH{SMiVnZxAW(i~QXz|y1ORl-VHz~#)pEZC{w|K-bDd$(FE}yRWNi+{9CEcRgJzm6Z z9IdQ>*1NS#k<ayQ%_j&~lR*Imtd}%mseg+T!kO8pwPPM$kr^$vyT1G`K+`jr$EF zruGkL| z=!!3w-o3-TD?N30oh!DCwOn;^xo}Cf68(Z&$Yup+;nc4$ zg7&fi{>?a}_o@A@>wjY+9w|J$tnd9TNh=MCIchJP=gp_!_N_)0Huk1}vb_By?-m!} z$o7z-AX)MM&Y@7m=_p|ac3$*a6;z_yZ1$lLg<${kwSTO>3z2z42 z9h4GTfZLjr2-If{Uy7-~-iejB%$`i1vHNNfiT<#z`%m2i2h}!nAnO;QX~H7S#dq(( zq5g0p6mq1m>JPwO@7X4E!b|J`K;Mb()nNCDwSE$kuk)tM9-^+y-O|?fB8BdV5pmSU zJan;X>_}X2a|Q*UW2l_GRzEd0?YO#?kX?? z?wdyFU2ln@Nd1Y8N2!1)xEEuuuaGn&jFT)ID<0#4qBghnsQOY>LU==+%8EZBbQadt zeqddq4h$rX2Uj23sTkm8h8ox#z_5j~@_O$<#EjLxhXdtTS1il8W|cAKD0)lp6np*W zUmDX2BC>qB7dm6>+5{8VHWnV3+oGiVer+M{#C(!im=u!!Qkd0DYx-RSbEtqgZV8PX zmYP#5UJQ7Rk{lT8Y>@E=P%>IgT2z-Qkr{gXzA`YMy8X8Ae<*DGM&jKMgvPg4?MjjH zr(m^USvfK|QC-WlxXwJDLLf7s;-S=*ADO;hrB|oO8W130fbMTKWWPya&h%P{g>l2N zVA-cNYto9nk9$SZuXVZmh<$Xo;d#==eP+$c{|;;TwAxLh3#Yo=Ypib6Ula;%&VrXB zCB=0@U$lZtq=80RNa5_gn$ZSS?>*{@yYY|X*od+_@U7O$k1mgXZvPeS&)?LaI>A5Y z{|!_AYa#FOWm*4_9KJe&Y-o+{cbWjY)feI$?87C6ZI-@ubeel7*EZUg7fGUm5jMLt zUn)$t_im%8=S5?$z~b7na;IRc8kA%=z+B8fRy;Yw1YD)hN~Jy*?_9}r4(PGPf7t=h zG5#jTM}=qh`$iMfc&v-279mz&{)u9+-JPkx<#6m_zQ9My$j|C z$rCD;^2O$vI6)oPcktJ`HZ9O6w`OsleQ{Qgtl3>HZ>n8%fR%{NJ71x=xP+mycI>oj zK=W;QCmc(Rwo~x79n{UKoIc6Tlj7to9%XR!&FSyYriX~Lo>p*iDJWfTJq$6!e5&1a z9}_GukM1SPA%moc-_=47a252U!s-3`la&5xSG?HTo4PoJw+eqV1vj-J@`0p56@#K6 z?;ku!OB{TEX*7n@10@NV;MGf2@^9$Z}>lSFcAA@~CgLp$|vS@br z)&Gb*7TnPM@=qGwciu~m86ERBG9pl&>k9Yk94b&ZU|Kb#X1s>d2#`%NBSt3Vtp}wi+qtiiWzj8J#*_a>ZPRVy zuC51O{+kw9WCD`(THR5Wb0%^&24X)cF>77U3`$T6-!)7NfhCb z2b=p?Lndf?EZN8{5i4X;n^0tQWzsU6#X)jsnu7+3V~R*{-Ha=mS}*b<9y!M`eWrie zj;7*NFT68FoHVUXS?70~Wz0OY&k;)RL!`%PJ( zrOd>(L8c)^5}=G;ii7KaCfP{s=)2En*M01si# z+Q=&@<8Nc%-M*qr3_|>PW2Wno+c;as^nyR>9V{;ivdPEXoANHPsIE`L{P)7ctO6B9#O5lNKpU4p_qtm_0xB$Do03cCGI)N!qRg};=bNq!KKZwMSFttkhKB4 ztFJXz5q_gbP>ZR39J%aw}Nkx3pUFf|Hi> z!Mm`Pb?4sTUX119A(D3l<-CcY;5G~EVZ)A;jqLp1&(xyFU%tk4Dj?pX6b4LygjugUa7|S@t_1@ED9#kZaYF zjnTiHtXFH1yM|c2{6C4ekvLIqGKKhA;Y-{#ObY3%*-4GSr=Hh3@{%C)VfeKc1wiRFG@64~@qw35G-ZlFZt5FkMp~f9oZXC5hDn zNU+2c70?lmna-C+Lt31p-wWHc9(AbPz~$R!=*8jRMq18_Uf8$MU7yWVH1^P2XlP7F#&D=9@>f?o~9 zwEk^T9=FTNFmIFNm7(6jEN`0=B_GQxpx}39#VCkSb*AD?DEEp5(due+1qkfHy`pb| z0Yhvl0^XEe+d<=|b?-{afEF>-7`Hg^>4=DH+c} zXvd~f9#(YG70V9q;kbR43_1(bw3}R?N?Gqkm-p%=MBe|7jiE-I}N=Mh*{@ZCD>A7NPJXb@y6kXB)d-=Qka;qtze% zcg}5?2CzNZ<|qE6dl>vSmT7)R{TG3|-2IW_m6dIPDod(!8&}GK3Y8Bv52A!?L+!50 zmVibzB`SuzsWaG$qF^!#-CLx9jj9t{z(w3~+c2&k6r+J-L|ZFqJ4B^V=K?>7RKA*# z`!b%g`u3B|AQ#VN8U*8SMU90XsZ!9JZ@#vh6#>ff`_-h`{=_L-g)61}NOiq%kvtfy zn&}j&CL0`Jbz5emC5ox~z#wg{L_MpT1yp`({WV=#;#Vmm1RxP#B*Ef0p{e1r&HYg{ z#0s4<|Nh~wV^%Ez<$ri@Q{RaVgf*b-)}jjbtfUbVAD(|uMp8c~n{5}~I*A)h73%p{ zgLnN=SL^Ke4`_x=1XjkcE^jgo>V+f*OmFJHEl+hjov6fzBpYY#JCG|@$9|(5{bobW zdwPK?Pt&Dcf}51uiB1aXf!In5hCfh{+%u{7m-K~Gu^6=F(F z?bm9jjv1qY#8UqqhtTmzFX7Sl;rRF$Oxx0am5Bn_123v}=m*={Y97a1_Jz`&TuI59%_MRyQrmaPf3(my*s4sZoIDeH!j6cp(+5Of;tRrbp%eNN3*j?R zmQeLW;DyGdfphUJ{nXnc4|HwzJ$@#zc&@B0jE<&T?yEI3!U~~)a6Xx#W&|Rv`)Gfq zfhdS5vFoY6Tc+rLnCKDVoY48@$-HQ*&Hv&b2=<#61w|#M2A8igdvY6#;6~`us2LWM zxmz{b3nWYOPM7?w{S9LHL#d5q@3t)2;!%%R^-0$ABKmLx+?ut|iLP=fI^lZN`k~4P z%X$y|`*~7J6O|U^whLLF3I6=KeW7Gss@b($L!E+6&ug(b$!alX%Ts=un5MSAs1 zq3T{QTr3LU}{OIS3U<8x_q2m1+ z8()9B0qJ`o+wVs<=6NJ0?T)6qk)c6u6~VWSeHXQTu^tOM84{aSa&W%;&44JtC4c2A zS!s;3SNip|av_lDc#qOTT51TnU~>?O+C!qmPEoF%sm(+F{ySs(9C(Tpw_P?P?$=z&jXW^2&G-cBWOQfq$SS~pu){b`T|H_dK_}(pqE-p(*a8}BD zxrE@S8hG9|eqWO8IrV_m9`|T$aIAGWuLyd59J)nkgnD2?pF;3J;om$f(&k0Vb(m2KBceEVd1?8nz?FL zKNIXXocG^3RfF2H6~kTgWFrJ=6z)_%-h5i&%D{!*>+NNi9~BS7wwzR^{silGZoQXy zp75NMOW=Op%8I+R@ntMu*PjTSL2G(c)K?F0j*;93#7Y>1)3g;?O&j|m2piMm&^r{O zV>h}Ur?c}oDlh$I-`&ELc*U;^TJdlpDTOw-=P#>HdcFdY8IE4RXJhPF3=P@rIZl|y zYX8>bV>qd4eq4(aZl0E3)DSRE4q6>WAJZO6Ze7|2-rsYGu8n;c80O0s@^(vOki}@# z^WvOwz!b~O%9X#tc7ltmi{C>YDQyoIS&pQu*Lb+e9HERK+v6KxdD#Azs^!rl{(;7+ zM>$ml%UmRM6h2(qv|*xp@8O7Ky>oaax$earucxhcnch3`K6hSGPtO+*tASTPyzt_> z?!dIcDK|D(7?w$OO4~^^t=a{zT2F+EY>ov26mO>gc-UhGO0Pje{hVb|O~(94G&_ZQ zdkv1+MDUTdM3w=A@~1jDaex1p4OF%-q)sw{V{%iM+*V@n!mM%Bkt?JpAY=~r$lJ66 ztX96bvdZ67PAF%LRr_yaPuIOPnA~G=$p|Cvl!%x?L5zz=zw2x9yUj3=d9)0? zaHc=7mReocFZcF7mjf=3FjmjnD7ufH-V~G=LlDXH2qTI8S#zn&Xtz(|mR|tUfDKf3dh`7c}UT)qc-5{)ZckkLf=ur{RDGRRdOvcuZ)(#CxzLQh6cKZD8c^&4&13z1oIiI6w+x~p^Lk4Gdk@JAdRR>&xT?pB_FH$(`A?>d3Lf)g$OYR zahDPU5mH3q{d%bOKFvrr6YZ}R6BDS#(?O|yecJ-|XVP7s-jA0UfZ&XB{NKZ0A6P^L z>_k1lHJv;!nXRnOcJ0hoN^sgBMN$$>}!2y3I+4Z^2_V8kJ^!VwvAIvr_I5MlxJaD=~vqG?&i$umcF04w~9!Myx8;Kxds*St~9W^LggR#HnZB_rg`9mo6+KL zM=^F&snsj>PX@a5-7sY=A$6I>$O>*cDlcdswRK=OG&ni)40)&V7o2WemeMcsU3(^G zJm&?k25U!@qLT4$Qnq6;@K>gz%RTGs6LQ8n03NMjq8eYnpT_3&V+vZduX1 zzg}uZz_c<)Ie!-{>vAuF6`AFM+Eg|h!vovWfIuQBqEsA@)Y(Q+W7*7OEHl(&>I@!e z-z8gOGWUx6%j~*<-c^0p;uVkGU~8sS`CsN7vYzW1a{;y=o^x%c^yPb>WV<76h23ge zEh?lOJcN}<$2OL+@0P&7FEE?pzN`tK{lc^eWK0u;n{{_#3-e`-rqH8s3UM#&Q*D$sB~o?${u(}n zH>Hm4DMXqLIaxdSrNn8jy$o&O@76PD>}xhMs`C`(<8|YcDu=@Dv32xA>%XFe zWd0GmJ98~gEK%Xyds$n6jaa0S4nGBU4CzR$_{aeLTnLNO%4 zkR1r>Nmoj4x}T|;%yAnv&G+@FNy|EO1S@5zd|>gas8@1JwwE;QvdmPM>m7GR!&gZj4u@G8UX47UmgOTVgnr zZHV!X)F1)2L+I4fjpY+8c>m|k0ocLUnyAPr%v4mU$Y zM%Pre^_ots$N>$;-ok<3vG+6!5 zi_KS_0XTWtpx;UM70wdyO=)-d`ANOYxy2a^A8aSa_0dR;bE=L~b4|ypEB`z*-F{vJ z{LGd5VZspJNx-nZvTiqkEiG0EztP`D1`5d6lEyy6@hn!hK_3MjL|PBm_8?X?WP6o< zSHiO?c5JZIm9)6sHH2B17J>><)#>Q|8AI;rx7VF4MRYXnqZKR z_I8E8OfN!Wc!rp3MIP#a3h<1|>ZwQrV^#BEbPpZ}-zKnAOC z-#?hCuUfv5izC}Xne1=2u}LiL<7nOy;=gm3kH=T5*Qj!^yiTsfnJj^tTV$@kcwQ~_ zTG*}4K0BSjaeDUgtH>O!n3)z7$^IN`LL>brjMfpSN85+pT7Gur<-ZXoZT98ItMom` zPRT^uOd}8P9$_a3xfjCwr3txee}qsi3(XUR##Da}TiRI+N9+^8h%tSM^64q)hFC@9$bsFh_c_2oKkM- z=l?KeZ&*d$wC0L1=7{nN3U>p|x@f%@pZ@_E@FKW}D$ z)ZEVj>r#qX_DfZv#$Yj`&~+H1KQniYTgq{j|4-wwI|sEb-ZEb;eN?bF9)WP$2usSi_9vRu9y z1~lHgd^g+u#_gzkEs~W*26uFftqU<;WR7tF$PhF|bO{}JdF`i>u(=}1gm>#9urw*H zxoi%D!_>qZtNEu=R~Y;76Ul>KQb18VkeBu`Ai5obkSD04>&2eki$C~%eo*MXm`UJc!`1ilXG3`)w+J`?AZf}eA3U>ae zR4Eyl$NEX0Z!u~eO5(%e;|vKF7W5jo3H!0;^7W1X&f)i;inRwjhr6=+a+?BY?8!Dg zTfv>|TDI2L3HE9*jdotSojX&Hmy?sW5$hzDa@^?o{vS%l`bveCpIrW3)mm(>J-c^p zIHrw-2W$CwK|I)HId@(5N!bZ@KRH+TeKlaf=FNL;L;owp9x18qkgX42G9JB*`xw)E zq5BUW-COU?y{l2{_9o;2*tO&eo^mPt3T>AfD*SyXF@S zsvrOSC;xkxNhU3F?2bBLz)HG2ojUV`F=0G|$5nsKVlASOilOz|`o2Nh+P|UCN0NN& zO(P`g4CF*p)XR+3GYlifotIeWI4o<-tEn|?o|(3H(SoMP{VNdkW-k$UW`Iq{r+U| zAx`<7<|T%L8N)c^0!wz@>mJNNyL(5dyyjhg@|UqT;{iN@PbZWyH%bXj9hKO0@}2dv zRGw_Rn)q?-$(=g}T$i&Fv!!?J<<(vC(EIkWtBCutVLHFcn92e3vx@~7wirFCqC&1L z`l&SAO$7fT+84ZH^@AEGMPoyT zYTVLhW#y4~o9z|{zqh<&!%ZI?0DleJy2Of)=-l~qxRr809i`Tk@Q8MGL1Fw|hnPl) z;e>;1_P?a?yqd1zPF<{xmS;fO6G6V7y7f!3`JCmC;NHcCAZdxU^i=b+oAd5%VoZq)B!ppx)s&VZ!4PDwg_c_X1fhdFos56wH~uLd{5WOXe$riV z5H+>Hg>&5}DSUEq-74xo9=Gww(6z((=BRvE_3mKaj<|x4+E;-{<%?=us zTaIvbCX(Tl3^#}~$xzIcixG$X`^S8^+@eUN;h&-yvcrYcMYZaa9r<>dit*vTN)MUq zZ8=!m=dZ!aqnZX7t2AdpjRts;;_oNu^r1fG#z77!`=a~1;Sk;{z9v!gv$o-CrUe8# ztuP1^T|>mCWW9fJ(sw0l7Hf6>`8_LXicp02#mLIi)sApWfNUno`%5=5*fob#Km2@c z<799))_BLeE3;GC3%RnE71y-uaS9s?<%$eQ;$djw)lHw9tG;f-l#KY8DaWYYpud9Qk$E=c>F#odSPMjG{gJVqHL@gvno7kh8nP zjrv6|vU1m7-@c2Czml`a*kax3^7asq#3(21m%cQr%e)k<*{>s^_=gNn<$vd(ZS35R z@BZ-5f?cpjH&AvLWUSzj)B7eaKOg==gG}G39G0`3O_J9$A1!yPPkA3TZ>Hq~UE%6~@W(>OXnQ<``*aGs!|%b}_Bvl? zq_X;7T@E9hn%e+Ki{e`crB)aOK3>BTe-FmVNDn01ns<&Avy6KzUUP;dJ=*6!WelUT zKn(9=oz9B6mgv<>llGdwum!k%-aUWyMI?00N{d(~W}|=Z^GNyZ2yPA5zArJ&px=G< zzqfujE{{TR&tmrI717!H5DrK~qnrM8Zd1R4FWzJ}9%1!%4RARLc^PMyh+(A_8FIzP z6+KOyvKfXy-jok=un16(JL3(JV6Y7oAshtps-_rX|qI9RfCphtwD^1D>Ym_y`LS>VoNf>Oy)A9e#wL`4-(s}tX&psNT z6844>sZ(x`lwJ&}j;XjEy~R4qI85os>_KfN)oM!ng?k47H#!qF>psBq27;5Ylp3}j zahtP)k61P4))EbuyPx{C@`593ng(8;ap((&j3a&56MHCAq2UMvY5>+8KWUJC{Y zUO#{MIYCX%i8Ro1Yv{{-Wep1pO(WHVl!nIvsb&dc$6a{C+muOj1JLgrc(40Ikj{rstL$rFw;mi4V#j2`bszrc?Y&*CC z(uqx7nM<|~_Jgj=e{L3B`6uN>DC~yK#v5I0Nv#2X{b;c7ra(SJ8TTMb_qw99bXfplujPhYD*`&R?{3SxCH*oR)L;1bxpxpqiu1sAQI5~ZI` zop>) zQVMP!zgHw`jhX%88%=KzG~`X`u2oBM8;eBEI=kb$wRMp0Ztvc#`VETLfpezINByhD zzP?|d!548$YkRcVi;nZGI9TTRl2Net#%=!f@34;+?Vof7q6Ms9)aidVPj50C%zDmr z;K8SPtR31lJWBNrh=ml>7yT2vA313#k;R?W&5DxVzcdTi0i_H2Ls<=Tl#D3Ri5-RBd$@j+08qcU8DsqYu;(yI04M&sPU%jX@YYpBPt&utm2nBoe%Wqw`azBEKtRzcdmIOfy9n%HmdASiu z^f1U=vWxIFUMm^ZSx&m2z$XxhGtbGu3JIfBmN)Lu4Cf2<-%r~BS`$at8(<52gtns%GV*Q&kS=cV+n+Y?_* zo0H6OzCTA2-k=4%aTDWh>&(Hof!|N`UvkTwI?v|+$s=I#3;QN6%~^e;G=;4k4zCfv zk=4F0%=d$5x_P;*w{YS>+bF&#INQxc$jx2?(VM8{oU}L~uRIT`4t-Ean$NU5B1W=70VNbEv-btd=Em~E!^S7d#wuTM0cp+# zOgU#@aGK|D&)Q`vbsjQsn3XzeL-I9-87La&{C95e)q#(*PUW-LC3cM|M#O_JyBs=t zB-qNWe0E3kRyoG^`r|dvM}@h24H?4fY}l-X;1KEktb6{A(vglj$C0`cN7*^a{&mby zanTw9LqB55ERz&G+$=QG1*KZ8-iypo+K4iqdv@jvXmsM4f;}>4|B3#VOMAbH9ac?y z3cO<~Uoth}_HF#&9c(OdDi(E+?f`d~SU=6aG-8$(u{Z#Wce<7XHW>Uhd`(eUgAUple z({@x4k(F73>e+v}9e(>@q76xg!Qkcr7bND`FiQRSM6i*rxiHUE`yub?B7;an`GU+CbxAXS{V)pC|qU2FOSKmk>8dl^=P_h zs~PbLiET;OnOVw?e9{Gtg={aR<^2vJVOR16NjvvG&Cc9E2-l_iWldc$-x>*u$~}j? zXCmMl#t|_ze<|{C_=grM&hPr8WyT9}`8P#9v=$vN+rRhdR^MN%$oN)Ix>sf}zjw0% z(*o9$&Dj_6R&E3t-R5objtasS9Eb;&X z&&rUoRufVyHh+hc{NAaA&vy1-vL_pL7Z)CeDcCV`W{*;ibrsr1_S>jK}?&yYR%LB5!_o$ zG*wg-)or*d6!V2=)+$n_8mktMyOH*B+0;U6`*r0C)FS@9I}r>&uEG0L$|)(!y4h~> z0}uU3057&P(r2UuVY6eDS!@>~-P3E4&OE%(m3!IOkJdCCCWOGlRy@D%A4Lx2BMMex zi=l&;PR90?U<#SyyC=A_(E7}e_15Ivo_p@NpP#}XcX^)5i8)8HR|yqR0#RZW9Ep}1 zUGytuQ)7_yMMy3ADpP34D*3xSK-E%vb1|ROt4R8bK1oXKkg+!;?w?JoPrh`& zwdMT5Q{&oD{k64|XT`ub*O*bnLbyNf$j1M+ezCzKM~+$&4?2Ky6)v|?&T$)?*s4y6 zn6=G|V0PZ(Z>^M?8R`D^UR3}ou~Y$H36EO0ack1bJrwPJG9h-r`aQ&i2a zlVJZ#gA{;8aJ!vQ!c#%`^yP13CNxH)`F!sEE@#2XWwieulZR4ZHe+bBCSQJ{iQt9~ zd=S$0K zNCN?5@H)+G&5#|LEwT)^^4dk0UPI3knVQr+&_>wc?Uj0S{LsVPBoEi znHoQyGY&0q7I8Ba%Z*>bKyY0#%>rx(O9QO2)sI-?6@geC*=U~&AuC4 z7*xEG*9BXTu=;J3w{y8?`VzT$jMfc>%&FCV&!lbnaDKN<{Mn&(=2aZ8@h9Pr4|^~> zRhgHYCk9>xO?*&`AOgp5v6c9tXmPWA3p1Qf_Pqj(WT^h$I%>6D0b9ASA4Lv!y`u%j zL^O%&H_omKdlD9d<03-R{9^lkp4bs$JAnjG1E5+KBs(9rYvh}7tK<@#E1y!4 zu2_fb2T2!ae;L979wj>Xe_jOG=&CHj;Svr<6mP$%#Zl^tiNp6 zY&(!he*GW%ZeP%#PtNb(-I86>&yM9D7;coV;*Z0WPb@OQbrvv2xBNJD27}?V0rbl< zu0t$DbkHRn=Jl371Qq5=&fIibU<8yT>&)JAaY^q!selG771)?K5{vs4Iq53*ahJ^E41{T^e!ugi zd`vs?_~yp=eu1046IMph$(B%wX@>0BNoA(0Kl1YL^Ycj*xN)b3J@#wv$vth54EVp7 z7vNj0FvF-ns4>d@+}>i2>~rd;IoI7O)gjkOS5LECfr~jVUv3h3LDP6KK#n0_nWTUD z+OW}Pndf#uWN0dHLYHrY+4bi))#_5SIm=+L%P9&Ws#`^y(;Cx{Ez(zi#xEQLwzp|+;C8MJ}vvhe@U4Q6~(fhu=ywyimch}`kmjqZV z17FAA8Q-r)1Ogc3ylEZZ_`o-u{xM3uC&Dd-QHhe z)w{&XA*9hxPv=#>)d0gM_CFnnJPBV`$7u=k9n-?2=(B%Zlxw|0AUWP_iQ2u&3p?NJ zs3LXJhax_>%sC4;OI~S`GSfo+q2=voV`XYR^QKXD=79}$%|2~1xX8dOM)ue_??03$ zv^#;y0UOvbE%l9!CTvJGX?)1X(xz+GWqS6sRC!Yq)Hq6XeDA=Xs)j1Y`en&3WKOR5N z*YBQpBOnpb1vVL|sDISuc0S=eMgcGso<%VcOi<@V~=oug(I2PPmF5`Sm=Cs_Pq1+B;(U>XoZ1u2x)QG)*h(9rA z_sH86v+Ao-RRlIgtP<4os^-H@$;cg5%ZDieclJpojO)zoSotyMvpOCIqQ^dO?;va- z!ghc@%8mhF=NgAUWI&r}08kbI7Lg~^LpPD3-Nx9NLO5-;h|n+lK3%G~tn90@2>Vx& zND)fK*mVDPYjIfQ%@zY0R;XiiaR-o%w(s$Qc?3Vk?KCuhpo7jQ5%1+}fB(s;nsz7Q zY4(=1W1nLdJ|0sdts+_2_0^zJLuriTq-G@TPD4L1lhLSQWFJg}>gmsZ8S=u3X>q$& z9rxTe0)yKWi)p@_C|v!Z3(v6O6HwErQ|r%|LOdpHMP}|g*OX&#iS@TY<=p%N2Rj^& zTHy>pZ}GVz&5#xU?h3lrF{4=n}_4={=(Ixm7kd(WFscECM>nJ zs>k32=aDpH4Ss^U?3Og5iZM!WcP6>dEJ?>BhA#2nZs)D!i7FrbM{UG#;C6YrF2DxL z4KX3({Kv_M!QmU_%fGq7riF14%hFsCC2H!ubxjtaJv=h-T(iwE!of|t!RBdb>cb?tfQ-S?LPKg8Spw5#6TsO!BvH~_5*E* z{mU}af$hoT<^l~1zJXZ?-$i3MIEzRG4Q@VWf3Txz6CYZ}XJy%&=t118csVf4eGVuy zHor$;Z7@7d16W8qKPO3z?{R=`l#N7^78g-idINe)6Mvc`N6buC5xQy^3WS!UWoEBx>rVW zYiniEMwL|8aXk#d2o+l*$`?lAHkx*>`j!c2W?GW>kr@s&TOxg!nUquOb^8&3yZC9Y zxmuQ9C<+zeQ`i6SiinU)uEQe=+hjDOnE#d;uW0_IlG{)!+SJmv)#Dq>LCH{u!B`+x zX^Xp$#X=ypfei|2NylL`NL%Zyw(om}S5gg_-`~A>5!KHw`;H1xkdAPg{(Mf`X?jvK zW`l?_YacLOD3eU_MOun7$dEYJ9Bp%tj3g!15@8CRKY9#FZ?7De+U!DayDL~Y` zd9(^qb7t?!guUTIxwo@{H`|~JXO|ayE_awe+KE3J(Dq4J9(!qFgCFJqhgCru#_5l* zx@0+f0Xa+f{5|g7t}Qv2le;Nige7fHZe5yfJ5PHbGk(=UT`agLAZB-0fAsAgJs#sp zA0el^x{HNR_*1D)C6ygbb{PjF&asg2BRYw`vhECDf$9AA*KE>o|TY$vthEV&qtnjf4d-OPE z_;DKCFF;WJ=F7c1^9fs;Pem=>ysX$L#R;oRSC(JfA2%s9+BHHbKpitGEox9C@=@vO z*2?_p{?f{zE*?@(wI5Fd_3uyOdu)zh7KulLD- zZ>Op5M%A48I-L<``~H-6<4*B2)Ww1u_nf)8m2iEdU=(TCz|pbpz`=HHJWk6jDmY#0 z0Eu8FsE(K+8zaAyLTv4gKvo|ffduss+Vo(dc46mf_lw(w!NQ*LQu&E5d|!K8#3Och zEX3@Mirj>!z(d61t!-VpVStTimTC!~DLT;_gk2d`P9L-=sHKN*)k%t@m%Z%Qju3mo zH^`V9ymQG^g%>f#no!Zjx6%^=Uf96Sw@T)RwtP3!Ys)hO1V_z6lxv3v)(+O)8N`MT z&I+LzKUQ^Q%`6iPPOI#5_5<;X~^p%U+36tR9+ z*&cjG=c1f{wL^PqYBqZF9-%b_e!9JYr7N`$Wxic7R41rUeJ)@c1Lz@}1>vgIGU*=# z$DGrqE>mqkEnZICldi-R>cWkJtUZvZ8`j zy)5K1@p#5ClFSSc9D|Q+3_rj0sntp;a2hKAocFRsy>7I7(0AEA7W!KrC)@qt?8NiF zLQS(wpCQ;FGH`>WE+N-+urjnfcy4a-4uxX0r4q4uv@*Uv@Hj$B0kWfHENw!LN-?+# zc%f}G)pZ#i;g+KM8g1kNh^o!Euy!?^M6_r-y~i0Irv>is2SO%{r~}88!YGXMTzSKC zWtmJfbbY0&G5x-Lp5Y6(S}4Roum607Z!JRTszzaV-x|juo$_%Z*x6(Qrg1o03b5Os znw1)40FU-j>m>oORam{@-7EY#y0Qj6MY-8CsItwUw7+cB62M_ZiQpwQ+r-cB^udZ z$|QiS0VJA~qv}L>W$Tvvb$+^rQpfYwkBVVS(;Kf7b)x^FUUPBzx6j4>$7jw2`|?$v z3)hO&rv*4u8I{($bi$%=-tLLYZlEUA4J(^UV1InNaIiVC$5{3CY_W!meS+}g9=cT>DOTJk?I@MIm)OwNoTzpirir(Uv5PtTN{ zFr>+q3~bj=hrf?}O{XNPw**?z{cm(UjFSLMvyW;7r-FzLwSX6AsM*`*vJ^G!`EPaT zkdn~Vg6(ikM!)b)v{d}&KN{Q;@{@#=JGB3@2}|r{@SRIhmE}6Y4(X|wuO8Q? zOII9*AL~p_7%01Dl2DN5apvN6yt?k6t-L1&g9b7(q4>64)PX~dTx9!;l(N5U&qmc{ zA-ZupoO;lVD+ym1ZZ*KOD;4Ili%%bI!c?Oe*{)fUx5-F#0W;>OPuXwDyhT#zZymxHw}7a?l^|bLq|HZ)m}9bjGN7;)Mw3l0b8bP^GEU zUQt5dX8&512P`bNbq|#kAf)SAu1jKije{bP+Ofeal)TpyrVBTsYT}*?9Jx(-XP77d z5|QaM;`VI}F3Mq(&i`_JKKOU}uQh}AOsIs789J;Cy3M*`Sgstb%GF+VB3$!O2lhMM z3SDJ=F=`+~vguyxBMxi30+KrgY0m@;?V$g4r?#A2S04Il`c|@37XW_xV9!GG7dZ~6 zZLL~>f%B?TDzo64B6Ra3!qta&MMN>`#NXLPGZbdvaqH$w{HY4t?n`CZyo7}UUAs)C z&SVoc6{8ZJZ#W+cL@DLTn*jDLW^;KIp%!JT{xedks1q9^F*KMk2+S2lzl$%~>d_S@ z;3q6eB)Z<@q!iFzIRNGgAzD`oO)dkT)bXq-UNF8Sjbgt1xp*<>RvFf(ZISkmzfKX< zw_Cw)aa?|^1P0~W*h+^@N|kmq)n$zEe(^rWdTt_-wtlv~e?rmIGhUj7anD1GngT*& zWh#B{x_bD#^B3Rjv(QIha!xb2t5D3KT=hQ<;db+?&MZTs4h(mh_9$XS){t;+HR}>S zVyI~}v5+jCrx1B-i8xljLYB?|TzzhO9NzaHQr+@F+UNnfA?`=pr+k<6!Mdm^?o6!= z7v1ToNW9&4ep;@h^nEBot zu?}h~x@Q6bG?3~}=TuO_V+~LyqR`PzJ3v4Rud76G&0MNoMTUlHc61jYGYto5pf*_j zc6e|a9oAASQ?#S^ZNBrqK$<%1nxi}Noy7)WZ|#fmOgh`RXI~)GAYRrDLt}inSu9QS zxeZ+T;wIc|LU-iP^wfG6=v>a21{HS9Y{*Tk$CJ0om1d2G&X<;GPyD8ENO(s8^I~~KyZRth>XRe+8odw*POu+7UM$8q?&57XWf}WA zWAd>!gC7A@Qd9$DL_Q?YCc7c2drQO2*0#&LzcbP=kX_DgvLg3|q}~VrYac9~q_QJE zj89zV`>I(zRf^|vF-_xWvSZj?y;M4g9n2i}fra}Yfa#9$hQDgS3tmJAE6Xyltn4lp zlg6~cug}=R#+QmTx|{aCX+89WPkxZ`@Z+YsyTj>k*=gtPvmD)dC#Q1CpCN1-o0Vv3 z0%wd&wl54DuAYw9ue9usMUJ;v3dcxiskTF))~@{v=ptJl&N;+E*lM z8eUfe;I!Y-?7F)nhGr>J0?+t`Y#yVdWoWoR4W__f+7 z`n>ok&LITvCqqml6pxcpq3h0>?FW8)1=czaD9;~?U;RZsw9cqVz4{TXt8emOy3+&r z0_G~~UpxI>l*esYSC=v_ujAW@C9z^3^&QdTLKy@6GH467Cnz(>tep_XV_uo@|2bQK z7*10wdjI<0N!wKEiCd3$TPcDsSa=Bc9Z|q8;SRjAsprfc)mSwx#Wb)|GTs45gO`|$j#LuY})tC z-%TEwknaj{A$~+qVr=hNSga0|)EVFmMzbXvpkhJYVPr-sq<-sUh*IoaXe8<9mzk%k zmCxJ1UW378f!u<_kJRY*+26|>JZ||S$RmMJMtM?S$BurGO?h+1Mc3S#Q`yb@yn&`X z{yE)f_`s&QrgRBQoXASA0-cPVZe?afOYWmXsOc8p3MRsxiPHxM^}C*A{(G_(!P0Q2 zzij%)FAPiB3a%ByKSMfgtRGtXCu~QPZK39(B6y>>QPT=Vy1zO8| zeumvh3wJb{cyb6v!9qpGw=KnJzl$eZzD-&6cvl1auT%-7`o77)rv1X98FMuD8+Kao zJFn}_yq(pKfQ22$FQy=vP0jv*uz{h)_z`QFVar( zTfH<%w`g%0Kjt;QwBfd~y~#I3IcWX^Q|`;FlKsoZlP*`4C^P;_jsrTPzk&kYjep&h z=NYt}&-mxt;-fEGB^2W}PQ1Lm3kQdBZcRd}Vf}XBF<@c@WV>xJ$!q!5&^!*j1a|mE z8=(vvY)sEYXC|$T{YdpZe!(G@axY%%wUaH@lq)t$S4wG(-DD$AA`xp8Nb4N-&2|Ix zu-5;k2WH$@GOvz~C_E}G9x>?kr5jpC%)AXbAy3p-k2XY-RD2VODnhr- zKWZHML`$*T<9yNy;^z5~oE)zZ;8DL=34sXNEI#r~di}zEzR3L-=*2IXy~^%-8~huf z7WY;D!&?1Wnxc@w)hYBdg~DhKZ(;U|l(*V?ol#o(m}r|7Y?zQ;D-F{uTeTY!w$W^J zaH~-D8B}Kye_6?(1H-24=p=~QKR>j0&r8fsyf7k z;c93A476T39%9woTZZEf+A1Qpg?f=uo8(W2&M_|@QN7*SAw#RYRCwT?+;uo273hFT@Rbr}uq;{d4CpY+v=m;Gt~u_g)UJ@T&L z+Vz@jy$Nv?lMXMxnB+hW&6%(W^TS|Lah3ZtL5i$Gjt2U%cvH<` z^ox!*Z=TTPY45suxd5B14m7Ws@`z^5 z)&IH!1T-;3)}v^AJ;HXKHePd##teFRx^dcBfBR+;E6Vvojd3^Oq2a=}d(0RGq-)rf zMv=TxZ$gQN-EmcfJhs`{>uVc8lU~{&5KHgzl!ts<23@L z3Z&8P61+x5^) zg-mEq0p|7TCjB6?eIVf)ce`UV0f;HuVpw&X)HlS(LzcpYhaJ-NKCL&jN{`MrRU6*w zTIVX$pc`MS3bWz){%+t+No~s2;f#lzwp!ilQKI_w=OIWw>vx^q0#*T~!!dE(s}tp! zz+M0(b9bqpjG$@9#dSDshF~NIvvU2%@A;C73H=ee6?MamN&>Zq`eX2h*GF;CAh%Vu zvEVMh`kx6{q<4YHh0uH8HSzx_lh#*TcxG|d4oiBHNq>}nrgnxq4VNjicO$Mo>)s9N z3LTF~8!03~G`)Y7mMYs`e-EbuhT{|X0%4Q1bqfX)1o2@CT-S0bY-zY?JnC}U?;Ip% z_bSH|^UW!C)q8=eW9^b4NNyrY1y3BAt#S8a!q{VJ?5#g7XI4 zsl2kwo;kh6Z)+Q3WIX|jOmeuj84wnq}Hy8ReyV^~ZvZ#5RASCBI6ft6;vpbS0VW3>4ToL>!qy`_m z&?z4J*tTWL70YOHtvr~f!tebVk^c3ByRUlnKts!P4Z^H>a~32?MIqArlP)3iQ)E7T zEK|ptJ~W^Dd7hTI?q+fLc@1>+u2y-e*!!r{idPfOGj$mA;)Qh0)&?vV-Go_rRT}zI zZ`?%{a$r)MaMyj@`9Q!3DOcbu8s5uml;5LY{&xApfxgK_b0f+p z8{pMR1E7qQ2v23h?|>7n?KZirqD0~(RJ=cC#jcqGyXVM2PZybpqX zu9fYwqWi|{UDaj-Kuv_BB4$nX8IDglxWvaXTp06(&G7JLyba8CI+o!@@Nk71;vn)N z2CH0k$IW8DnJbZh$4`6GftbTxTSvX~g*@qRpqoEP|ew(GyyZr#V9 z$UAT@rni=npz60!Wd|-^7n;PYa20lQf#cqw*OV8wF=}AICH1XZ0K;N1T5>bi{ zJ1Wd=1O?mZPdGchM7QvRUR$|xh?@J($bWlf;sJA2S@c>cdsa%hm4LB@_sa!H*)VSF zRi+P-R(W9@=&Uv=V~+r-;B61M*-*n`exLof@&67{+lzymO0i3I6ybPiulrTZWP|U? z;?&PGOD%`v2@)D1dt#o&P3Ea6#2OO{uSM$lC#~oj&J^dUz>1Ul{oyR*Z6NqH?T7S; zj@AOZ>*%t~s{^OiH)J?RID@Lnd^(*MHSL(S>JuAZN3AHPXH>FpV*JC8}(9?~dP+&8p->u`b8{rdMWgb&F}MC4N26V-8he-=bWZb)zGYUVjt+lLc<`y>^ zbk8|VkI0K=p2$EImekwxWH=2}@qkDQL7Yx+K~7fc4TRHtdhjs+WK@1v(0eToM$|QyvE<=XO}F!w+NV; ze6_Iu&y(HWVbae!2}+Tz<83wV6TV10Jj?h1ePJwWa{lFeOVhrvYj$;RMWmqKgBQd@ z!lJk9?&b@z$gLai72YgAkjZ1_Xx-xlcMRddCJCdCbzW1Hso}J$;>8}M z7|KC?o<{JB%g52<% za>KzU9{o4y-RypB_Cu0-D&3kNFUZohopTk{b7fokZ`scYforjn=8}?enea%-=7hkZ z;)=g)o7>3i4mXPD=DF3ar!9oI#a#FEn&$|GHAusp)9ul}Y~M*=LzI7^VSGdt~Y-lnOV#-F>G1LE%HEBq~@k#)MO;YNhI$@6rBlmqWd_)sa<$WL&fb z`zZv6F^igKr})H?lIxbR2WZ-pJf9?OM55ZnS0`5-Z+ndB^NIYqJykm|-stBXD9WyndRpdC*4P@>n#3uV6Qa zPgNmw$1DatluJySE9&FIk_mc^C7yE|10JZ{_OGf`~or~B8aYjZn4SyyAGSlz24*=Nrr(p`s>V*MNr>g)HB6D5oi<&m0r)Y`;}N;zXQ zTov`5l@ zK9Z4zvlmYl9U0h0W*yGhhx)g;H}FV#TYcrDE*U&XrdSwfDl|g&xC~l$yI)N5-qE!9 zAGElTXM0;^tIl$NcqZCC#~-&e2>DWYv69Z zKANl33&itpVqCX@>}5+^FnLO4m`1l42?&MZ+IR*m`Qoj_5CmA8!@#KwENnR4)Z;R+ zMlEUTy-0%hx8KkYqJUKYH*c}8x1W|8zszgPF5Bxi#c&r93K6~A#YxPOg|vE45pb`c zgeYk}@;9O()ITYE=Io!**2}g6A7~d7Uf0dbg#^F8`8bz!h5kp$LScK-Lfl3tl1>f&+KySJ-ue|!JB`bYkQiGAez-{tBJ=YBF( z2taK0t# zMMI6o!$$B1^;u)uc^-cAt+}!hw}bKtFLEQ2op{Iyw!@-uzTJB|&(7#nU+Qnm&dLgA zpSEJFzy0ryCR^FhdT1i^8riP(R-gEA4Ds&Du82`4aCNl4a*CQY%R+W9w`g{U>&4Z? z?XhsM&JOnp#G1~pLpCbe1eHu~65^8a? zW|$F)CkEX5jpQtoHniYEGk>MajJKW;hsRfI$52ffes|HqUR`1qPk&VS_1xbLyz>o` zDe{pU;@$t}%e!5Txomj>x3&2a^xVdMa1;b)-x^l*}W@qResSdjlQ@bTk~ zOputWDdqdvCb8eqU`!gmb?LbX`um4D&hnNIwS&^`x{C~7Uih5%{`?^LmPIQ!MA=J@ zF+G*Up<-)u^jL$@Sms17vQ3vVXy5}Ea*QquS9xXc8Fm{@*b(GXSmO_G{)o_m;%M_7 zBd}J5vHOCV&*~e$)U}MsC_TGks$GQ4J$W<&@6+3~{3<8<7IM0fF1yMXlG4xpnw3D4 z9L*Ch6x*0kDBg6(_yZ+iVpXMY}hUx+6N*^IW4iD>&FKur$a=#$mc2;gUNrx4jXlL0oyOw)NTw z@Lt&CQ&-V`qL}?tQX5z_8l^dwjMg_=JT(p>IW7k@S`E#SXqxyTMIwFCX~~= z9BFW;n|E1kw&X~{Y3{?pOvqx{ojplt8wyxXBx3*E+1H5dLH zNM7B!`dImQmaMlbYf_mvL`P%&v1NJyPPsfrE)& z-$VWka10dT9CDW7_X%PxIKtxcc<T$4%f0wnQyN+(Zln&eycLO zWeK$DG8f1A{Z_{BYwD^(mM!6e@#P?|4sg=ky3zHe>FKGp>SrR@d52l&dRSlKw$9)p zz74&@y$2n~YJB1b`XzX_+}?imIcIdyy4<@ql{_0^8S3YYlXG)&NogF)x#FhLJ4oxe z>6p^3IMgj)upH@!8b$UuOllK;%5{)$wQGPG@ok%iA%8^E4mxj-NDsoKY_|c)n`Qzv z^&WwaU)sk@WJ{^M03?CBE3I-NK3xgsT;7w3Gw2=I_Q$yO6?%lbw1HLzh|@x_Ju=b$pIf+#7*}>zcW$aBk>X_rZa-Kb`;stRJk8B!E*p0KnYq{Dr`C$qm3 zZ4=15=7G6q2MCnb=Bbx#AQAupE*fY|TFn8{NFi`x!6>5Uck=M+&V{p;_j4UFKXw8N z*&DkFTAGP!bW8V5brCoXNS~fae;$0ScB1Q9sce6?-SByPL*{E!{qbCd_rSLuM)K}| z*?>)Z^T}4D`(M6elnfUb?z$;ao)h@%ncx^=0`EvV!tYYL*EO*$Jh%2lvQIeg6EH|pC%3RnjrJC2Iu zXC3*gqU+kO+N|*$Fzeecx7>0GuF$>5%oQZ_$SpZe+nw?LY?oK3$NVzrbG5GOa-IF1 z9`x)Q_^bP^!gN4Run{NqCsv-DKUuF|en$T;w5((r8e7tiL%j6ynmC}n zsjq)KzS!w3oNMbQ_1-h%u4aJgzdwI@es%kuO;s?>(Qu%y{r*G_%qnx>%3AW8BKV5b z$8bMs__AMAt?U~nEzvVgxT34>$8b!`mhb}_zNT3s26hoU(-SSA`5Xa5(tj=LKM0c6 zLe@el$P?8cRn>JK5^jE1Td`#`Q}*E>x%XHl0HA;4)dyD+=)QeH@9ybfzI=L_e$m0( zuK@e{@nzGuDAOn>b@c`}{NitWLV);c)W2@r%R2R9Dg<5&AHT(_geB6kTqfp0Dy%hj zJ$z6ux%&z4zU{iLe#v_vIr-&?+?L$Ze@ZffFxV%TV-3A~^~G*8_s=6UB}o`Le@M)t)=9> zWZ7UYSx;j0eGPNWi4q9L1yR4_~l4v}S5+na*@+vm<#yPPw<TM5IEqCb1`)1?vts z#(&9x{{72#Lz{iQ{`O9n>WK(nUd&&%nt*kCn8p3@ea;!Ejq-Q~lKClDtj;#kh}%{B z<(!!GFKQIUNBw2>jjyx5()O1on03_(odB$3u;{#`LwAK6RKoYqj%dqPqR+1~XDB#E z?rJux@rc_HGNb*M{jlg3*vHGTDb!%Hl|lnuoKx+TOUl%3fvAS0cM!a~_YL5$l%?d@ z9b`-XebtOfqfMpIgkS#Codo6|KMbsRGymG}%AQKQS+=CBm4~K7R-q&MYGqA=m+}@p zL#(L2hM3@Ob+;U6{+Er`jOR^P)XL(3%3tdn7k&#e;Y3dYWC8Oej5F$y57dH!qO~9VeMJ-mdMEFv`$zSmEzvySZ9AowJBSmCO-rEtQ zGjyixXwR;Eq)W$Yce(`}Jesu7Qj&D?dNuzHQao>@R_^^?$#rw{!C`ij?4fc}TCG8@ zDzo_VO*NAaXDLXh(_LE9eGC354AOmyOY{KcXW7aGWqlrNW(NL5Mr|uSwvo}Gzt~ZUEwuXnyIb5TX1*gm zGqDrpH)U94zgB;68&YG-SdIQ{%Zsvp+Db2nP|R#{pu#I+4_)M3 zwXrA`;;;+DI>?jaK+os=?vC90kT5G*S#-B#qhiXfH!{FLs>HJw#)|bSm;KtRuFxyI zm?K1**d}rxEAh}ExqHu%uJhg;`6wldR__8@H;F4*^UDR>Duph+OSi>H`J!Py0jIjih; zJf#!GlBds}g;oQ#7ypRkTg~a|-+|aC`2X5ptpY4ohnBm>7VXl|w!NnWFztXr-B@0a zP#X`Ry9h+@pQ8S)qlpU3ss^74IS=$Ial%WM}rC`sFx%i2< z-~H~TRsrCBY{3qIiiIz1`V#{uKr;xi_$&U*M3yw=+Jco*$F}m`gmd|K0iqRH^{$oG1_@=g;_ZNPD2y4w zf{a-5av-uFHC_Umn3b0p=S}u9#Gi#W7{bJ49MTpcOLO~T4Gm*+wokaGawPII!g6e8 zg;n~6<(Mez*Gyu6GX>9|CwXZJJHd9_nem<1#plzS)?~Eh8}p@d9kUiMpy}c}Oz~*C z&;cf5Bowbd-vc!3XpRKquIQlA1b|8uI;1YIeSgfs(m)$mwTa{`I!enZ>?pZ>ySbVq zIiZs0IVQ7-5@={?@H@o=V?_h|1Yk*`(PJ--+|XnLEegiVBwr_5-z?j;3FD^T18aq; z!G~BZ(I>S%=Yd|1wt3PnThGdj4Z=*_5H}}Zo=TSj`p;$3R70r@MdBQMl-=C%~7iHa1s7i zdk5P052GDsam#q#VGI7Ga!o)uK#~W&N{lN6P z6f(X~#dDjA*QALPrR>w?>D@x$RgKoLUZ+=mWsW*!Ew=eu06sO17BsrhC~Vd72hcY` z7I)t=!U6%4IsyO0o0Rd)zbjp{02>U{dV%A96D>(KFhdP!iEJwtUT(}ionKUv#hu`T zV_7V%u20%xArHN^w)fv>nCS25-TM#VYmDW+#_$fp#iSPAvALcG$;BJqYChZys9hv2 zeWLz|d8jrJxcHmZXsij@pMV_O!>9n;9?r^n&3<)0bof&18;f8Rs$A|D?iw5rzfQm&G+dH+|GW7f=!tPRPUmS`^INUMacF zGdiJ&HduAv96td2*ark6w8j)U{G!V#S-x2dmJN#WD@0^?y5cXxMkY<{gEHY-x2^pX zEAub8QjtXIno$|V=jNIiJ(CgJo`<#{<*kkRMw;!&ZNVKLsY!SI)=IpMzPwEv8?zuC1*m#>-v?GBlta7@*T#Sr|}1Wx*=4h z(5By|^q$nlPM?r9PNl~n=hur&!KpPf2A8(=%`$+88BcVRfI!_f@f6k{LuB<{n=;?iLt7wlR-lWNlDm&>6gtZW zjAv34hZCnD@vPnCWPqF`>p%bn<5VWdu_Yp`bqAVOZ-d*qNB?klWGskEVun~P=TVIw9jd=?c3+yT3sb8?6bagJ9{5?L0uljDUG1a z#oL2|>7yTk3jAj@r?UA)k`O%o-Lo)+PMTtcCrmaPR0Uoh2^|EJZX-`(}+>S_o z^!(e~!?R|{^)QKiqUg5^%uNvgq=c-4-G+9FE%?`l5&G~ryk-H4w+VxL;-U5r9XK#jlu2u_44Jvtu zH}Z~{TXy(!0GWn>9RE+zc|Wqb{%^ePX;1gCYj)VNTD4bC2O5f6F+=SUq4wr{T2##% ziP|+HNJ5c8BD7X(R}h3mjZh;}6gAH`-@oAb;klpte(v{mU9T(8GW9;fG^Vj~6N}`F z?m(y%)7NKedNBt|4)_HzG?x^ndTrRH!j!NS;cP~x_?Mcz)`SiKzT25qt9*Et(hn6M zyn`dANV$J_3f8K2fl!K#Ms{OxJjXK&gJ&zz1&+f76O;|LCX(}$1)*4K@EUcfy-JAlReh8lu<{m9go6pr7P?c2adx0cr=u^EXx$!s1Mlf( zHGsyhTkE?`(}ss5%RN%zPBZ+Mg)e|IgzAJIWGeVJp$sS6En&pQz4qe%zp+^>R1D~|X(O6kdulaZL!F$%9V7{j6)n$S`LR%v# z#;|76lLAn-O+cyPbq)?M7-rR2WLdAy@=6Yi>os(;Pt6B+bD-0aa&-@uju=WdP#rkWV(>^bw6>K3yaK@A#y5R8TY8+4i6V@p#j<}JYcs9-rejV)Bj zc+&tBijCMab}M(_4=?O%w#D>)y=#J7N)k}G?W)uLFJQgYHM{!XOLJvr=Y(q`>;nTL zt9@zl+);>li6a&&^CKPTP=GGZHa%<`b|N%Ih3>U**58tCr&jkXAy9_wkZU~l$?boS zNG0cw*OPA+XZ2X!0aupd6vqDj*gBjJ=|L~HCdqufnyBUy$(xP=)<4+3Mh z12DL!3l@!M_?t59%!|K0T;V54B=BvYE_&JO(D&iFzI2c4%%iK7^VQwW`m>d8Y86#9 zCmK1@zaA>jRRKzu)}-}m`|r@EeRmH_@Xedrnh}-hLAGsI(0AT{TRmI;LVQ2zQI_z1 z)F(|qBfnKK5Gj50E1XK2wV_dQxIdU!I@(KJl22m|0uG&k=!%{gL+7>bxQWYt1Jpgg z-~GxxMP^$dzghCLAvBZx`00>3^z3cGp;KY5t><*Ckhi^x}G=EuT$bjVRSh3M%+njl)w-2^(CcW zShBXCcUUI{)wO! zq04lGzJA`jn*7gB+irQ>==s%!zW(8#FdKmNncl5!Q2H~DKMrUb81wy24iJN;ksLN) zZ1=jSG60-rEY1{!-Y*D?%QQa9D`t5w+4&M-(@l;(MC*43K70!;@JC8HWG6EPH7U1S z9oHy-$;k#?4Vqh{cBx;&-g)GkC%>#<-!uy29Or$kuNAATaUOK!*=%dW= z+X$FLBfZ`yWQhav&Q)}BPiL!Vy)>8V<-ns}EV%m5&@Z31u%ach*x0yK1^z6zrb z5mB_7j%i2!hJfpb#&*3IR|o!Ty~F!#@k1eCN(5D7P*n8;;Yo3T5J_|&3Y}SPJ>cu4 zoN&jZYJ)-cXHT=ku^0|U?DDHDhdSi-Z|-4z5JDTp*(+qBwdyc`f_>EZ2}!K>cg z+Wa2TRpPE7j1uJbPBlt&ynl!c1~N4-H}SRpniTQXMPD$mcp zdk|Ia6)=P9!uW0$4-K3IZp{O}eJna}U-K3@_^n1Y8b}jH`4+P)82_D;lbfWZ`-W%x z3N*H2`o>G`6geXDEV(}7GqopT0gsJN<+wdO+VTWno|bm8b>g|rsBK8J37fgnb;@Yj zM#;KH>($%F)HU7`JauH&dc@dd1H+b?7Z+;VN==1fb4X4#K6ONJ2vMj_Y<$Y|QTL`oU`p3|oD{MX8`i|9^6shGF4N2$7z2v9sO$WG~4U~PS)E2oEi-L6;p|fCKc98}kPWbcRrh{f* zUgTpV1i;^@Fr9)Uf@9+45X;dYjDmKzkb*`NCRliTddZ+O;)FVa4DbjzH&9mZGA^#b zV_(@+`9BvA*oIpHm8MY%Z0%9j54)IpzCZsO??k4MO3hf2$2r9Y(jV9XixfT*OO@?# zTs3h<(8qBj2R=B$nsA%D@!I98h)SNz^$J-o4b4^q&;AB6Qywf?!v1m3jJu|TJvGr_ znk2w?PGI<=r43oL8AlyzyisxLNFymm!V+n2^+KCg09Q*Zz$}Cs6TM% z67|elP;RVE&Mf%+>{pk?eZg$L$z)Ze%CBFLYtu}dn4ztx&?xnACI(a9@I@=f zHo3(C4%*{xwAp4HhVI}7>i<03sg}muiW6Jj_Pfc?t7cQCTnx-)%Z|r8&zw%1xg98c zgs`K-Tch&p)M*mA4zHIA3YLlC1b~k=E_#*SRv=b7{t8wOdnVJ15r#sP$o|AOvZbo) zCU~GDLPuZrE_63T>L!VQPlIZHJ$k6^_yB;0fDOZ7CKnOg(I7Adm}3T9rgebIZi&$#PKA|2<-txYGS)&f>MT%Fr9E)I8KJ>*WNA@;4{76%@7?<%4`S>jd|1 zfK=00!qxUZO=Fi7R_i0rrPGT7O)_yBxRwv+-v0nVx1FQ?Gm9icC>Tz6kNM+k=A^eO zR@pi0*ruNaI}>j3+C&6z<(zc%V^gIg1M=Ug@8+K}&k8=(DenD6v~WZQDw z`SWjJ7u8k`fvSV%KM$QKq@XEZDsgq>vm>N{6#06hOYG+8f^)knwGbJ#Q8#sHWCa2^`_Hj_cr`pz1vi$RB%J>(zCw{sds&X2}Hfc6|k zS@!I_sAknxC$6XHPU3=wl7y*bir~lh{2s9wEc{uI_?3RFoOvd|(l|>}0^_Avvs%y; zy%RkhflELo+pE>l>u{qcb(H;sH59Bx6{B{MD(rCT+LVY6W#}X(SostyF#j$?w6(dz zqAHj7@q3LrFGR+h`;(?zh9l7vT=)$u$Z{PE;<#VWB^i@UFum$R8cYonomAWI`x ztxW9Jq&E=Qyy!X-Ng7d-eRwb3!|&`r_QN$(Gw4!Z!W+|~$O!AJd>z=NbK6qh78+i# zr7xe~i}pL(#taFDR2Xs@g<1yu05!E`_6<(k?AethYFYc5$E@fhNCCg5<0VHucD>j1 zWJc%3hellHawWgyUQV8KZt5D@A5`Ri!8hfqAf}e}$-j^4lhHwRVvsLV+S`GZGm99H z#WovAzmuQ$9RHo6dwKFX5Pv*f7n~F3tc$-d`KLI5*S26}-rK)GPPqWwrHv`{Rc1tn z14NJTmP-{+DFHO|{BT0L-rcGdhpU1^+9#og>Gxi$m zF(_+nHDB*u49Aap5?b+ExqtpwIjqKh0J6lZ!=!MHkPE3#1@i0}rAsP`>vvwZlxqryfQk z{ogsS@2{10%k%k$CE9N3QlM%Rpq9vNaCjShoY3#7bYpPYsOj z{T8#bn2b)ww3!PReVpO(;p=C~8If|ZE}B7o3WtsDk*XDht#<8DEuO~3knwd&f&bpt zi2p?VVPp<)LG+r$ea9IeE?~=R`A_U@8+`*Q{uF5XZ9hCnEh|4i<4iW4!b~p%ytl!% zNH9Gh2vi37;nUz&m0G70+C}nM5onJ#Y&gpJP3Q=2Ix_f$eN@q`#vjzob+LT(Bk__% zq2Ken;lK(|OaTyK5q zePq}hV-xrq#tO;5&G@M~iSX7MPs|?e`3ZmiQ>{~UlJF)t?nLlqx?S1dPd;%5#O59H z3Ay@Ph>&Hos~KgWLjUgx?n|@YEL3~EHtMh~UBtLTjhVD;3F5T!WCz5-p^>=o5#MA5 zh2NN~EOS*zZ_%y$81&qj(z;^q)>iLj18WI}&PR8y=NIpI{Ak)TRsFP;Xw+C}5haDj zjQ?bgcTXLVSOOf@z5dKSEPL0n<&H$Ddnz#7Tl4^5vXC%h=>oJFIrAZ`);>=7R{%-cGBJaL?pm1{{ zI24GTh?|!9EeE0LWrT6=&Z9E}&$7oSb?c}G!a|one6$re&cCewZ7Wj3V{)-6*y4)? zBC?lA@psIIlHwoWd;KsWtsArVg-)hqzGf@n$6<_O)ja)n1iIdbpQ!S=GuV#>@pF^k zOn2RiXACDr+uF^0pJKXaJlSJPX^e1NK)hXQjTEgG`engvPJeZUXC71`cHg-}Uf&0( zW%7g`)%!>q>6EfY1&!m;h5-m;$v;GIwqn+jZCdcaiigYvDb5TP^EBvLdZV-2+&tVG zT={y?(jp?+q<7m%Rt`M1vP4wh_U-+B3Ab3?b07E>2I*~@YELB?>no^EmOzZX7n`4y zJKOI!Zh#+8m00s=>zx$?ca3&zEMEq63!R!44wmtqK4-}T7?^A>rkpIU7;rOv0KqAN95)ukpr9>7ORBEELS4QbJ~Z3g!CUDO3)LnTZAk*eVjYtLG5LC*cEpP^L@WBFJPX~@u03? z3z%$=O^^?V0134}gnBhjw2dr;+~+~|6~uBkg0|O`z9>M0yxo3neEc74eKDfH@o8<{ ztQTA!D3k9Y6|ZUR{!R0|Ofar<6A-d2r}{9IE>*BslHRtv<z8C?8C57iukRoR?Z* zcy@eYxCDXnn-uhvyU=C%ogL*So-NM(96tI8(DTS+TPNYE58=#do=Mr_7# zuRvDwa_o^1M|S5#bq+QpFK%Mo0leD|h7siY=hn2pc_bXao?Cp}W1Qz;$Gm-1XMd{d z-ekO@GT((O;t$mX>_5m1IgRew1ep*HTkM>TzZk8o5Wz6k#-QJGH*+JarR?}ER&XU5 zOguUc)7+lBB}->v#PR9ReMJM1sRJ2e;>u>yG^sRk&BVvp68Go)`hE`-HCpd7orZMk zw1ax580`7*@V0^}#loO;S4j|`xak3@&bxA<-Xt_&P(REbCt3~N&~L?mqJKsOBs`6t zXoYL?)xOFcn-{e<{|UF!KIdwME`&&U!&bX3lhQjum&+&H!U|g*EwW`BG{>4 z#X7M~80n!a)Ip^tPZ@u4{h^N@P5EM=%W{u2iU<5N+c**LOK){vKKmwe;fuM=Id#o$ zl%%v*Y{*1oBcwK9F}f*)dEVm2>#&jLZS}Z49QrseycN=x7c5a9>QmR91h=+^kcO27 znR7AiIN=Xtx#mm%oQJPI5P9|)+WMp@_Ghy(JpjJ3IziiA@oG2rj{GgDg#%R60J2qR z9EZ_(oj8H{ZCuqlUI#sTI_qVt^Hjn8k$mGcx%RkZuKbji?&QDUT!Vs6aSd)KKHUnJ z8`RoLlmu{8HnyxHRPi^&>UZPM;$2YuRX~VDZBLb$B`7dBt$3nTuCWbH-}C*MuDBy{ z#-SgjvB536uCT!hy(xNE`|KOmMK^hK<+KOSN=Y**jsNnE%D6IB2ZaJ(r@>QfK;**k zv?vIsoi(lI`f+aX66e3oSYz6$fWbmgXnRvPfZ9$~htc#$U$WKC$UswX7*6#PGVJ2K z?M@=qbx{0+Www8j;%q_wm4zvXI&})1G009Syl9%XF`@pkw#Niyo{~Z&MWI&0*%H*0 zgSO$y?2d^STj0;l?dd7{5*Ao~p$zJk5@_w<-!{F^bzW zDC@fmP{pEfW>}N&1ewCUx6G-|U7WI&%-yfEd zyijY^0kHPzD4L0kEIXpH%4cIm55Np&YR_ZO5PXJA-p%{1$M-0FuQuKMQq*~AbNT;B zhZ#rN_C-W?)WT$f>T0A)P$BC$I(s>+d|~iS4Tw8rC)aYkqM6?q^yBUcBd+eN`wzr zmQ&>H#G8^XiWhHmcUMQod=c^R^!|LmqPjn_@lKBK7FwuT)-3xHC*<*WCDMDE0q+|Q zU!`)uR#QkPuFgZFY?8eO(noGR&!&R4r>y$x`I$*$jPr3e@7BiEBIUB}Hy`*_WDh6Z zfQ5sRcL)jUxz-f3`}7H+DX1ez2(t``u+L=z>%-@=A=VXSTvGtV?zpHd6LkUiI47Zy zpfgt+{-<&Y!9y^6w*`9Z z$**15oVEZsGB$K}}#BTjhPgS$Ub1+BXB-vUl6woVy~=TSK@+ zA#%Ehi`DikeDBi$G=w17cQ$yqrw4awT-r3ZdemQUM`NnD*RI8AFKmO-USQDu?N`N< zMXifqm`OaGhU(9lx|!H${_;5D#uLndI`C*O^9MP*Y6OWY_I#+LHpa%{nTQk zjdR-gvVy)_;;!Ad^_+eUi1CO^0E1PDMp*S<)!v@*)s?6hl<4&=p9?tpOS#F8Qj_w}Dky97b4f%>zNy-r6}4 z8E4sBh9m7)3Ci<=o{f1{#*&c=Aijt><245vr;#~JZt&FL8@V%ERl|jhFJ2)HTj{>C zk`ge4qMacl1HYJqBiif5;A0q0(tnwczOb&I(hfE#9LH6qI+u2?)n=B>{7E%w$xtic z9ABo}SHc>nAAg@QJeBdF`;pdyopP0h(%0;cDSDjCDPZwJ|qX_s8=wd}KJBcT4M^J4xM3 z**^wzcs@;E>E+>oO|sQrW_!55bYv}}3SM#}4MKBkts9XSWK|`0!yEB?w1@L!s}*q1 z7rsVme(eQDyY}|9D(qSSY!q(LGB0}hsj`EkZ-HK^AeX*`{lHg4V%H|$`$skCE7^uJ zY09oluLtKq?>gsVo`>4HATO$$==TGSKrs`06@wnp-h`1AuU29k;$2Zq?~9;iJ6US7Gy&G97dG}y8?spiv$ji*cJL9Q_aIdt#IAel;q2ou|0OeYQ z>^Mr8(z9B1b-V^r(}%7Qjq6JbG0`JTK;>U=KcaZO>21s2vw1m}kGnjbT0O~Py5oSD zAGZHW+)cJRb!P7I`vwam*`Cl^JKuF?$U(2ft^;EeS67$AT!Gp9k63wkhu~ydzJkXW zqGt!gr;t*UD{;3*-{6ZYe(qYxn>LtuR7qmHKV8mVdmFFHE9({XO4)ho)k&g=%|>M| z6Qq-83LQi#lryNf35SEGJT5@at4v%GF`D9|I-Lg!&A(*b4YL$a|UHiC%Y6tjB!Z%j#2Q}Va2TdDzE?zc+;8qc$oPv42pnyjyF^z;4T zx?&_dFV|7%gGEXeA#t!#QmnQTcB6<8VKi35FfSf$GU{cIZ}oF3j5`@463wS?`Mokl zKjQitB#~eFm%E=N<6JvzTd;WCMoviXK?`PuiU0wPUiq7OQjZAsU>}cI6@RMlK<&MB z06XH?KJxIQs6V)bGAzqHnOJw(f4^48jh$;hVVYj)T z$jIGx{o96XL(joK?IZox#)+!{RR6h?7~*D6sk(|Yk%i{(TRpIg%`MplwG7LEs*ab4 zWR)d{6_40i=qQ6_(B%dBwz`U5Pu)uR_HOt6K%D^R&HQz>cU${@rmu~sz>OMxpcQG< zq!@Qd7M>Us8L5eCEog&Gn|flXy>@E9r}jv=M5;>a!yD5W+(7dG?!sOY{}+)^_nXF> zlQ8V7 zLv-$9Gq93GLFeDk3#%u~RUTNE7M4rgkh`l%K3neFEMc)^1FR3~ zuV&)LZebHIwNX?RXW7gsAIl>6?}d=|zqVVq+QcIA`_DV`tS`-~3XbP=bRRMX=VZ+o z2-6o%oE(i$9~*Q$8(*?|*0EL#ovmHO76m_(OjlG7}2^e|a#Mzy!auhFjf-oTNRB4kw|S_!|KNgrH{UDLBD7!d z{U-wtr_&5OwWSs>8|!{47?qCu@6>DJ(FvCUjNMN6m~JI2fEcOijlI-NGq0WVQ7q7860Pye{J6 z=~A38IDLmkG2l6!Qg*wqM`2;{MHP6sfQFSPPhoQ?G^IZtvDh7l{6Q6(IkfGVy4DWc z*(UENKobAD)X-%e)Gv~my*M`&{uMWT<&x|vXkQ-&=C=}T1uG=z3ov&}GUH1oOs4Ku zcMsFynKrTVusna3!+{5nPMc-i@BiI+!LOw15m%k_iTljg^OCj#*5B>~CDj`7GGlMS z>VFMjW2_O?CE0m>5q4JVR`iiN@*7mrbO#IVtQ_?kNl5<1gJ`tMZOmRa#< z)^^4D^~E1bGm`lJJ)5Q2)TF6wQKFaKC{R5XL}Ej=LSm1h?tO{Y@t$Z52YqK+^T>%2 z%fg_&Y4m|rRGX{>qtGfxJSpc5_gpwPu;c5t`ry_tgO$Wkjb8ds3b`0huE!nKl{)w> z!ZfToFJ8ng2)j|0TVOLN}0Z%G^sB6rIw)P`lQsJR2SwtA57i)4u;@!CWG? zY#s2G%jg;gGm!0nzf|I5<@|0+`c9CI_h{FV&|q`8(tNV2+4Y10ahSn_6r@FMPY1?Z zyY1>SK)N@c&|_chp$0Nx`LWBT;g2*jIdQ_m}ktD&$ROwr@hF1 zz zJG<#C^f0mpsP7ExF!u@dVy)k5TJA{xZpZLtXpAl535f;KK&-K`kH=y5Wr+4IEVwWE z37os?W#Yd+*UrU5<59NyQNds5mv8ocFF=~^+Di_U4N6j2;5`!OnL56KVr~|w8q*A+ z!W#Pub6<-^Qw!J(LLvvxsf(8k?RPr-5&u7xX-!3y_|q{jHgmrdzscuxMTwRA+%`O2 z5NWY0x8S#VYW=4~%k*KZI3Hhn+^zmkBfIaGG*Ho7FPLfB>4hZItH@Zktb$+hF}=ns zV&M6l5#A+_xoTsCtuZyxMdu{U)7ca`%39(7CYXQxhDy~0>&H->TrftXInSY$^c-WlsgPNp2G?>IjH`Qv_Qpib8Dphrp?pqhPC z^}LX^WVEJ!K&*4O;(0Z4UGdyyj;&Qa=`aD}PH2z)P#$Z#PXu`LZk!or{@>e%2j4AiB@75oB@j_Lh zZb013^kz)xree+fRds`mA(||8ZgITwgZ)5AZy49L!iHt{pKXY9y zQJ9NO5hQC(qVMfxu$VBR?5KJ~TASXNjRS%%ObhTTu! zO9Aq)i%OdQG_linVnWsqKo+@FVj>?<4VF>yW_m zKehc`T8rxcopK*#LHQ3(D8|AlwG=z)=8~}{NmOU5?T>d$_^g*nF{FLfEzQ#8qK7bx zP?_b3D^5~;uycu>^LLV~+q-XW2X#A}C{TJ!UH<*`-zn{$-q9Y9KWSpzA;*<#R!AX> zP;vHSu08gk`lc%RWGKVwdi>`0mlE-@obEP>UnfX(f1nEg3i?U7;K|VBf2V$~1o~9l zO?SyxG|TgimxG#f)*0@mFWUQ`q~E()iwpcPwXoJx$u^m5A;YvE(!0ML>WVAa6BPGw zWHuVvF-fxx{kOyQ*JS8TBtTW1cU9l8fO8v?({pI^Y?BPZDB2$`*39P&BSQMh2iQ^KiN1N8dm0TifXk`d|vi zc65bz(@OXBfM_6 z9JTXN%UCXX^?jPez5{hdg|ap<@5%VHHm6q=Q1RyE#($?SKz6gtB!qBqB!(W5xJ1Nf ztF)CUU0b>F^XW>S`YkU4-Z$B+}jkKR;U-C0j4kJRcjLLwAG{+ zyLl}OD$l*D^)Tf~zk2rF-FN7E6(y&Ch-3S#CYdXK$Tv9w8ncH8MYEl;|vj#Nb17X5wBJarH7 zScQyJ86RJ`X@ZHWk=tPTKe6l(cZ0UPMZEDT%-qtWK(2MiaKnv!Lc`Hwu9v- zBrO(;?JQs#>YOx&iv-s6S30NruhA*G^u-_TU6Vgq_1_9g(^}1b)Sq3EH2DmlpTbR7 zCwy$p>U5RNkb#E1A*wZV;kTJpr|1WNgTEZvq^B`6YT!S9c8|WOPqD09?RY3~sQS=D z^?aj3KQNT%l=QUt3v z%)}Y0g@A>RUEsMQ;!;KR)RbL!fQ#(v2=?Ot8x?+C{Z9MHUS%aOs|l&KSYV3A&bBx7!oWBiQMK)M%h z*za^_lP@tZr4p>vt@n51s5$@5I;=66r^i?Vp#z7Y&QI;W@H#D%v_RULo! z=a~iF2yRy|1=peHqYN@P%XGx&NEn`fnl=N{Rl%Np2NU+qZO{i_;si#$T3al4i>1ve zDx?4bxo>>H6yfBBv?Xhs?Wfl3FNU}Lh^jt6yyu&qLk&=xF28a=*~W-evSf~fc?90o z@YhRyTr-fR0q*-s!*r@_Tde_;y>q`pWUY}hMi1?}U6FiB(FN&teF>HG=xLx~XtbDf z@O-=Astr-)p#H6%nA5FmJy|~CHWPZ1n+6yONZ^wG@{I36S@sDi|N6n!r)LTJlB6pN z9`e(|1+FrnuEnW%-LnfKAn^wgjL?BuKqsZlv|ef3kcNoHdt^S+xt*OtCV$dvqT%L-7&J-&?#Rd;`3t=FwvnWtpDze zd|m-H5#o^wG2jvZ5{&8FRCH5gC2~cL2Va@yvvvuZxm#foveJWoW$R;^QdQ)v5*Wk` zaT9bhPw74V1+EuI3Hi=OSfL%kAD((Gj7=V zdh7Y}7+va)Ga*8FULX;@)Ve7}D35q^!cDg67C1=Rk3u9N<7*rob%*i*Pk2}OO0$U} zrqDaYtT&|ClfQ14CG1A@siHfPc$iCZVeo}B+ z9m=IbW1_X_AUwRl`YfxQ#oLkAdq6;XY1cCgwTI)^hoY>JQ zgMp10yJ#PmtGhWh|F8mrvjbH2k+11YTiES^tN}%TaWnag6?QJ$9&StD#KlYkmvTCL zQafE?c7P@$WrVD(CT+wN*xih%#JEowv}D;{;z9M>7fq0mlKQct)3Fv&KIQAh>oM&M z&?m;u++f^z9V!|U2yx@ZOGO(J6dqh}x_sefiLj^|^}^kjob_LyPkh4F&-I>e*B%t( zxd?hub7|bC@6xp*_uM-yy>6Kr8A@6!o{Jkpu3^4x?_|_f%1!OdPS;&eRen zJF(Z&vhOC`=E0kHht;ppG0~;tDSgrMI!INsx_aLJHLl17c$hv)bgVttqOApYx9UH9 z2Tn{xi(M(`;r7GePJN%2DtGr(3x5F&_iKu+^2`#)r9_@>i$e9|&NM}|z^|*ku?1-O z5hJ3^GZm${<3_nIP7!-G^lYG-b%j&2^sJxeC1+ImfS>`oEmBioZDlm2F%OrW#}?;< zsA1{S!NVB{^b@b$<`7{8WAn(k{;0c==Fh{L#4mWg9x`uoPjP=C=$7PM80@d_l%^p2 zQufQS{mq(|UQqd39~U_%H79Tn%<@Dp5Fu`L z$4E^mf15<1O^#v8LPvpnpiTieA)l{@JMFFWA!F0w0ian)=gQ?v@ue!6D%~jLY z@D19&UDrW82bO*jDqpV{>dd`zAf0q1%$ql|CZylpQ?FK5hO5XE4MnKJYT(=@}K;HDHo|(nuF3s6g`<11Qoev>o-e5 zc^f&YdoAHh<6lC&8j&eQa53!tn?`&UrbxnsP-j}OP9E(?Fzr~fPN73fY!_1I#uJM>RQMQ$R#kX#b_$YGianN*mz!J1WUFk9n3`QOt8oxs z%P((ie(+onI_7BCRV8s5$MVEq0SQPC**?83=z7XMWfA$_byKC-XcB2;xm5J&_pGX% z_F*64t2DW;yeQPZ(#`l@OrK*0+jd*pqiN4Sn@ao1j^08Q{T$sP^Iclu@_9h(zWi03 zq1GhAOp9!WPsR1e^OoCu*#CE?LTcp7(|_*UJ~@~CWjv)qwGW$GBfG6nc4t=AavGrP zR_V}wYdMz&kr6bL<>l{SuqrE&r&qVPGm1G8^igYH`0tb!ge=g_D);3v`R^2uLn<(| z-$#*K*5m`%WNP8 zxMKtWji_Z6$$Dr+Dq&p2WM>O5PIZ)!zSM;a)TR4w9NJo$2@UHAsO#Oqjw^W(o+`I; z>)(KLs58&|VhV-xmo0Ay1U-G*r^qi6G#9H84;^1d$?Hp7!VCUH`bY}1E^u%XBU5s- z^B`@0bwC($$M<)hE?WSV07tbe!4BxsXgB29I4QfTR%5Ux`!1I3MfVb)em-~+zV)*0 z6+s?Tn9S@l@A?*og4?r-bz)bLVo^mHnj9S(Fvyl*A|?>O$r(nl#(krExoZa3jHmi| zvR{E~AHLgwp?6m6%-j^o;qpCO8rd@au|fTnZB^dF+af;!ppHOsYtc|#xraSQ3%W&n5oS|tfOSy!KlmN%l!wK+x5{!O zN_VpdRkjfm(;*I*qqVK>TnXS?RL=`CyKpKp^A&vib!V^P<8^9{Ww28xjiDT~xeK_L zvKEHMj_gH8Pxw0qzR5+{ZFy5ttsQ4_V)^RoCQNkYEBzy)zM3?*wv={hVG^;go&?Rh zZ!675Q(@v69p0>p_9i@xRZOp2_#}tBb0r9aC(G-JB`jEA93NN6s1;bz#}otvon!aO z7Y4HV*M|x0N`5WqpV^o*^bS#Jd>+>BHG2DXAx0+pDvCpSyK9Eg6zpV#_-)KU4;s8a-!f!rbG?N z)Ny1FTxbl&g&7S_K}YrFK=ytF%i|2~L2hkGhpT|ic5i@>@Tp+ko!=IWn=UhFu<2(p zz3I74f1_)ZeBNdV7x1UekoPs76l|E~qnhdKV*$|;fZ?eGbuCt%Xzi2Aejs z4nOnAP|f`MFTAg$3d`)hg*?VToLRGey5T{cUuWrNPKi9Rb^03?%5lI=WQn4iQT=~1NS6E8;n5Ejv1FlsPFgmE6TN- zo3EFM%U1Ix?N|5V@BEm3g+B{?jV>W^A*(L)8?*9dn)CyPtaHCdT^&_8tc@4^H}$_$ zW}6`d;_+hBlW-T&1Uv{{CiXM6P}g8(oPGO-zCXVPt9)w_{>;?*y5nTuAMd#uv#a^r z!QhJYMBt;jW#D_cZ# z*mcjP3(sVpNT{V{2)+hhQ2ZK5W9ExG3>6G|&iF2nQ`@DRF=7OGW_Vl?b#0`u_hogD z%3R(T>{w1wOHnp;0!|F0o;Zk#<;;<8e#|cgbFN2PjeXm|xbNStaC%AZPkr&{nwGfZ zVeOp{GLU~#AEG>Cz@G>l`#RA*RK64x-K`onKOIBZKvWgzA{H0!U&DB;|N3BmNml?c z9>OUgatP2~Lz^b`8{;!vggH2Zhau=Z8;2`FfdVBG%@Q&}p#P)jJRI3j-!|Oy>)xgI z=(J~Ruj=VA5=F%pp|*(FJLowrTDwA`cI^?N$RH7FwxXyJDv_uWwPJ7Te7=9;ectzd z?)$o)-GCRiIFx1%^;QD?V%!{vxTIG0EL;9I2}!PJxH7ium9W;kUV~*NM0WjQf$aV~ z2|{HTPci=o`^QvCrX=6~4d4z{|F5gU-CuXR1W`q@xQ}l$#q%f;O%B}kW*C{e++e)K z%&ID_oEQ6N$#VzpD|btVqH$Ocfa3{Zh(;|$8y=z(rrfb0_TmFr%>QAQ*_}5M7iwUc8uJ&5s%Ty5{v-aJ0k;|-pTN2>)eXRA%u;qEL&S) z7{7cx_?>@UruIMAAsb&0FTc^^DvoEe2RA2XJxt%_=_5O37kPXL6b zM6H-&sVnD`Br|6lP9BY$b$nrmcqxNnY^&E& zxxES({qK~bwoT-u=H^}35G!|AB~zjBFolY`@RB$6Wa(F51D)RL{liOb{+vIm$l9&0 z4gHQKS%W#pRwfEDO@%!YISCCY%G}|>7G*ffw;5_Izn*+gjr9DnoYm@;`bm{)euW178&?`Lui^p{a>A!lcGBi{y!!BKJ1d;hS~_@PIJ=VMk8GYTVzi1m4=uAQDLcba zvkXOjmOb$A=T9EQ?BDwvEZbzOGb+ajcl=Q8MSg!aS5+JWR7(e_VWSs!LU!>B#rxXD zR=Yv$P$?#OxfOD2m3pY{#U(d;jdJ|+TpLyc>8IZ@lDWjl#1V9$x9x)kBskYkHb$CrV&s#-*k3s zUs1K%=zvbZSKWJVcZ-|I*=iYgE_?{L0sA@0eGNqEy3=Npu%OcOmYNnrqqthwAG+Ni zD@^%Qnyuc3{wfKu%^VNFZ8Z$TYjAhcjqzb(7cvF@6+5SGv@rTiV(bCO+UbHaAw+@S z`39z`e}|NIVzCi_G&Bmp^0l1!L6850y8)ZQF>~4J*3CTLHP!hi_26iNogNYjo7Jg* z64`Z!I~*23-4p*CwJx2YV=!l+JI%0R|6{*Aq_RNw&nTJH+gD8KnXHN^+kJi2GNWkb zlA_U)qV57&I|Oh*pK~wtJ&Q}1138R8JF$Qn5zvd%`uh;n(5Sji=QpL2=7a?{{C7Zk zmSuNdxRloC2y;u3^+P73_KYp# zg_DUDlBgHD?l4@v;%xZqQoG>)WSc|X&2C}{W72->N!rsIGs4}xu3`U72(9%;9uYET zIVZrTA_!R8_sd_K93gp7E-0atO9k(1Y({h+rE73kJ0i{P+_eoS%X6C zaII_N2>qF)!b^kZnCoy!o?>+cABTkv`dB^fh`ke5f!)3+`S7w;6RP$hm+|f1uunHQ z|C^hi==h?2`k7dtT)2c3bD}<6rIOZZNh(x@Iw%Bj`py!^trJ;{-IjNi@3BuG?2X(* znrs*Yn32*B>*Qg*Ia;RbaN&~i1*R_y9^unmF^wE`P6J;^5N`5_v$a)VM|$It7iqTW zhrzmjd7tC%f@b~s?nEzpaPkIW}ewk6G%H*)&N+$OJHn=_o2w=$_q_T03eJ8MsGU_Y&FV^ zUb2Z>vKsQP(QE0fYswO(pToV~9oAo#NcxNvf1ieHYs%2L;~nbw0VN`8WR+c(+f*|q z=e9yWVi-~TWP`|Lw0~iIrM$@EGrjL@RbIGCL?zTG8(KxyJe<6-XE7nkaE~u1s8ucB zH~f7!J@D_4Z_6<&ZBWrSe9;i_>;`5)@^{eG`xp;FyVuS19>+|*`e>M=T7PPVGs7&k z)i*9z20$GnnHG~Fp_7Fnlh%XV8j8w%wTLtRa%0@F%`~`Ef^prrA!vyMg?p9WOJSW_ z^2`a~JJkiVYs?n-);N@d*U(q0m|aE>hK>Pj=V#!d5lxy1i09LS`bwPTpMvHZX0CV6 zYv?wG$#LGwe)qNryrd1Y_4Uc?yx(bssRr8!+wy6;5bB2v(Cskr`}~U~O*dYs0}{VrCln^>io>Nn0<$2V`)3*~hVOBOS28PeUKM05aYs*D`kdXP= zyt8+_1vZ@P*t|l>v=-LJlwzwLeM!}WuIRwcd)ArDo-$h#72WFSjY^I;bF0Cs1><;>Z4J~i<&ref!E1&W zM_cysm**4lc*=2v5C{TYYem1x9>->b5_yzt0WzliXu%fhN{q@Ijidc5b<$RfGM!vG zW92c0lHu(%b%3~V=^8FmslkYPFkd|pd4l@Zv_LVC_LY;C8>SGl2y+fI+vy{ZT?L<{ z4urmsF5G+Gdn5mHrfZTRbzLqeU?A3cDlJp%=liJ{P0%|Wau_M=elXtSRXwJB?BO%W zvG}}Ub^^4pg%%MwB{=f2^}{dG>KeC^ znEJNEWYHD*6(2W+O)vgk-P?_1645Yn+#gapd|qxlNTqu=nz+EstLPpOy? zE9>?2<7-|A9BgiYo_|>?UkwUcsbnuzrydgF^WK$Ehl_EsNWH51gR1~9xysc{|4HIq ze^8rL9FGO^pZqpG!V9Qn`(@M=AJqrSQ+zj85P;V(%?RhZmp*ANt@#~ zOf4t$q(8%tCrFGqHI5V_H{@l8{{|?qc7{#Xmg89co~5pCMsazHr(>SUH-qGKeKSI+ zwRJ`Udw+bdN)J~onEyrrEocB$6D5EQbP<_gGMHdB*XkZdt9o`_)4anXFI3_rqMn?c z?XZ!sa9M1nHWXnukdu)KT1#cH#2aXz(CaR7Qmkz6UAutv7w6>dxcUV5*HLw}yP8M3RA|;MvCt={t=x58J1oRet&OdHizoX;T?eLcv4UjL*GL?=LHV z)q3Ugp%uAjOJ!9)6-xEnPmn1taBf%_MQ*g)Cfib~o5gz2?1O~TtwU+ORm3v15!Abc zBxAr0Xnt@v)(RH7iPQaGcoDWTWdnmn!tGo zb}5GR;BTQ#cC1ZSqkCkN5fpxt6kE7lv*&d3igP0(e8rznEc?c_ z=$+6Q?k&|fpHPONu7I{46aSdpS4FuN6P7u1P|x(qIr!TYS$^xER#;#T5GbZGnjiw&0TyBuQu*l; zcp<}Kd|jv>0$xRp7kgOy@kb+b2l2kmDDlU9jWPyetCNgGv_w0qlRoUDyQO?UYVd(rDaXhs z7f`8!<99L|JKW60%TW4@mPr%V%_YPBnW1oB_ie@@<7-vYLcg@uKo&e)6B8kkO@l^7 zl(cAcA&M4Bu0I^1+1kbW(>H^|gu-W2|8nB){_OqTt$R{E%qi>IFY;1K{>3S|icK-p zM2E#ih*^{D3s5_^oh1hIX>aFJZ z4hibEhz+mApO+Lbtsy|6OzZ*qhNHt?@_n??AE9ZMO{nSFuKYrkoi-hU`i)-Skey8d z=E!Lg+jK6UOMCQ*kEEJdRRK_E06y5t$GB@dhJgN~wt)}{nz)?aHhAnL zb$h(d`!0!tg^Tlt&_BJgDgLnFNOyLH57zHLr3(T-O1OFKBPDM+XI;?lvJzH_z2sGD zYmvc=Dxwpy`;dJ4&iMSm)BLM6hf#$G$=Y-PI7%TqLLDBhKvxY9LLaLP(`om>vJ?e@ z2_?p&Q;l1kZ6Xiq>cGfjPW$<=c);2TNgG^$LS_ zQj8upsM;FKmaXMCsz{YICyijs8!f_0>zYUn7HQqvC{B6cT%m8?_vcOK0$Km7@3L3! z9`T9Zc2jVZYSffs=>MUKWjeUB$hJ`^;H8-5%HfJCZ3nZY3Gbmz&s0M2xvkfa1!I3i`iO9>M2KxON&oh3j-p==p+G+f8CDg^=lZT&7$N4vNLK zLUwhiAFo*Wen)96tQt%aGq8wo`BrjsDf*8GavWQdO`Yf4pidt>R{{!qCyG)TjY&v8 zO>VPqnpbbxW)`1ex(x^-)M2chF@s`4=CF~`kQy7+ou{R?GcuAM(cMF=Sv9u)Lw+so zD^lk_9oqQaI^Of#^5dNk!70j;t9%kfVwR{4mq?P8G?(k-tzA&>tfu>5CoK>oU=|oj z*vlSsj3t9fiQC4?MZ6ENhq|`)vRagm!(#qptglG%s3$I$l$dT(4+Beky;Wj`c zjc)QPs%P=khrha=`{}PGkJwtPqV!t3lP}9#gNtO<2Ge6^t0gHB*+EJkjB#pJMdcly zWGxoyzH_TQJ~q#tEK+3qOcXWF8s=*_bAN9XmoLhn(+g+Iab>+8oUz(`Q1Qvy6>169 z2j#r6#{#WWnIW|vtWi#3?r&qGJ&Rd7ph>MD8?JY-JC6-4G2-ZIxFNxCBMY~3u}=G5xs`6P5TjRX z8Fk!d)f2Dqsgf!V@wO5*)p@iW$PPf@FnkyT9f`F8^w^oK5sk`&w#V@c2;mVX8R1?l$^m6Nw{a+wUc=v-;Q8uc0t%| z$?Ip5{3Y&A%g&+Fv&Df0a;`+c$@nJQS1g zTJq-i;KvEKuGK?dMOkf3J=X?E`zv&F7YP)_iitBPlK4{|57W7tg>uS1tly6oRaggV!y9A>C$tywVtw_WRitoY z0oS=aBH6A-{=ZXMABMu?Rlt@U=Oig5KC{`XS!&1GMx~>#au@;4IUB1o254stK_9Z3 ztoQkYPL8QRa^s=Y@cH3~eEN*A!*kZ`|4tDRutHPob*ogUQcb4nyL6Fg7nTOhIISyH zx)AyNWOsG?^YavGi!wu0)?0s-|JXa17XxC~B>eP8!`Ihy2{GoI*(rEOG7bhZhIaw8tTiV4s4jp}EuJ zj6RWJ8<fR0-tUg_LJ}w6vnMp@*NTpijhG!z?t{+zHDzZ%d?|F5Al_VUF6=x z)Y|Z1d9ja?v8Jz_IQX)O11B7mZLH-pYAny=wyMdbgaTl+;)+y#u3v4?z%%o86ACKY zmp@ukW0SE%b2ehh-M{)@fIc3F-?(8OB(EH_ED(5*cFaNR5 zY6E#0WX2~tpeltck6?^p%;E;Ie`e9fH;s~KX~QNdtNr0;`#RM=3pNw!0(i8G`Yo5t zWUgPHF$juqloFR)J?b?-9id zy=)S^N)2layJfS@d`+UQ`AXrt*0kUk^Tp}Y;+D=;7PBU67HA|ALB!_bVbKh5w*84T zl1Il>$0_~qIxvJ~Z~6x#`R@G3j|rO9Nfm<)uX_1tRG*i&;}`Vy4<^FRuMg-8>IvZ- zDL`Lgkw>Mo{S_Jste~!mXuRQOF{$Y!i7c6N?;@@EU3x0IB5|6L_A?>jz(sAAVrb(>M ziN>+9A4-Y|H6*sv+*gm0&Yw7EZ1H^5I1)Pn@crpU8RF4NGrbrQ|Savt+Y<6SOGXSQ{?ul~+9!vEcFFDIZoR-L&&M*TUd`r#iEZ#_z~=UpSYzGw%#I zpMh02bra>J_q9Bhe-0P0xZ@E(c8Tu~)VieVw-;}Lx*o!_1TxR4-6@W)8l}wmctrnp z^|QzU?G?x-CV{QVAacYaE1S+_rlViKKQcbq=W~r;*2H5*i78K7Mm*IejJx{%(>KfwZ3_IKzBe{D`<-M;|V64b87-Bw=l{NktIe)%<* ziFFEnJeZPCRtzSx;fPWn-xXmC<1*Y9l)SS0I(V5ACHLGTw&Z_T?5XW48+kAE4PKhV zsEa*9Xs5hlu@t~J%k`4kIc#X38sUV;m!D|s_&THZ76e*W`#Q8%iKeJ<5c>bt1})>o zHnwH_S2=n9{uKQb9bU021)f-Ql%ALtTql8UgZPn4x9>$L_7+h{+My&X^oK+%T>9Hg z#{>?2seXyHfu~C){tV?Y{O-RW{`0Gx*hcPo?)=NX?J9%lpPc5k)2dGHGX`l-rSYC! z6t>R_9Y?Zb+7pwV?^XvxH}wKTOz5gn+N@)1n(}$O5$C%cyPxrf@Bfni{;z<~OGEv{ zBJv$^)R(_)UL1ncxh@R4B{2a&)^-j)y(Q5n2QKfoF_yjC099wxBISw0jz{MP zax(J)yxh-Io(WvPzh7T}MJy*nKThKA8Fziui}&x_E}S*0UmJN5M7JRh`I(eISMVQXUd4Lu@;>yo))sAv6jAE?r|LrB+{1Ke zz(1;Pz><^9z9~~}Bt3Zxuz?x(-bWBio4f}nCY)By;p%XUl1$W43-u58YG0kz#-u4J z-USx)-X|@9JZPmaY_4-*d^hzMQ^368pFm3ojZ4`YQaxS!s**mtMC)30Hw0bP=%#I- zUaS8Wo<{MFBH_zJgNmuG@4SmYP_P|eF1f=osEyeVMX_g+$ypb`Oyx;=MQOvIJK%v498W!b+!_v`>4tZ(A3>PgVfdnDAudSR2MClTZ~tiTLl7g6jIi z{JJ-ZCUkAD!v!qGo7D?OCvVr^R?z&8ga_QDx=Giq_3w*yuP9Y99p}QnTrv*)fjv_) z!!MCD%38j~2zD&66g4YQrIlhL94&nxHE-<}6Y`Rn270)WS|@To{CRhp7z}=O{&_&@ zM?tQgvVHY^30upOR}V!0a>FEGg%Z4W(kWzyUX&sqE0YFx&1*tw4V5idmTPd-2q(1Z zD$-W{p_XP4J-DpEr>;jtsi?bKOc(J>>E1&rr;w!6jps~}51#ahIZ;F&c>r;)GnmL! z7F3e5#U5YIN${nNe@(WOwL9MQInWcUZ3Syf5|2@J!!loW99^wEiE{r6mMC2M_WOJK zy~hu-c;eE9{Z3hXli-I}L_OY@E$DCUPkBHcmde()54YL%piP-4FB6c1i+MQO9|p%K zPth0g`}%v`Gvu2S4nJ8715J5p;y6zTkof)mVAI)_v@kL$vClzkZ5pY^STnr3Va%wYHWP*jv`;wgJ+J%5C~&GLDwk zdvPR20%?|xqK)os(ifmXTlIsimwS$1cCS|VmJ{mlk>1cBJ(WcW+HLF?fdHO703OiS z%Y;tDm_WJe&|-e!sAlq6P@dsbW#3bag{P*r5=_oF0<8qA0Kb)88`iAn+0CnI-FD42 zqoAdLOsU4Qqq7%tUmHd9t9EK#;bJ=453s9&x-@Te%0+7FXG7i}on}00`)(ifLz|O2 z?;X?L0Gu8Sf_%~0NfYSi92EqqxT*C&|LR_{>nIx=JykryQmp8thS% z?@>A+cLvCqNq;|q%A^JoKZSVi{JVLRda8;sDW)1~mkr0e@7fcLjC~m7L(-(Rd-x@e z{H?s`L$8{xlW~KtD3sOv{q?x+e7|k;FPG~$_5MlCYgChMZ3Akzj!zf#;&8&T=rKoi z(&rCj3*7URJ947OZfu{!F5bsg7X&2L|6R{*_iE_IY=iF2S2F)bAgik^ir6O0m7soU z3k(42!Rr6-RIQQc&Lnu*LRx*T6kfYT!AFr8<*@VF>7=8ipMNjEzoA_93f*?UPXIEW zRMTEj9C!kE)91Zc`VCET9O~~apB$o3R8~sic~)9Zx|f3sWt7O}aXohO=8dP9zs2d@ zefRB4Ow>H&4N?bZvHxBX*(p=qr>~&ou$XG(JIBhQsDM_3ih;ag*l z3Nu1%*DKeNVgZ0Vv&DV^mTCG^4bJE&#=pUBf7vZM+ZV${CynKqj;zHN1Pq2`fObJp z-`>(**jN^{`{zQv<4##`|Pci!Yew0D9e92HbJU ztQ@eZBHk={_#|~eG}goT?k>?VkdlNl^ZVrceYZ2Y|3@V^Xto133Nm;mJ|0%pP_9j= zWh|YzI5Yu&%FD4cy^8X?n?!N}?SAMZVTA2}r;JxenIu(lZV!K3-u|$=5a+)VmG_Yf zG_g3bqsgynI5!~~?ZZLZxPo!!q#I>)Y4x+&pNZUvN2O74)+i!`v^e=hZwy`TT9afL zFb6N=&N+kJe@?z@AuZtcdqt)?hiHMJDrP~po3SwYe0q=_v}R0X$h5#RXt|l=Rtsl9 ztok6G#nac{zvjI&__`tTB6d&c`!~XZ=nAvNv;V?5t-q8BzY8 ze9kHI`nLkjk4~HP{6V*o4f;BCAYD|)Lbp<-q;k~kQ+8*&DRU>F5?JiDSd=RBj^>s% zYI(sd#VM1tQGO=(!FFL>FkDiCE!gg3j?fgRPGg&<<9|86w;Rn0i40ud?an;DOFPp6 zBComUm3nFkVYH=EO@>u%RF}3=GPQETVRqQqpm#zV{ovzQvMT=kL1B<>eqsUgP9W-Y~{2WE;o+p_Q^H zv?A@~V=-dG_|j~_8orfjsaFqTpQD(^!~ZB5v`cQ~yz)Fv0c>8O58 zV@m^rpi^rYJL>CZ^MHmEof6Wo;O+F|+a9dDvtc@kBA+!x&RrL&qsH0Bl*cC94VHpX zf|f6#>iVjZ)Zvum`IYel#M)?g~38#8QR)EJ#@|&Ev${h3e$UR#TCCO+oNqR z`Bmze;&&4KVtji+N6D(b5xppF;0{Fob?7=`=H{Q;nSpMOUAM*zK4)5b%)2im@Nc)c zbAzre8`!K8!xAI1(Z^Clz@`rpGW3A~+uOi;yTqo|-{>|NqIS+dNRg^s7#*T4#f zl`lIr`_xwnblSJ$lSjod>PTU#S*%?0eZjRE>EnH-zDB&uEkRN$dJQFQ&K^{-LPp#_ zI5niQdd^GhR(e%i@Kmx=uNAJ2Tt^y#Zv`m6#=*@-fP7N4vPQIVQkjL7Ux&gk+1F4Y zN1>fYXT8la2GIIru&pwP5k9-X{JL<#wdEOTX+tZ^Gz9> zBP%sqGRv2L74scz0wTO4l&KY3Jbx0iYl{MNd8C^{QKnujLiDa;_T0~r!BWb)cm`>9 zw?*o0`_8cAqh-Eh(S{$}N}s=Rq?5~Swh`tyVJF2MgdFy8{)OQaEce0ps8RsU1}e#a z$)BAAhCm#2efn8|8i$CwFd*it)UV_E5qlZZQ11PxCY*mdB_~yBd7^qS89HSeqrAA2 zFTaNB$4rrn@7iu*G&!8?xy89(5W!$01_IpsYXb-huroXTf~p{LG(XX3pQ+d}ZKZhH z$}Gy0N{Zf99m!OJtF0E}CrkUY8<&~S7Ht}bJD)sVE0E2&e^&HSQjmQmytc@ZCqyTF zUGWLzGH7@^2a)G%^41io>7Lm200J=*PP^KMG?JDty~lC|$;s` zpZh9+u0f*l-4{A0S_Pt{&C27Gc>au;sQk$&D;BHuurhD1DZxF4_b$2fJ{aCzduU^M zHexT{DbLVgI>@aad2;h~&P$*C7#OLrXK~C&X--zXaAd%{k}ugfdi0=$7cGdtJkJ0o z*_pV+O?mqWZA`EKcE=(7?kKc?zcs_&Y)DV#tHn51kw(fvIUViER;4PHO-}+e>Gpk_ z3owY?a+ZhS_w_W2=N~ZI_$gX@$qX+AIi#9qX35`5rXHvvbtWy>^1jB(f2t##pkSt? z-+>w%ZRUozVS=1#q*X9fRPH_*m-sFC>e;lk;-Jj$`w0&nmHG8GRgTL+sYJ_(-xopF z7Pay>U(V4N9)W-d+71r=!YajyCl`vG4l2(vJ)O+3)wLd6B8}U6`KK+=X}u6AI$OW; z3ZH{9b7lhE28EV?%-lsXy&4w&#d6uX#g{b&g+II9fPNoalyqmIu{+7jd@gAz`Zue* zS9VESFQ8U4pj8}ZR8GFw*r ziL|Xa6$$Yj)v}q!zQvl6t3I%aB*r0dgG7^Eq*c?$NUBz_N~EBV_sW#5c(Uu^wfy?# zhY}{E$v(|J+!qCI@(6Hi`#`b`YJoSCJuCI_>bKmngN}M9S8%J%C{n)h3tm&t857VP zK%+a@-gy$nm@qj!WWWY*KMTA3%lCcs9Z&zgM1yt5jxf1w4}89&kXOS`<8qUeLWIhK zyn;9(ORf5ihPay>QWGFGn0+Wx`=&8b)aYtb;j_Qu3mrtZoE*6hGlq9Z=1Jy3>~qzV z%D+Q>9+KGm6TR>KK3+6B9bcS^zBguc+BCZ)-Es3^DO(;QuabgB+;%ozBW>*|bad<% z;0E5EJz(TW!*RYhJdXv|X1S&RX|{R@wW^1;&J(7JlK>(0FFI8U)!#2|h0lsSxgvk* zHMqm6jw`jLQp>;a!k@~g(wYPu+y2KAf^$12&PC9r%DTK`uWDp9jD#zAD8kyP0(zO2-({!$xj)rvDLV`X{3&U|Lvk{GpT+7#uJbl%yz+D^epkg_ zW($g+RV{(2^Od_5FBI+7yyxiLER1|K5(H2wc(>~y*)*b9BUiM}ACGt31FSC77f->v z(_nBB=l;td&khvK;y_~Ya|U<`wB@Gf)aP*@<*Ng4I;X2feNxB#dBrumj2$zPc@?GN zqIM1lhM(Mkbu9rzel$Biyoe6k^!XI->-qb!lEN~WB!((0e(eD_N^W?u%o+lmD zfReS5y5NdIB(2*dS2TB(?6uM}`8-uC-#4{Q(dkX+pjkr##`LkVMIU5cz@xsV0n`XnRNia;Gv&?~1gqtQ-BzlU=jR zb@CgsZ^C5qH!}mgZdR>vIB;aGeIlscH#fd2HVmU8lHG{fq}tJ!*e0DC6dm zEAvENu(tcEA*tbKlo!FpcJ4-L_|$K$jU;;dZg^E-pivdH%WgFk8YY?C>iSr~C=?1W zS|q0O5aZ8ww%lC{9^w1^Rbl5tN4Rg$IumU7V54)x4!qxUllu9?jn)F|w|n_<_hhew z|4N88=rN-umQ0smPn_dT`zqMna%-=!S_?*WS1tk@5*QZL)%J951YD4Ce|79l6?Xd<*+U>c2d~8>+xM$ z0&*tjP--0U_??DY4b>x6{tM<1T>hVG@UV`{;ZvOm>)4~))3*i7(t}|oMliRsc|N;t zyqsLUEwinBV!&@yiLSCTh8&1S^K;v`OQPiA{I0F0@1{jg>b<`_pQsg{To|`CX~>rP zfS@sDHlUm1$x-j+U3GK(tK&z~dSm8O%Z&1io6cS`0S(RIH>DD#--mD(+Yt_|)z+iC zd#9&g-`+#7AKwf6I=wy7B5bJm>+|~g#9u#H#?I5*5^s#bFV-l7?n5yzn@uk-s`J?u z;YK&;7ecWJ8*g1`a_3|0oDJLH+QJA*s%dI}u?eE5U>C4sWmnoKs9lE2PVJxBwBwPI zdiA+cfHX0(KLfDHkfx88gJ1x){hDGy2{dWbVC6RdUM+CXvg9tR2CK3Z9Fjfyy~~ei z{X(fv%!u!m?f;wI!S}j^YNiuqZ@@TaFrpQ zE9bzDYSlBh3{;B0Gw=)83}3gt+qi?89mBQ3^)cXBkf?dLx*fu_kZ!|TjL7yH*pb%) zYoC1xfQrCK+E#}7ii+R%#Zx(o(%kozj-yhhBUINmze9vjQbXp|OhABn1{8rcF!0%_ zA2X0;8H^2nt1`nryLhpETU-b_gv%8n^+Hy#STaUsHqvq0lz#d}>oFaHRhou#NjzZm zmMzx6i=ZHzW$dyYOFf%K3*{p~3pZWS3Sx*?+xxnY;|r53lM2K}Z}G}44q~G9M^I;P zheFFrNiewcNb$~=lF&z9{i0m^8Cd0zv3l61ra=KKN{E5oYTB5LZ;{=LS9u0kA*E29 zO5=n2)Tm1qQTi*7G-FcPMjoEL3JP76AN-jQr&{{Ii7Z?2?yo>QHS@0A#&yeCJ-!^n zj=f}-RBBsE9R#XONfNun1yyk4_6NN z^(T2+wz)jyLTSD9!Q1`7Y0fM!=;z9q*g?!=z$UB4Z)(nE_~GlgF~Ab3?vq}y)iuSm z+K}AeQr#Dcu8alJk5$#%F|Ti_mG3c$8KfbeYwrC_sxPqfNiw+DJCB+qp zx1YCEHjUcxyb`Dk_v|Q`{O6irM(p(Q;B>BhxRdOwMQ4=3fQbEr?F{j=t`nu8T=9!# zx!k!tTSGFeo%9q(hrCMXJ4;=Ml@?Y2ZzRbW3U?jL@O3F43LX%gEK8e$X?x;DO_boc zUidS>=TYC7m6YfKUw@6xdSkAS`uAf|YrG;RmE^_G<1O9`<|PX!hIy5#vwBUEFpaXw zW+VmcF}iZRs$Cu%Y>#QN+6uvVlEu@y%%=zyk?6Ymli_rDnb2Va~qRW_4Q zDSZ$KC!?RK-g>!x{iN!TPS`~Hv%_?%1iH-n6KjFDhOgy1pLC*fDceQqLe{zsF|ucGZQrdKYMn>XFbcI&m) zyUn?xT*8#ekdk(|#mJd7dS0LmAJ<+YFNxK_^(i`0S~YnQN}Zs{j|qOe9>xw-ZE=s{ zx#aDT&4(+IdKG%&jjiZO3tI<40L*dwr4F(+OB~-pb+ctUTUb0#D(2}pDx=7CsG&sE zb?hZU_LbwCdRz2SKuP+3ZN#pI7kf2d9$2CRZ-JGM)jNP&(eDgO!cu;}7_Jo`KDu6N z&z!Im4$C*{&3pJOy&rG|eekS9yf#nFdp=QQeh_o?#pC+mKLd3sqzwa z4?3t|U7Pmma1j*Yw{dBxYk}gGDUQrjfh2GtPzfq&Y;0tjm@@%m(lC!gyuLyU_ZlHR zI;6=C+3OAVcnS%+zE|`cV00JepY>a*kdhBe{Fdg721q2E_hrq*+kTKNjQMK7dtu;V z&qIw1M%hXwbvU+`mlAvKcd4NMwsXex2!-X!AbIKRr`(Da@;@NB7n^xAuSG{knH%@n z8W82kP#5CR_Q2`Bs0yQsBdMlg?|aE5!yH_ya1O!UKiG3z(}w>GJxGzBOE>wpmW+V67DZx?D99>jCo19<>G;cc}~mZi#wnOkz65=RTlp zM|SrssF^Y;Dbihi1cq^>+G~U*Ds674eI9kV&=OCmOo#ZPME?& zIMKeoWghwFO7`!aZ3`v%qc}CnH~&pSy%4`RTrL#!>(>;opq{LBzX>QOgSBF|;L4mR zW&mR&{F82Jp}f+~qKANygA691#;T|WM=To792kXo6X3WhsOx1ZaG(E4U@p#7QNzZu zx6R5-@LE#iOAdEzjete1ITx^0=s}px5h&Powgl_3MqY?gj8ZI3)f@a&d>v|rfRy$K zZ(wr(jemAi$l{2v`m7~OkN8mfmo#rHMNE&hFYdm9?svPdBt7r1Vri-JqJj6NUZTqG z^UB~|X^J6gCJ4RVq0ylO@)CKjKFPURsv9*@MeV~%d!iTrJJpP)FZim`6#(0f3Ku`> zk7DIORF&<7xnGR^%AHT#?6fNz`U2p0iZ`;*nwGDw^#%D`x(FVAWI`A%F_clc-#D@EZ&~>p+Dz6M=pG+r9Tva;eK6F)s z1^SBiqrxA(dHTG*`{ZRWmwLg&D4zfPdn`!dB|xv01+g2P1S9H0mJqt}i^-MM_Uzlf zKz}0-ed`!>&p6(Fb-eWpJ|ffMJONDps4E1M4f!x>s+L#|)qNxsnUY3&qFtG?`iv4L z5f_e1yW5mv!NvRr{+5`-b)Ntk8EmE{CN_jFnE3csHu8XbzMk#=Jy z7&bt$yUSafq4GPW<@zk=2wSOUW3NW_Ji7 zEg&5Rx4`??!<_R?jV>p}N%xbn=T4NEdc&dh8AAymhGQ&-WlegZBOV1S^x|t+^qW_I z`J(4Ev*%acw1(VV%qLs@tl(-WM&;0!Yek_nn`iP4a)JYD&a(J?!j0B3xp_6Q(5#y~ z)-EvV&hdBbMWQ4E0P}&bz7C(6G3O68VmvJx+YLiKA%;pq4`t9G8eIMmQTpF0{=GvZ z+P3J^ju&fvF=;(w*NeSEbOnAK@!mbWqnDJ!_+^Vx6=v#E<*Zhnb_wy z7?v#{QjgNqFOGfeB>0ru%*qECkTd72=W!P9Jf-4Nig zs$>SxZgsqz$6EP%RfIllB!UD_h~s?a{Gtlf5|ST=CmQfPd^+6XmZluQa{p1+_(IyT z0PU1Ti!C+o!papW-ZSa76pfIi-~iea{WU^4fflTKBz(1oIcd_P`{$~4YrXqDsDwV~ z`%-Wa05z+jd{La3cJXXLokUNxnegvR!nGG2sxxQ?(yAWOuq_67@o1D~1Y0PDuc|n{J(gR`pz|j%Ox7~rV^E8_aYbhhv^W_Ow&ZeFjd9+ zzCQ&QVc^1Gm#m8^$~=wMzNNhZkqz%3IP{FPPp#vYjHfX!(5eiF+gXhj?I)?bklmXn zX@DIaZ%gmq)5-bw@}y^^smL80&ym?wRb+F4T=ry^EVRLEdFELDgb!$y{dpo%buZ5Y z+vdRo_jjrEd_bRYc&06JNV#u?=UadF&uc`vu?tWAw^FQ+NF^ZJIzG%)^k0mgTT{20 z^_gOjO_ljO1sRaZt${<`pempW^3QL4(t>HWPl3E49S9ls2~4cK_2R2+MU{p5PJpFo zF`QE5kJ<%jV-#SlrOa*|25iy4r{GI9baXEl8y&4)y-BK8>tzEwO&CcDDHWH1FJ&5i z)fHpIx?le8lqe57v{jc@g)?B*m^os4Vx5UbrO85-8E6a@2+&)K5+y7IZ;UK*wuKqt zB~MD8z8_mC7XN6u*`$RCL=}cyN$JC6; z;$KRA$XF~)&694{z4w-V5~<6z@$&+&_O7L0G=3}daw#GCxw6rd8!LhA(LyZicjDe4g#uR zOyPV+y;yG$C-*np^C5h|8OtY3>vJ`7f3uyTa(8&8$P@=Hwz8fe`X{^s)^sQs8*Sb6bP@75)p2zcyV^ThV_Sv98paL@vWk(igYBw+zML3!^QEcI^9#h`&X9t}6qR5- za+aOuGX=59!!N(I{<$sx^$LUEF2}-e8v-W6RI*!kp>XmNObq!*XbrBPXFIfK4GAH& z%7l_2_?9X)`-V2m()S^`Y`t0k{$og!I{N*a3#TlVKEjK*aPRyeZOpbaD?f!uei}*M zBgf>6-9x(~)wMn({iRTbagb*I=_^fcLUle9Low!PO6|%#F0|RvNV^46SG6!o*4w6c zE~nj2a}3!!|0?EOLBC(m$FfUg!mnQYBX$MjExY33P>B%zj;UBpf+%#%$EQk$jClIY@mqu_wE zou8Itl#UnLveh8<zzhmcTt{Q*IMrD7=h{y)I zCTm`MsK&L83XV(W@_kh?4`|RN2Ir*_{S#7pdylk3!q%s$BfPJ4wYACVtkQ!n;$(d8 zu=;@e-^S*;tAhJ6_V+%{yn!a<=DKv!)Sd;2J{b|cXG6<*5P$sS?|*9AJ#4aYi{qll z3aGW{z0s-`mkt@ufRwsAoE0S}Y$x)+b0LQzs#tkdNC(3HnH<~w_cqyugQ@k*=S#AG zzbser=?M9lM1uRwZ&|z(o8_}WHnRpPZNBBx8=tiJYvZwSxS_D-wHz@*DJ^ z3FCZjpBz1&^LDK-$owdMR;XmS)F0O2QyxmNEY&izK%5G$pIIkX*XPKE8pB7T&ZvWr zxHp>VDVRQ!wE6*?FT(iZC;v+^e~k=Da?O2l{FGWxxpa=NKb6a2lE+l>u>*?FvP#xC zN=P4JghPxN?~pntEhj;i8${a5MD|$w+~FvK4SB3&r$<|Xi`UkU&e6~=UU*W()1JSQ z14R7b#a?@59Ql=VOFi@_^|7I)26r|8x)|oX#U*X-Qz&PN^7R5f%#WztT!~gC{*rUh z)Hln36`33!eSJCsL?uEJ#t(g9E9t+Vo8ASe}83^;{CDSNE-XRkkrpPLpzzfK0th^^pB>hlk^jg2dx~0zJnU zvR^hxK(iDc{^-%Z7@SJsEAo?nA;$WQ4%51|I%S9#oMgiDo-z1(gWh^ebtxO|k3+;U z<_=vJMn4Cp8be?+IRwY+iIo-U}!N?dP)BZb`=?$prJ)%=u zXt19kXhPD>7gT-BTr}IZM7{)BCEt3zQzqiJ;okPQOzjQsi4HhFb^a`}s{h}rc*PF$ zApdIXclNT3T?5b*KD`9OO4cWzz6xbjB&p(2L;MQxcY|^ z?b4p0=rWrr&3k&Xg>Doi=+k*kr1w=fBqTFSNo?XGN1!3ywk1;K>)9x$1-B6@V__si zu-YOv5++$i1VryOj-Gx=8bMq_0d1vh13P2GjODANH=*@dZ;3+mfq_X}(VIR~5x18K z5iDtx&FCo+T9CI4_D4{AbqWOEt*j52?&0FR6k0(>naO=_}@9<3NXxfDpGg#(}2--hWUYO@X_Sp(I)&9j;tK5je8b<$8J2iz1^bPTT^d&Q^;aiA;Fq3vbB$`Cp7$b?vH?g*P;WvEs4Y6`f`p3 zA-eo&y~B2ZAlOhM>8Uc8t5Wg>C*nmYUzc)<%GkV#jP#(qMP##_X~nkjado+frHn}t z1N$Tis2SMDA#CUXpzcRv7%Q+Fa_k*MTf8Fmz|U%w3-zNS0DX$UH0Yc$7q%DtG_&g! z!SVsTicIb3eqnX?H+#WLMp#3*HZd>nXBa6deGxV>F>Selpf05#K7OBrS_YLR79F~K z_E;M!F-D(#VT|mrl24f=2NTwQa_AqGiI=G^oUs_H8uGW{_GQZgD|X(b4wG`1=yvCf z4KYex=gSI$)NFI^+ohysqLEq5>OO53zKt%~3waQZ~k^K!7(Wapc}(< zz?uC-YL>h`y*V-nDBZAq#;Ko!XmWcpOP!kRIiKMoq_gtQ=dE*p)i>+Wq~%6*pUSul zD0kR#b!Ae24jau?HDS4sZ|X6wqPsNkTYYVdu!5<&iSM=Ud#RI1CRpvn@A_0R)8-|4@f=hN;!HNvy@% z3K?6uX9rNPYJTN4Ic1}gB8^L?xgwkq*qVUb57mCaSlA0*qu$DzCqk*jhch=qO)R+! z>*6#BSUe%K4ZqxSH~YI?P-fkWJSx09hXQhUJBEakD(o8|2HrQuvuf=4VjOx@Y#v%4 zig}5o^quxtUFcfwbZ3{9IakVPlR9R-Mf+7Y|C)|TgTW>qb@JJ&`l-&v*{S3RJ~6y?nCPNpC}hKHYjVZ?qbkvM(?G`KM|;81(*$Dh7{iyd2<-Ymip4yxMs`dd2R zgG+@2$*Ma-?%)3B<`G!Rwqz2}q1lF3naR&{#~xFAAR=Vn5(o@s6%DC4rnuFbYPeIogV!()uo<=17#qbMK^ zedi7aK-ml3F~$C|wvM7&pyQJm<}ZBg%A}`}YlnW-XQ1dbCy#4#*Nk2du!16;Lj7r< zu8)WAfK=W|aB97+`#flvrun?GR&jeiizMv?IG-`&j~9xVDT7-9x&rOD7s1vo*dPZI zLBPp|;3>S?P`>@l~3OTm`cV|cp3;_Ydo$vD(j>}KKCsi zx)?5gh>90m(Mk8a9E%wJrc)9toVpf|FntCl?85S1S zVSY$8WR3&>5C?GJ=_+p2I<3q&sI02q&S`MCGtLBibLjakh)k z%((38jDJ7|B%rWnCH63Ujy$;*zB#$x9xy8x89tM4mENt+@hvggg~DAB?nWcJ$nnz> zQ~ia=!unmOgZ;-EioEtKPspT(DdqJL|xnB z?KhUr<|RvhdoiTo%>58u~VycaMFeC{8FZS7B&2X*6%!f1u2t! z4-{ZyDngebAP?!;B|C`rb-K7a-JY>4A^T5ikkO$;zJ+)ta!z}|{ zg~sT~s4%RG5^3LM!Tv^!TkpcfsDVt;E^Dnlx*A^lr{%0>uYD8w4w13u>ApD1Dz#Oq z%gCp{^HNpC=-B5ZZ2DTRBU;GQh(^?q{hA%Qv;A>-xUaNO(Id}RT;rRIqTwDEJdLYixx7sl(&WHbaG+m%r<4&|}=H`5t$T zthPw2S1@<<%?VlJ)}tk9y|xeJv10Mm#m;|4fVbr~o^}cD2=uyt*1Wcekhb40Mw{g1 zON^oXLMGE84$TTHFp~W^2lw4sa`W6~UlYlTw5st%e}*rsEH_^ny0=$%}w zvS|KNL+J7dtyCj+$rKQOWamBf%B^haWWG-oc z6oU1=F*AMZsqDBSELGgTSj}ILYwdjRl&re=u%r`WKA%lb<#l$}zhPB^R)Ssmk$&v& z@*2~?@#YD~htaX5k@3bMS$)2SW9w1+3UwfC^)P3}ugAznM{{m@D#^eQm(%$=p1YOo z0sWS`XkbZ*6Mc=eyiT|L;LT=jDyz@+o>Mu*Qju4@?_@g^@+Uqq&G$$hrZ)Q2%IU^d zSDgjE`3G&k4n7GRpK>ximzzBs?ifBxkL!^t1z!I|=7q`Wn?mt`m=Dt6Ss-gLnp z+Kj(c&Jy19O7xSM`FJeh^)#zC^gRR1-!hLDc9(PPGZ`u&Y+{~my83XBxpVV5z^BF` z&DfX}>p!OWU0mSkv&K<$i)*#c3$d8suhd^Q9X}t^M&7ikIi%@-&;CsM;wLS7PtH{} zsRVhF9ywBLnhT{SG))1;!Lx7_hjVNQ%>SR8i>AAm(ZlUI~3m4v<@V&^4`$eda zm@R;;EicFnXPuwCTD;9jmrAY9aCsuoH$@ut-PtQU+ni=3O&U@5L-w7Zwrdooq#Gwj z`td`c!>i1~XwoW`Xg9H%EMU3ii)Hk%PVZaP4#Q8FI^^(1{MT7Oe%&FCq=uv~pe)mV zzTD^_azDTfBa{A)CUsh>r>TaZHXlt6^#JNZkY-C}CbuiJwYyA=1gR4xMTeQW_<9CR z+J8KjQ~rLENb(5qm9PI7iJa9rfwa!3hUrM4pea}GNy#$>wod|5S=QUJ^)tVB0rgZy z&Voe~Vk6ympzPJ&G}PvgJF;{5oqWDtwDkr}js+IobZW+VUMoGIe3N#n@022j+-60k zez>JRjAp+2N!7dHa)qKN;jX;^nX9PuP~1-lM!@_@|!_2Tww>Eqek2=`Y`#$`!cV zh^8$X+!fI-F7SGC;3sbLx&?qW_$B51J6KX{JkDqe+lP3C;=xACE)57^!Y;!N>Tb@z z#z+DJ;Y}L@y>cY)N<0bF=TJ4~B=@fBA6PJ@rq#>Ura#QXCjNCqn&I`4*8 z;L@#0qx$K<3iZ_pe1JxjE~rf=HxSrUL1R4&q?qJZJw6s*2i4y$K3lENlz_q<3hdySYwLT-H z2)>r&amWOw9FHK;m-KEDDycnx+kDz|M~qGWNPYgZd#S(XusqZ3P70srZD6gMqP7IqaSS?L$b7;q zpF{BtJ%XVmn_A;{e?Csk>b8N*dV_(*tJyxVu&8F=gI&odyydHvGx^d6CO+xJq(5fy zCe-?qw5hdso*%1u4Q{+k(v)=jcZ|us_o#)szPpjy?sV{G^hJLVZ8dCB_y228)l=?{NUd#D~pa{1viQ^Xp)|E`><_^-0%UJ| z^{0`_7wo=S-Dpu=OU|zGG|1+QIOTIT0=85Sf`^|={a4vuQ_n(z>^0YD`&e3-Agd-QqT6Ec6TWU278T7 zW@~IukB6=wtt`2vA-YDe^ETobQCqYO>%d|YU&dI23ACZ~5h z>-NZ|d20J&xI_gz>qZsm|!r%*W zpEb=yesL(Zp>NYy_8y)k)j(Fi;=IhiFePPzy^BYKa*b_i6L_^r5NP`lXx9zG#AjHN zRb^5RgIgs@VUxKA9t)XsRu6SYVAMr9ts8K&s{%?QeV)Dv{Q1MLtlsIQ8Z2gfwzn6_ z4PW>UPPKDnYshPEutHz8_Rq+0=MCzdSo5H5z`|X80Qk4$Z5Aa4Q&tB-G~aW2GPG_Ank(|;5@`A zi{~m)9n&*Oik97HWLsf$rMqatJd}mRPw}tFYk=ugh z8WwoOPno*Un0uU#c`MYkL?1ssP5nLARi>c#D0Fzjq1Mj~ehisKv~ppCTaI@@%s`H* zL3uIYE4K$v-2OJ)oK1DV4-BVD7`Hoz{(5@S85qdk!{xsf@D2sAOgeN@GIR9VBTW}g zGHpeRU{>$!A%Wfwwv9nC4;@I_IGZL1iAAXq8{Z64-#O3ET?TzbY2p7t-oF${5|iV6 z_%rV^EzZ!~`_#o0QD4<^8D>Q%?59UoQ6hs3Q*@k)z~1n2<}enEsUVIqR9D1@v347M z%<<9kuA7A=6Q{)8lNm#sR`~79hdPbdltkjRLqBt$`6+hIe&w1PTP34z_*k@$gJkuz#`5Mt-1@<;;2X9kab6=8CIKIO z_LSlgY`6*w`~nwF48tn+iYO>CXm z%L|H0X@=|le@T?s*o&1rh6t?Y6~ym(SI{DSo7EKaBVUA;u+ZI`lfirA7)aIlwTgdQ z)V&u!p|Y=jyddIO`%W=cgvkBU(<&JD?Hv`oI9J_YW9cB>)5cks7{gbb1Gf9`+^5Yd z;;$E-mWZ*O79t@u6WM%1$;Zo{mN_}U6qfB)R=Rv1S|)V?x)br`jbgjj1s6=8tWdO$ zWtnyHtTsU`!#<=w7ed1|H8#`af;Ry^*5*N`xlV;9)esowwCQz!l1fn4$d%uGgo=oo z`aLg{7gcWPgLd)MdVl52x%0ILj_s=}rO|{syR}-x359alsSw#*%{Z>W#|^`ii|n4o73XxOz-mt8A?m1UKiDi&f|L# z8_7J|h z9lo;v*Jp#3`Mnx`G}^K&%T23+K;(oC(O zj)RllAv^Dz-F$@+rwb7wuCHUP&F?TgG{NVpD+HghZqg@Z z1NA65+OfBL{k{WbD5tDNe3yR!BlBE8U?n{IW%?(?e}9DN4|~1H`SOr^=JGkQr5IE-b*n zvQQ}=nQYdY7l|)75SHZA_}&R9!JCs+w``%FFl{?KvGr)>Swndd!m~Sa4<_!XsRiC0 zdO5)V`fud39yZ&s`q)UbZwANLWtZE88HT{l=`;nff^o=reM=aw1uW#qy~qGm=;rc=X!3;V-AP71mx7s zPO}O&P)=wPJ@a_nmtq$-Ju3v7#n+>ZOWPZ9dq$L>r+0MMm>4K9J5H7_ai(zfeZD5`hm8>uO}YG2*VNY~Lm(zEl|c8tzU zqfdiJM~+wEyyk_Q{H%Cjbzk%!hcjRLu3B8`h^d_GRF`;aQ-@;8e5e(zo%@@|UzQ$^ z-}gx*$EOq1z$Zs7(EzVUEsk4T+cX?sva#k@SFygov7fB`#4Z$Z{YtXX zr%R4*{=Ls~{cT_iewNm~*?;L!luX!-<-Ba$q z0JHVX2us<2MNLEaWR#WeXp$3euWYI=v}#OaD-T;PZhc^idV0^n^LccY;8(w-f#4A( z?>9zPp&x~;FmHO7P2A)}IJt?WYY6K$f1@+#>#eZ3H4oM8()nnFy)N2L*|Bdj5V(CT zHE0%8p6AESwYMLU=5=~om|v?gS}A8IKQb&Cfs_Nis%V``_eQfSU{cJ14hE z070R_Mtj;$H_lkEs+=tsymM*~9?cHs&%N2>0GnV+H#uLD4j005< zT!ZJu4!pRahn9_IoBV@}4A;kc6+wd*0dMM01|~h2?gInirr+%fK9q%5&na}lZ>ah4 z9{hLCI=$n+bL={oOP^xttt@w&S-@#okoOkbUw+O4beq1=xxUBAt2Wq5CIx0Rca?Sz ze?pS|@jKgELAgKZM>|K>qHV@1BO& z2@EZbU6#G6Wck4Iezw_rq2tf(U1?=@Z`->76ORWf+JI6OgF_(iQ1r=uN9s3MCU-~Nk)gkT?Zq)(Z*_!m8B?ul{v+H-vWjYC+X`#=Oy3by>X}FcsT8jG5k1MLwEBN zL9_a_3^@D(nucoKh;kLOCsNu8NydWzE};0Y2q= zeU5o$*p@p)ok%`4?HiJgyy2`}RSIq|0JV!Z!^cKH#^vXnjD{+niPNE47n47go;+X) zk2zj38E}C~8@wBFOyPcxSz7!F90j95=P;`9^ppc6Rk;Oii}A zQSjC+l#xxpllny9e$lGMXi3$P-9R4!5F9X4S*LfM=pEE$U#6#uZqB7-WNtSc7eIu% z+c)E5`C+qo(wGi6dgVP(4m-!c|8ZRCCEy~Z%7L_&oZVHka z*fAQL`;q~U2g<*ChPYPF;wht|SL>V7TM#&8SDcxo1N4J{a zMRFsUQ#p4gMYf)64UAott+|3<>k|UK&<|>Yw7E#_%fB~UOau3nwT(Tn0XwZ7#(BL! zGs~Ye&3;1O9}Ua|WO#LXdU9|=MfFX36-kHkyU+I~`uZJHReYs-U^l-W z|Kq<@IrBW=8lEm2wxc0a4d-KBPp)9_aYsKDj4=3V<%W8h0+ z4%0hX&NVh@O#=?2WQmLit8(<-m1AJ(aSuLBvIqU?mCm)BMJ8XibbP`hi}%ucN|wj( zINrm3-MWw>^}463d?jpjIWb-NBbM0@zN2_Qo?TjE+A-t7*cuQ#05D}w00&Dy!7V=t zEF@yga}omWsvz5}t9rF7+rdQV6U}F3GF;P}Yg7c#>@DcP-C&0R5>i$Ln7%WA`&`Oje(>(&u^II1SGC3iXgS8+Qj6 z<>&J^t~3&}BH1csEYs2hGu&nJ2JHt|XaN1yKE(F#Ma?}4yr%hgcWzJfJQs8VRuio) zb~-7JN_SjMt0Oj54NsgH{FL>TL;78Q^ft=1$kFGrF=?a;;(jM?V?Cp*jKvUv1?(ws zJPsB(y}iAt9dSS8fAMZF!DIbOMwYW?&iCI|zbhY;X5w*?y6!z0 zix%N!vYqo^xy?iFL)g&qr25bA#64MS7$8Q0v0oj2(o=q-gqNT{I_E3WeA)5bXmMPENG*-@3VQ?m}zoou)ucBQ9!D4AyGI z@+}}=>&UVX?_iT!3L~@+AKi`ul>vh)q}(87>bhNpf*LYK=Y^VXeZ8HLxb7`L`R3+} zXW`rUE;&1L`Ei>HnYY~Ku%_(OjPeHj`szs))Zwi<*?IO4Wf~x@0syspuGh=rbgZB+ z2Uvm)9vLs77OzJdXMT6WLmvB;hr8~D{dO<1@6Wv9twUsPl-6Z2-rHa|d}otKj_%x6 z%w%rLP7c#tIow-@uBN)2CIJ{`eV&r4PV5$H6`ycC8Tm3kDs#C;^45{s^gV;O7Mh7Z zS~%#^uLFxj2X)B45=Nr=cq|?f_Evc)R1mBr zo9w_7t+s{YR1pnUXBTM-l0>cp``n%4g4p&J2fT-uyk$7wl>;1^Z5XwcS50SfSM0$b z5x_^KvSClbZA# zAZ^gMKe{Skr(l@u_|6RGu-J}^b zXYg^A-y>;u`o=ZrWP&uzCBBQkX3%gaiT}0G`bpWdlyg%KWNzrPSAZ}lw^3nDzdv_P z>QWBoNihJZPoEE-9{^0w_<~27es>=dZi3s#5Z;XN(pf>v=w`e6H;8F%E7|nggLKm# zZ|^_jbq6Uz6JbrmdzKOneF@8oPB5@Qm$85M0W?uz)I*}2zF1|Czo z7Hx6>tGrVx0cuA6)ptWe_S2fujf*$x>*Fap%Ol^NSIg!Cj}WCh+LmauHsfIHri_s@ z_m&EfL50U?R^gNS3jY!clQ9V;IkEhv53uO#1+PX?`nbgBw@K8S{|{ zFBeIvZV+BW4CRKc^>%217YC@vTs{34$9x27Dj4e0;;tM?KvmkGm}LvAy*ImFA8DN% zT?M-OY^vz!#pJtcM#uIK{{p|g4+3-k2XV4$o^Rt6A~njh@>+AeK{gg2nnT1I?b7TC zwLy{Ho=)%4T2W+gN;=N!3S(6oC^t3FE$$aTG*@3w3fM9II~+9sA-Tzd{f){ap{W0j z;&t`+!g8(0bPU3xF)OK%3J25jX(Hv`Xn%1InP~Z?`wMFO>@}cWKvKxhkGz34o4IQuV2GynYgs8UihowS`bm~*> z={DULNz(%R?*p!@4Vt5_A_K-SI-v>=ZFpw`GOWC27N#8eb3YKw_g@yRj#}X6`$y9< zEaDfEIfrU}g71H5XVhS2GB7ehdD3Q?xH3~@ZlYa!S&ydv**3AIti|h;Q@*t{Jd|ql zPXc0+9))K6IDGT$R=jUzx+$0fWpj#!}q{Lo{U55JXd> zZPH%PF93DAzxJ=Z^T5)G$q-@Nmix2ADg(gaWukcJz`m zOC%%g0u#*4kyv>v0V>T&L8iRiLkW{Pn_@Z(o~6U z(bRvyej~O0YZu>C7zicLOx=`dzGK|Zm2a;ad4svWxMISQ9%h!dn6mHKJvdjJ$D{Rd zP;=4SM5#==ElCUKZsZ74i2fczhtQ=f`iNtXyiEm8oALBEp`#Xfc4LIiA2QBr8X}hJkfH^+}wwZ&@w`0wxQ)MSJlgbBy3pY zJpW$ymYIAo4P-K|3Z;p5lq=xYas@0ZqD#&s!#At^it3PuuY4DX9sa7c#)gct9Gg#{ zo}T3Wwl{v)X@<3K_I|n5gwL4&fCzK60MYZsd4BKa<<>%vH`tlMPwyhoGB**bQU(*M zGUaNC_50XsowU^qY;9y<;foW|1HMNcG=S;bPT^Zy;5c~|ta*^%JnhmVJOa4~^@vav z0=Gvlrir_S{qI#5qDne#yJq|BnpqpTug20-s*iW2Z(^*X&y)FJ z*V|URVwtvyPC@k7v9I@A**<-M`h?by_-bC~?bpL!6Br4ru!c0+Y8(%x#JW3CuRZxa zJEn7OD{{wacpgXK;RpP(54W&@M}O#nW{Kj-e;O4$c7%Z)J-!~PP3u}p+{LvGa+KbNrew#><)zh&NBhYm*zmeN z;E)1|JV@+y@WzxhrW!c_1QZqui~Zj0%r{xxYwtL^{7H2}MSBMYg2EYmezfGTY&-5i4T-d9bLu#{8#z%m?6$)rjPh10RWI`P=ylVQg^ViFj8|BL zGhQA;eYw>j0|T)qpdMR0jvTeATKDt@rW?b^F<0{}oo=d58eW_a=l}1VQ9UxMy&}AJ z$b4k|N&v~#N8SHr)>N8noOt^BszXLr{CIC=m5e(2eFZl&Q*7(N2UkX5%A@YsaS+6? zo}SZ=Rs)j>1FqID-gG~yivQi#V7Yy)?CoT^$*N!?XnOmRu?er3OnGLdO1^7b?SRU#pbsCmLC((6TOl)er~o$d>}W3dO|SMf+r_YKlWBR4Y!)#1n=D$y%74j6 zI#8%CU#E{#14>0`XHUD#=?sdmM zNCO)N@_!^?DxvE~EA&n8SH5EB>%A?pNcE@40GsD3QkG>xQ|?wqC55*WKnMq^lGEvH z9JzD2>VLZ2*|d!ERpWxnSaqfJg~(RiMnUT}Ssyj0^Ty2 ztRxmR-ZQpdoMiIE-2FXpngFp=+`d#8<~JAa(R}BzYd|P+7@&i8PhdVUN!b2X{%c(Y zYSA&ouAi?(mhLM4V!WfT{V>)G&%$!y3p?S$48A^ri%;@p%o0~R&$jEVTtljL$r*@x z91#`^uN#SBJ7GDH;}lM;W;bs}{cj9Alf@AspHzI{`b=*pjMh)kLRR0P?KZj3UO##c ze$hPW`WSF7>GrqzGmNYUTe5SKJ+^Q4kET>Hvwsq+5hOmEo^vc795~j^_;uaQzah`@ zrnKZhpA1!j;VREE0<(LC8ar_*0aclRD{nP*t0yPQw_@xoIr5+!gtuPx8vC0W<_!i6iqwe4z-#N z882ZXcx^yU`|#Z7vV6l&8K0iq`5wCV{db90ZARHs_D?04^;1+w-_4>lldZVibTEAl zF848_Uz5h?T!RodVKbhcWzKwwW{5G}Hc`9#RjKW31=r#)z#$5E!Xe;h<#s>k5}Ot3 z>4;Be?H%i{_2eW(Nv2=v(+9tXhXQIw3>V?=tp(~j7&cRPaJW*-JfA8%qsnsNF;+@1 zuu~dtobD@kJZJ}>{5jxd;)AKf8gY$ftXdWbZ39?^t-DRN)+-^Dy@1SQRxIb?-KG{? zD?VO(67&It)dr3(6|B z%rmSoe9@&V{rK&4lS%6OeqI?EeOaF%3$TmYL7=3Va2&4AhzY?sdeM{jG%1vgjSZL* zAZy_U#u4c1tvv7`*+P7QXTX1UEa-X!`1)35gZ-<`_sZ->Z_DgJ>}*>=5J&H7aM}yI zMu-O?9!#n;Ux@0_c=5J;bi^#NxOkL6s{dpMqE9$X27V{2a4u=Bsx60g{M~e+^qmZ@ zRJ?8T0#d?o?{DrG@6C|G6)%^5gPSl|l(6;u;l#-v!Ce>u;?T0IvL#eH92OQ%mz3*P zRc|Z_d8jm`s!U2(V>~RAK^MG4cv!~-eDQsU$Fm>QE+>@>*6eToK0IjhtW8JptFHF? zn!SrYC<~@b+x5_5c!mvREV=CSeadfWFZkn zo9`Bcn$i-W7p_ZrD#$oc8hqwERpCn5l6(^*b|5cR z-DK?TERowHms5~m{?&d&d;_dxJ0u^dyi+e|-Y97qrjOj=A3Aar#rwE=Z}c`Cgh z8|hl8LU7c;J7Og3#MUwX&3jVW!^-UrS zSd^LMMxBhr(>m8+_zjYLq0*h<-O$%goi28~_Sgj?+`i9CovFuo+5e2Gq?~bR<+gG~ zq%nZk2P-{T9Kl(KpMp=Qq>&(i`rY;Z=;o^?a=^As)#f#6?LTlDiKIQTQdAQctvaQ^ z2GJROMWMwL+R70au#CG(*c6Jiie|3abOK0HBjV^Dv zSjs;%eNgJbJqb~K&r>NKWEqeXh?s6;7Qt6pUJYZF=6)m_+P2zL>adZ%4OcnsqNf;y z?6fM%w#dCve^183Ms&+T&&7~lc2-H~hG&U-+Nq*%WtA#rNm<`IE~%`{mk#uT=IRde zf`JtiYS^mds6YBC3jS$J1Xc23uu}|avTs+Ce}3|`NU~|i+TeDlp!G;ZX#Cc*YqEgF zK9$4;Mb-HHS03(;I)S+*sUDyKf+dZp1x`r&u=FCqb#-p0H)qXQRfR~X*q(_! z70OuLW60P*x5V28cDKZtD7||*a%z0$UZ_y*sBDFM?mJmXx}5}va?ETBLUcTK4|y$H z$Nf17-864DF3SJl7uYX=);CFp-7bYxy>xV;CG3S#>#|PgRt(wH27v!5* zed?OCzE8M17^kY`??+2GuzZCJj2giAZw9@YNR%F!X1{ZV1!8YB_j;SNv zl#sTgd~(Y_sMSsM(0wRSe)?JAkJrG=T2iiQ`0$2^1w)QjW9jX0dk(C>;5hhRox|9? zeC1dlWhT`CQ1uMQvMRDIq;5~)N>x>@V6-DvgPe|-nM$8F@TiU!N;hpLXSiRiq@Mnv zaQq{La_CujCUNHhq^{TUsjr~PutCsCAS+d7mxOKYwb)+X%KBs#%oSk;(pPY(H?40z zRrpD15zf~hjNG?g!D4HDCZXdXFJH%3gq^N0;<=`NfkhtjnP!+DHH2KaZ^ea#9m6)m z#4oR5RrV-_7>Q~HSs81~UEI91*l4uaAFv;31x@&n&8CD{)$1t(05IW%J(h7HcWn)3 zW)jQ6id8+Cx(|&gV0CheOW&B*eXdnbsp;mkAs7kqG7tY&JRhxYam`qtC8v;{(8F4~ z`>yuxP3u8-YXjTDjnYaN_TDU#X`AI6(s~wIytSu(LV&IV)O;0r%(}344biy)ktN1p>EK;QSP>Ie$4vATUn^r-NCU^N9 z&Q@(EMsf>@#d*c!8P)Wo;AQ-)@nc<9nDfb`v@JAdfPQosy}w`ay%c&?=Yh@C_mF$a zhx^~A4vkY(Ed~u~?l-i)m~VgOS$FsYc z%bq5sO9Gko?*SYttyD?4ZwZwEq90)xaIZ}_|KYZuxxR%m>Gpj^nGP!BP`SIaUL(X@ z2V2RUxj~Azn_;N^bBY?Q#`T*se;J8yHfpEwlS{31rnG{vg5V_1HEdv0Q+z0R*BiQD z;aw5yMrUJ3sus_oBx6h?&`YDW1Y-vpQ{X5xH#+K_ePFXm)N~57=z#? z8Wy-#s3yb+t>uY|qbA9ED4G2qL+9bo=GuVao}SaClUg-8&BSQco?nL`DQc5QRMiMV zjo9NLFV##kK-& z2XjSjvmN7!Z}GwHIl<0^4ww9Z?QwSfP!B{fBb1O1F-NJE1NXnlmA-s)I#HtBWU8~D zH>p_q#Fa<22k!{b#3JLbHssO$;1GP_Xz&iX%6Hf&L&ZpSZhE{WUxhxV=L?rhC*7tt z(d4tPsc2a!7i2m$MD@81w$5Y>1t+GmoSr2v_1nC2zWd1;{QG5<<&q6UbA37oR|W%( z{#pC&b)@K#ITRf-DyeBDS6>%^toWJBZvH*qG8(5)wKiFdu=$>ekqq4-Kc0@OKYzzw zU%o8$v!uk?6GwAVuTrz_y~DzFii&3o({oAIb>RZEDH%ejviidc)R1pZh5@jlzNo%^ zJ#g5+t;u!Jw&cT5iM(&$%G8ywx9uG!PK(bb>60Gyr?}}!t=F713P=;kr*t|lAA-@# zVBTX%J-6zTF?;It*UAtr_vF$;^#@z@GFiwhDj#hRP}= z2RIv%p*Y0oYRsBDNbl8#TYymuuB@=oL;I43hhub{Q*mfg&wyMOlLz) zRe|9;=%gz_F^_PQgKlqlfxae!+@D=E5`OW(9U*35$NY8hz=G#L2vRBREh?iW5Lz+^pE4Rk=bA zy(#vfz+R=+XeET*;7x}7O`K?|v;X(A8(**89lX??di!&=K(luFA=I}L(_9Y1pVN?) zx8$!(%O&=$yW%-7Lf>^-#rxA=9%}blTMYZDg@>$-9v~cCcHYk4xOn%CyQXX0kND|d zoi{y1g=d?{^>I8#@?H4O@qoaKYVZG*j9vhrdC!g6^rv1A*5){{0owL}k{=7DOv9fo zEb>_X$#J)eD!AmUZhE3KPdZ97unAXg;^3Y~vtAykU#=k?tp)_W zAgdYq1^b0Kr8%=k=(;I-6Xx@dmZ?zb;0VbXm@kb`#h{k>=CSbx)!vQ^g-T4YQmT9J3!eiHdn^l!J+$!UX~ zb>QRS=l>Qd*)pbA)xHG>?*1iq{*m}X>e*fG1nhZRA)d{28H=1;t;Tj9K`;|)KCBkG z=*}RAJ{|zJ^CoGIDhjb1Ro2B;&=|U5F|Ku;WRtT1&`FLr8 zw1?sR*?>GN6S9nD%&ifxL462L)pT|TRgz9bs#W9ZNpMKdZp58KWwkunrqej z^W6nvk=m6z<6B5oc?pj@MmIQ8`LY8rrL{jbLn|&;^N&_*a_m2hYHU7yX}@7yf(c+X zqbDE`yVBqEe(Z(&WnywNhcvXb(ex!0DLsQ+nzp(Vu$L)_FI(O<@>y~Z5zH!7GrZ2R zfIvoMrREztop5(~%@QiV2q)E4NjN+Bwo07?XOMS%QksH?1}Bhz7&>EZYLS5$e)oqa zK1twY*=6A=_a^idbf!EVY3qIu`alkMKz(1-CweFjf{mmbb{2`cNwrOWQZB#YiSQl} z(M#oBItSxf-U8R=e@7Wp@E)7}bL5%OK8m!Ts{-PuWTAX} zR+O0xV}FxlQ^=c-c|*wliS``qd_SIUGY+@H;_@Z^i-zrH&R4X3oR-^qEXc}o<~y$u z@hzY@$aWa_k{!@5WBokt)>&~VwZPc2{AZteTU~nk@~Sb3#&VbrTy3cy&O=$}>i0XN z?vQ`4A3%>$6Ls!DQ8#&o54dSZ-k0yPE8_BZeG(tXJRg9$U3Xk-(+K|_fY^8b?KZoB zEo;<=WO?9BOqaw1Rw>D2VZ(#6CNxwp2hU*|>xm0yGuojEz(89OtB*mJkl2OTh7Lzb zAj>l-<6gAnZd2V4fA{vBoB2uz4kKNVSe2qb6OO3veS@`<59g?nn;fjFS}c}P(M^K8 zS4g}oFFRoa;q|(fK3JvPPC>&3kPr2q7s9xEnq#)v8omb*mRK$2d!!kG*)=(bj5!5HIquDfpM4>(U)|{Y- zR0$_rYLt2p*W;@R$`*cpn{J@&`{3VxR-Nvg$=x3!zkEpdlmSDRiW_ZO_}Q4&RjYbq za$6^n^LQk9{I)%D*LoD%ANjb7Sg~7wf8AdvL}MW+%&3&wmk4nIrm-f^oRqdLHrTvz zWM|8=sOyU{lHf7+c>T%AQq*=C5-dZ0QI$<5q3kwG#_=SbbMwFQx*po{pj|K~^(4#1 z^}^b*qpGUO)pCf(ILpqL<)N2yno zDkI7VqNdhDd_K?q>|g?hORLhN=SG6Vs@7(>`w5QY#h!TSq#mXSOwix10ajf{4WChP zlP_$r;rqiS>jtEVF1|Y@YnpL4*TlV#CyB$hYp8CT^M>b=n*wV39aiYo>ux<04c?(W z*>o7ppFyEAofX_2E(Iko9=MV=9O4TbJl<_Sr1tBJrJX+QZ0I$YeC5So2)WK;*Bc6> z0a>X%<`wI|8U~Ejd$(ka80Y#cpV8@*8Q>;l*e*}d)~&sS?{&I^qGt5Me0@vBg!_0) zB%Ab|8j&%dZ6p=cY&`d-H~yAKpqM%6=bf~WTn^eRP3H7HiRa2`iqa}pL7Uc^vB6cjd0MF|*x2;4z`hUpw zDH95sSig?;LXoNCc(TTdS-T0?zgot3$}hZH$6_2V!F4=_ST&EaQ4%qh#_%5&EV(gX z6V8QLt18R-Y`{R$aRbwo)qlH433x~3w~Q6h9MM-ii4v7XjJFZjQNJm>?#56%s(P?x z%ls)W>7mHOi#+O&`jeZlo&PHiy0ZFDHL4tWztKnnqfBl3IK_%FvKD2{EZm(lPgBIb zbPOvbJ6oJOH=R{&E+8C1 z``#ma64H(=Fw!m&Vfj+~8$_V-9q4gFr1G#T-;-M9a}pmMFSx$+ygQ-rth^EgN*i`vEKfDs2uNG-uG%n#q53`ik-EG>Druoi#TFf1HF)!~Q)_3`hA z*QLQ8Omk`}t+`el+CZ}2Id@8Zs=a|^^FQ~SF%!1M1Hw0ey;*h&g~^YSW?it(@i*hG zPS}LZ5;AO9BzMzXWkzzZo_y{f&P;`mARw`Z3@p? zoOzVIJzM|xJ%fw*g;*j$oA*qhtrOMmQSkiVRtGEVjc* zSmmFW7lvhRHq$|M>jBrz|8B~)TqrWJTyr>qh*$4M}3uGJ8;$B%SWY~7^$Db(3 zK9$4zn1xf|$#wpxvGF-UcuU?HKVpgT{aHUY*%=PwMWkg_1pRD$zQ73=B~P`9GN##y z-|6HTo+)OB-{1cm=dG<`<#L_{yx6)Uil-#TY(`Oqzkz5CUOZH_qE~r>%~O#cCdDsi z6uBiw?@&UWF_9h^z*z1dsD315FqK$B8)mS_DF;n<3T=z5lIdH?PlZfLWQ=pbD_Us3 zhh?0dpvu-Qm$=xQ@2U#spA9WsGTZ5N`bb*oI=mK2#G6}b$Ts;~N30WFE7N8`GYT8+ zCU~vUTyWsnMT;h+x62_DHqDe;o3J?MTfb|}y1dq=oO<#xwX2{(_=uZ?3>0LGo>X1b z_f)F-9|E2GgQaW5Bi6qTDED0rnsBg*7#`+gcgED+zu6Gh-9NkUBaJ}gGe%nS)y2(~ zoNF$6aq?>ywgv@>Z!iXmj*;%|)229`Sn*ig_ugwKYPPs2t&ewI35f$Tp$eh8FlluQ z3`)8VLk+8j!Gl*{BqU$L2VSE`3=IvMD8)w@E9Z`mPBB_=_04{5v#tox7UMyQz9#Q+ zviGbj*;#mVf?bsL+?o3x+8B7wlCSBUA_9G3_pgWMMQ6bwhh<+enrM@+D8VH8O7wpx zTx3DKSXYxmcQ#;m+h!c`he9D9y$gHdF(ap%?ONh+)8|%W(hIUjR8`fmb`7lILRX|e z|2`}|=dU}8PJ=J4EE0;;!tGmX{b_-9A#T50su|;LO_iH=PgzTqEdKWw53AqpYI@ZrD(-AgJ?GN42!Gu6hdv6pb@guWyNGj`zC zNEN@JqET+L@-lld$7_ZSR|O%1hapWf z79NOC>ba5o#RnG#h*#4;qpjpwqXQewbp-Hh;+a4C>S~f_in9W0vyvEI$MOBy8eLr` zW)mv?{Ogn{G(D7f7+$4`0(Pb9bY`82S82J&t39(OA11o$JR$Z(kYSt0ZvUZKlUP7b z_EmebMtENTWjwfY%Dcj;qC1*%LDHJVW(G^KQ2vnG)_Snccj!p@;rASECu>1)v4g}^ zn+9+>JVZc5FZNvrU^4RA$xHUd7a{{vPdnV)*LN|%b_D+tBPB%5@s;4No=P#pYT$Lz zvYREdt}g6sV_-e%2F$lY{4V}=g=Vr9KtrY*aE{l_f z`=IltZ_NO=d$A{D8JkjD;z?9Mv_)>^kU%!}nUC_MYkYxGV?B?*3l^f^!e9jihQNs` zt&9FnQ3Yxu=o*D$yqD1+sYNB=&-B#Q3>~QtyRv>4NrF4P%HIsMHJwWe-%*XP>-QU9 zkPW(^RB+Y6_e%kvEkl{{^UwC3wH0m;!yRCOoj=O}Ag6bhJ^bKkPEj(wqQA~OZPz@l zO`hVlyB=+!Dp74)R}H1_Q@Zx~J47Z_QD>A(6f z&!O_>!B*l6x)&0>uGP)7YpLX37${svBlk@#r!8QuS~|2B=2~cNje>H*HS?mf{U=sNiEUd*5MP0Qlj_2LV<2mLSWAL9%5?RADfA6d*dKho=EAer ztS5Do13b4;r>|7VrA@V;6nuQ81!+j?+%Mm-KZmJN>KL@r)ouKFW#q?2paZJ z&;3xy@*)~!PT>iVoj}836b~emZ>m~B6mEzytzpOoo^C(;<9phj{cg2{K3A8V;J$@Z zqQNSQqy1&n^p>jIBuQBWAQw~=@Y_pd!a<*-$zg{rg2j7+-J*ZM4BmR|3-V- z+USnAX{f8|uWhVX=)@|I3RqtqFcTIlxZ z&m#T}6`*d=XWCARb4X4#oS!2~E+6)vKn}h}&z(R2?%@QZ(<~0%Ky7HmOxu>6FpP4J zKk0};2aTy%^U$AZ#Uv{#;pLR=%SJ2u<--^EgLCt6lqS34<3Un=OR*D=pHKEqGIWMa zjnMo_9!0DhT!JH{UYadf+{l(A3QQekJvZQ0aDuba-(zmJI%F&bn}Z#bt>k;bmxv~Y zqs_O|(u~#nW}Mmefy*9lxoo#m4XwTv)etRw-Kauq+)-~f1HH-UqI?C{%Yl|@n?{Lh zeAowz5AP&H%AAuH^aB-Z_09PulB*H@1N*WJb+14p0E$X^b0AfO@}$~LPX{F6t<0m{ zKzjTRax{0^;yAX#10@<*+ZHOOP+vJ?|AiCeS@N$MhUn}q_Kc0qynWiR$TiOP-e#;4 zP#p6mtls)ZkM%*9^f`+py2K@eYt@CZ?)OOr`fx=(1M%*R#huJQgAv| z`S&uxSS4?W=2$wQrkut+CkPB=@;gt~>ht1eb5prLz@0CGlA8nQ&*n*bP9h0dnF<8Y zxCfrLy!+pY1RF8HFgAoMdh+J3wb#`EK{cD6}PUi z3=6ji(L&RHcE?H5A7{KPddp{6%RH@QKM8dF$Cs)4Rdd?*`%%f6*k&b}jKSyxEw7JY zrDOrpQIUCa$~<%n=vItfm)K@nw3aANbQ!gU2!a8-4v{7)0gN_VF8}dA+R?m1Q+&!wYCI~&J1%gl{1s?k~F5c z#^L@tZb?%TE+5gfOsZ3$=~G-b9Z69Nk5j+g@JaDelu2#8Bzhs$VDp1L_7jNwmQ|am z;nb$O8$w~!Te%Jgnj-9WZ>im&P2;APHzRPQ2Ii-6y@n{5?~~YmIWGs_ANNjWNq@)J zUYp~M-F%hv@5w>;+QM8JMWj%*${IaX-U&@v)=?uTXL<1!VFrk{v9 za{RF6SBY0++L6R5p*wHnp24HTx*{MNJda*)vT124w-?P5)&tA8LR2bRsN1cHW4t!T z2Gt%MJiETN`uO@|3wybmf07}-cd+xIOK(2jxb5=ArjxX~AV9 zW7p=F!^6WP9`iB z`~4da`OxnD*F?6k?AuQd`_L?P{HVNtAUz^`Wuj6Bq&9Y>d!uJAvV;m} zyEQ-cb`EVk`@;OvC#&|`F+2?t@5eP5pl=ge*i@LvuQI_5pig3&`Le<~5M~@0E{~dk zx^evTU1*3%9xfo>fxSBT52cfFCBqNIHZoFG{rQJ5sr{`MG-2gGWP88hyM)%1pofK3 zsjl|!)cb?1qIcEzUP1tcQPZ(jO_9x*Y9{WHtF@C~-|&^@z6D-;4YrcQpPt zqP+JbZb@IrXu-%Weldq5WDLeB0UpMJ*-^6f^drT(9-9YW=j45ct>_Pa(++Y#GS)Zp;3n$4i?LAc}w zPsZqbSh}dqy@fBYRGaGiYd~`|&DM@B6ZdY<^43T399C7%R+P|? zD#RT`7?E*wJ$EV@4Zg&z9~-x(hugR5wf5uEOAKb6o`%)?+&v@t(AlR!O6kGRaaxP(^|(PwHyfH+l)bhEN4kESovwm_SvZr zfyrxz&pR(T?gCRXYfpQOqJx)vFqa==lD69--@-UMVFxv4co{z(IB}Rb{?&uye*iPf zbJs?R!C)}}BZYv{r#4z&_Fq`}wiU?87!SWr&&_N4d5qX@6KI2}dKC=O7sd@jtE%-` zZ4kuZlo!xc<4}!LbYa@HuOEk{q&Bc!E|Ptl(y_fxB;8T3EUOGaS{*mg+^eVUhB7Mx zcI(O>*|1yW1OAX0J3q%5O#IP;M?y=qQ<8Yl3%C9vFVQ!#aFe+v-=@>k0-pnJ0F6B# zHF*L0;mV`P3MPxrx#ft-Q0oZS^j!B!s9oXIg4g3DXsSOatW`I6Z{R%N$gCfJEDxyq z_D^;#WPz$+=s9XPsNaQbtz}GGw+%|S6((BZ1BC?q^TwgSy^l}2GadFTo|v0$b-f#2 z_f~i=d@g|h>=}u_Qe$TVXpc^%^ICzM9nH63ZErJ?TVn?Sqi(q*=R*w{I8l&VMXBEp z@gj+>UJ^>Zs=HwRqEC~z4)@m=RB_D1OFtSlT;%FCM+kb+P;=H^cHMs`KA|H=$CB*; zzSxDTvB{=zhF*u)%8u4$o?B$>Q9wqoJI+(b+_}Jw!tF7v@fS zv3`~r>D}4W^+BHcA*k7p4dojs^}aVk_swP)vRVLdBq30Jt=??D(?!^`^=VN2$PboY zz}3YidgXH*g)>mOUFY6|4Rbh3L33gQYy|J`0S#I=M7(3VmPW%=Grrji8le^xb~o(r zyvzO|D~0MfXMMNl+@4MB^(*~x0P_K*rRVo3K z-m+|NKkN=Rp4#mBxfht?#%g%4nOP-;<69qnT?8d-CPaYJCDP3qL-OR%ipjZFp@=W} z_4RKQ?+mXgr@T$u1E0lX7>Z(h^G}#ubK>O%m@0A^fg<7%{K)-^Z$xllf zEigNyvK9%uRV`n@@<2+q+1t78Jsds#Wl+eslF3GZ6B1$UfIjQXkcaMi!%(4+x{rI1 z^1aAT5k$>w+nGI~&ugjb`JL8P$8w{Uo{q`4Sje&QjMFqY#M&)W<$S}R^yqUzP}kI` z-;SG#6;9mAwV3i%u2|RV=rCG2ADH+e%SzO&X@yO;`v=p?|Qxwl#WM7TlmYG z`0chVcW+wGS43;U?W9KEx?ey4D=HNPP7F`iLwr|bmfD_9uc&Wm<>Ts3OO-iM|h;G8KF|D7s?hoau-R&YAH@d%d=nVr}h5~>E9_gbGnm%@NECejJSk}*5s|WNUbod zNbH=uC5rM!N(*9!rCA%cn>Ff{-NlmT6eYnj;l?e1|0K=2HYy>fY8vOg#J}MF$820h zM++3rg#)CSjhg>;Yb5!V^IW#^CEB7!07>mvOk>PmZnbv+>bkl(R3q+Ud{3;j!DW!x z1b3Zn#Q_nYNB}#|7FMlnF|$-G#&StsYUxg-Jjk1aA%$GP-i*_OLA_lnNvAk%50(O8 z{Tv~IcUTTW{nMBCuyYr6r`Rf&uLP~Itmh9O6y?u$woR0bjjXFi9rTSbVdq?BTwCG? zX`_EDJ=TEk+gBvq#ojF1KG?2k9P$$QrJm*EUpR?cpMS_7oNop8F`LP(PFSx?e0vel zw)Wn$ri-4W>uyH|ke4(nw#t>V%4CTS64~i_DOOIRhz-|{Yhez~a~?HFzxgKaAqzbp z&T|no{cp-X3dg37HlN=Gb_?S&uk;y^2ptfwia+ygYkt!VIiWs1TV zuCiE6B@7{wWT57fK1ZPAI9L^CJ$Lsm^p?8=%(iQ7XhvCdUR|j_NaXxw)cnBXA2nQG z4D4}C_mP)~l*4w!i^}-EhKsDy>VaAX-OkZ6yZ)86CeCd+Z!syRJRNKokA)U<AOe>Mj4TlUOe zm%f2%rdT9Fz71r>D3P8`I>zCZGuVL5=^IpY8>kL`f89i^y^nNEh|di^v~B1=`(f6^ zsLIQYo_Oa)Uf!RyscuzWPwpR=a{jrmPJxjHy-t!-M>HeH0uLUvC`#o8C~A3~eQ_-c zSmC3+Q@^SFRQc5yTRD>%xY*c=#<8$>Z7c07+SQvq%d81+tF`q#1%+~_TcGgUKZ@tr z*eowvfS&#*vrh2+j`Er^by|wthH%iT)x%y@e7VVFzZFW+e-i1@Ci+KDGIuO>_8;un zrYc!!7249ZwSFbIPab!p&bE)$uYA9crhk1Z_3=dTRqd|{cipjIZM}qw1Uw=kNgE!5 z6{_<^aOw!b2=_me>;M*28r@I4B-W+5(d|Td&;ZF!J8z;)uQ%F~oz89TGYf|q+s^;4 zz8ciNA_|8p@)?MC{rk%13-xaso5%O`*y2C zbVV0_T!&yt0$$F-6UEg+*Zqlt6zZ5URF`P4U=f>SFaM-A{is~^9@m9La`#6S{I6y9T)+F2=e<%xu*%iOUjS4J}InXkITe9(M}M{JmAqTAc@p-9{YQ@ee*J(}@5UvQ88 z)t2JMsm2NBsk1XoTXADbr+F{f=v#}z^*cx(dlhqH;R`rEvD-V&jk_X!Et=$-ZTH5( zhgZsE%8gprfwFd5MrA<6Mj$Ed56C9%(Pguqiy&VN)kGBSZDPGkIr2B8jcGra7l+uY zLEGZCAYZ~=m>`ybMQYkp}zAeFX!wz@<8q~IYmbL_S^!;t`H?D|0>`OES`|BWR)l8q&3i za1b^x1N`3!-$j;Jvq6YrF^RI*HdkRpTza3u6*9-6fgYL9GXOWKbatkKkKc`K@ea+- z|Gn71(64YDwr9+*z@v$TU0!} z=VMLISJTa}VoI5hlG_A4aIeVK*Y^^vvxep%2|;MK@yT zS(*r(3rV#0$)9(;X8rXZb_qO`h3Byae6(@6e&?d_5E$Is1=8-HZ&~O&z`^vtes>mj z0|)HR?PE;QU*;uRLcFWum6bVH_KF~lGy<&|UcP*Fx%M$iGQ%8hyfz?r?M{r&qjlMT zZZ_r_Sc$&5XE^cK#n9l>p?TdTxP5rY$9QW(eC38RvARnnCAS4lnlA*8+YfK8I`4r$ zmhrrYB8?Cx{72XWWd?+@6X?|^vn#GRZ`wr+HT(4&S6D7qE#;K314(RB z0sWu#7I~42O0-@te9Dm0RB+9o&ANW!U}@V78oB^v)Nu}+vm^@nJ^{Y#+opoC88bCj z9PZxHeMr86((vtbk3v0S^r0*noLx*=|FD)@J#8oBeVFCAH!0gAaIE#_O3XMElHC<0 z3PD{qZfl^J-ey8RrVYfeXzj7D3s9+sRYJW{GWaO{RJPEZ-yh>J9YA`83tHozI}xhf zl3$a!FHm3<`e$-Dtlm3oMU}P7)cKQeO6&=}APO(*xbjdyjI}Oyn-da;M7z}sA5vT7 zXy*H>oK7VN#B#t^Q0spu9>&Nhd>A1r7RJv_kowWNw*|8XS&Zdz!{NS|4Qrrwzh>73 zHG?7Eh`_{-`7KR;563ONGW;2Xt7pHJ|9<;x5`cUgj|rDUShS5R$4-LvU~7!eL7%H%xz1_rbC@keDD^lp0BoFo8ycQb~Uy20ugnrs~_3Lx}h zOzj>5LS&nY3ac)?Ij&ln)j$G%S2P(wlb|L!x%5%E3Xxj$g?!_hd&b4<1;KOKQ|@pn z;paj&A!7w-g-nU3YmOdHrIUDKankKZ+XAi=zDyON3E9Lg_txw+ek-Zd-Yij7hq~u# zT5b3{SI)GSe*2JPo`XSwZJKT5>AMuH2!Bg$5hzb27dcdEdFw`mrf<8~Bz>XDh`>*; zV{vOK+VD%6L}ZU8{2`mcw2av~XlKt2O1rJGg1v6ubN@EUgm)>hklA54KUjGW@D7D5 zHcIUKxSuQ{Q1-ObBHDW=>k>u4GKViiMb@m$4B?Yz{xWB_FtDv@@QtIK)ir>h_LHD>X)`RxE|)@8 zpZP2WgXn`)>|#7H%w&7{`Nw^a&SttoS1%0%+&s{M*o~|y|D0lTVlw@l{>e<@0e!JqyYE>g9EP1McOqz8 zxy??>gsSj7Ei?0z)vPiex(Dl{LE&Ah=@Fs89xFSdwmgsJJkG2PKDwBp<7#qoW}>01 zOKRP%jIi`#;zz`(U*qwd=0_f`KaQXmUAruLeEfEdPcJTx+c&?lBNIpS5>B|;n8o;G zjJ)LJr$M->7dW%qpUNE0z58+BQ$FN>QW01 zRbQi@a=0+26kibirqNmMVOZW;OK*i_?=lBwFi=1bel0>1LihYi~u} z_FD$09CH6#MY%FA6)^}~#BXM@w5x@1{X(ybY_4heSrl#SA}x*>)bzy> zkrF0}$%LaD53=X{3hdo#26XRr?x>c?GQs4AUz0EG*AtC|9fP#LFQldqm8dD~S^sk) z;J7RiABQ*o%Amh_j&0#4&RJWFE!lxn@NG(&!B%Xjtu^^ctBr4>7$e&U(So8Rz<*N{ z!~X6*sPEEI{5*aP`1R@Ih9o91@JT~{;T%_)P-MgdNWviRsBtF`~AjPsw>Q&NKdAu^@;3jmcmeQMgUVY?;E27H&g*=` zMC}Jvf7HJ@v=;*rS z;5eyn9!1?KFg06$v>XxKu9~9G@)vs=sB(2N^2Nkn-hAh`Bu}l_X;E$_C{Un zwTxzl;a*dB)5!+kpn+@78-I8FcjDRjT7*1fd6%bV`g{N19^atF{pZl3p{vZyX9-`U zjLv^?eAAyhAZT2TU|qU2pV%4{hB$w}|K<0r%M94WxL=ZWRyuM7tNAM%Ny-HS^ky*z zgLCQxg>Ek0Cw-0|&@0a!Ni$X_Kr6?g91keMOV4G7cjdZ*VBXC=;;dl&qEl$8JJco- zh1PjKY~PR84%F0B!x;7%O$Ew#)%9!MKT-IYs5hDi>;zYC$r;q)q|D1Sx9{DpFu9-B zywY(I%v+kXJChm!$mXD&cZj+%faa#0`rv zZKL4J9g2c(Laicn=cq39A+Cu|7R{X9#5a)AA0dTDS_f4Fjh@Xo`)L*_fxN-M`_6 z6zs>=s`gtm+sM>C@k>eE!hr(*SHz^TC$83(8KiK8hLGajW<_%7@>K-ioAI;bhu|HE z_id%?53d^pIFt}g&-`0EP`g%=mE)`i$sFwSVKuYVj6L+oLB+(-zGF^?NZKI4%GPbs zVz;VsRoX;|aUN?CF~{J*@Xj8P>BP=08=^hO2#qITz=_*L?;5 zex4PF{;48Jld$E7HSyN*M$#@!s6)6$xIlZO`ObH0JRaG_C9!WBsY92^^4?R>Nk-RN zFolSooA4@Wsn34Y8rr}f_FAIC{!$s)RpUFq8VXnKZik>uw9GEFPkcyLcYRi?(igV6 zG+#4uEXs?(+r0A0!S`RY%CS19Q=^VH#eyoVkKL*)^Tsm>j}G-Nnwa5D$SMlf^TM)? zC71=jw5GPgP0YO|)A&5#h`c;G$)R)ilVnvYLBgVfIcaeE^Nzfv9MLh0RWf9LZ*fpG zxcZjl9hJGc`(lS0owU!PVK1D|Sww?}ixiAxCHqDE%--H_sg@j|HH9d@zATq3^8PBF+WsG4B z=E54!qmq%CpAXZ^+G+7=PtA-=zk0wKjMa#8h68$V9+GR5jvt!dKpNHmcOnhu@!ttx zq+&o_gLR%(k1fp^l>y}Sxc~Vhc|@*-gvsNBm0iTH)DV!xuT;$?E@ zaS#7Hq3z@NLBX=}xl?19k(`_dLcQ;bpM4b{s?Q>D*T%4^>8K(y)Q>PRLNHRNo1@&O zFmU@E){Bgs#t5heI!i73k8`k_6ir)x-lMAqs8faaD}mY}Dc$$@jtb{4^NMPT|8G*_ z>EO%FOlzf$p$)#j)e6AqU}8-BNGJD+HHRe}!N%ApsmUIy1QYpoTLphltDA~~0lY+O ztV}P!81%AoKW%2$JVSn;%0wwt^>H!pomW*;2zy@4Pahuy5$?_k`CN=GHyxlgm(NK;H>wq22D^yCP?>h< zX5$EW%w}Y*2wOUeMktx@^vck&cyJUpx4;!GipE3=?895u!a=*{I8*XZs`1ckml~)& z!XPwa*T%ep5l4TTBnpnwvVGFuECIZ2-xb^6_tq(xw4nkp$Uh%ri43j5U=2sSm?nT> zqz)q422!`{o_j%6N zQQ$PR!U%Wk7ierzGV|RASs_Dq3H;V>j@4GHACURB6K}Tk#@S5ffmD$?y|w9ZU0(;g zP^|Tk`_NIPt;T50EkZ`F{2RrFjK4EjtnFO{r4`#;1eVr~Tg&XiYG&#+6*Zc5)kNoSuig9c)*QsB$|;g>{jvk;8p z(V(>t1zKt|nU-P1s+`(Q%2ELr5pv8}gMk+3BNUcl=OQ-zV)%nylUO zA2&6;|6daMuf~`W5D(ua_^S52OqZT3!p=F&Qu>m+c?Za9c}R7b@m9HTcdw`)C04vP zq-mGO=Uc|}{rxw8RXNKaW)`|9;i~4>1KE9v(ifiSpgp81~U34TW)VRIe zY-Z2fxH8Q(w99N)I=ZJF-!fqyJ?V_HX(^|T1;R)3a;C%TdYu$gy$LHDAARdj8b2Xd z!UW#SElY`%Dcemc)E9*byaHV*=vZUoLq}qLsqcwr=6+IlE zxIavYMUMc6EOiD^{OQ%?9XbR_q!@V&*7Ij2?(B5iU7rvi`0s=Vg=)l*!AP;H^3K6o zZlmz1PBY!vhK$hL2jo@D(najK2lYWvX#1)cS|HMD+`wb&GA|Tsx$iV6QQ=Y<0(Qb_;P}SG6FwiLy+3USA*2m&8i%E4^1&$~Xb+eVdSo2mE)U zC9#@q)!gX7rS-{Mb7jNz1#gOC%S?VjFgrAD>M?HEJ->HZUJLGIlpfhh?LVoGGvaq! zggD8qecJE$XePIpek*m&e(KE%Cx^!DQNw{{tGf_VwgxptdH zfA%7=m^iSu9fIIs<>eB6ERxh^!viX_Lb}soEXd&I#Gm?bRqUJLZC6UFivF(wYai1^ zHo0N+Y;fUZpR+CPDgg`PWHMB}wAgE` z>sIl2GgolouLrb>)}x075R2?{f@9}Vr|lH}Rj*H8_WILhOb^c*bipCd z%Ed?e#|!MTYRKxq=cCvB%m~r;!)7U(yY(&e{8eKW#tx6MN9!-s@Ycl{%0w~rQJ}n((<=@;-^*{gH$ioX}yP{B~aN&d=#}ej%3;Lle??AhgcyScJ5l}O{)o& zn>0X^H2eqf;@{+k?bw3l$9Wc#tR`@vrn^7yG+2q?2uE~JVumyj*&@@(^{aJPezGj_i++e@BE5ZZ)l z)Ak`3>N=F}8Ck2^&xSt{^XL%9h9RWA)+Lw}&=O{6YVCGzXvid8Irp9(*t7aOU(4mV3WM6Ub?6vWcljcHh!cs?nBsvuskvf%^$8q! zxy0Fb3PKH`f;6EgsAdz-ay?~FOefix5#Vcy_P1>7=xareKPDRMmez-}pvA;Oa$Oe= zSi;JB=ZmtjN`yKE`GKI0Bm0h{pBA?ABtkYA;(2Y|lS;QG34wJ|H`gfTpY6pu)YQy@ zRiWlr|N3#yF(2ZpBKrdI>t5!u%9#=dA-Z+=%S)mEP6Wo0w8Ay5(iw>adS406a-h_2 zq-eHH@A}0jM2kjqbyXoYRwwOU4zTZ=nL{>d6Am}&VO5!Pt*g=?!)3A*q~8~cQbqW~ z9i`~a8nB?L`Y$g?Ku8PzR#Of+#i8J>Wlr`chB2P7j2U?kA=fW4a*<-O!hfHW0HZT$>zq) zo3s#_l$TVS`%alNyxrwk9uh=~#UqFh_n}^-*f`%dP*YG5`fQhUHPI^OAyTZnKbz?n zw%}GyZh4s7*f+LV>LjetFF>SAz>Ow$S)&y(vNd3M0oA8pk0Y?&GBn-aF+kap8 z1F6k5VXQ>~=B6a)rz;d&Q%6qacnzb53ksF~05PG1gm`5q&&K7$cZF{O@snQS-*r#8 znyW@_{jYbV!uDi3)oQfS>RpSbBAgnDr1$lejxPw02KT9GUUi~~cMP^JSa@YM_XP}1 zRG2FT=tv@^`q{Ga$}18aQQ0xj_fhCd{B?UvV6s4heAcT{i3Zx#GvtUL2ilOo45N03xJR7!z~npraGK6i&IzV{1+XH-@kI2pFoctuWJf*K0;onu2IBM1gZ(L7Hn_UF{hq zeGT^RCF!ak?BqEEAGIetK~zJmnEsCW_=_|5rcVq%04|Rb%`lU_`&mT{n&W69IHHjm zl%dW_^5iN&lFP`FOK%RtdcGAf!7HmTO(t2#CW^Up+J)}!DX{M8v4P{wGxsm`|1g{) zy%rPN4|dgZeq=$ml(!(Eio4lD~kkF9GPm5}25pqS*LOXwV%O(u%UMFx1Zvl_NL>97%{Tov`W+0l?> z{drkUN}~~4GkNq@4ngH&zKohq5yH-@%O)Y48BK;i?q67K7+7seZ>qhnfPrYr$t|zs z)>bvMU}2%~aP$X0lbX>ErFOr3PLZbx;qS~pf~j@23QprW*uwZBbUDEr-sTC~wjk-|7wyK?}v(Ht4~dwJu*yh6EVB6Tm&G%{^F>?Gkm z-0Gk#Ab8FeOgH1Q4;Km?Yd-!6cqn3g!KCC1{Pqc#WY&p_Q_^LAs?@{#H5%=4kLxz2 z`Qxc)ZiOr~Ml7nh{W9!3Ox`f;2CgsS5pXYhmcdGsN$!nvxYzmN_B6z(0p8SXTogu- z0ZX>0mfqL{IgP1%9X1cL)_r21d}80go*99?22ayXBn*DpRFY%*B3medUd5)i5)kzU z_C^qmi+~rHTYGT?Eqv{yXTuR*J^J2sNFeXnDck=RK!%R|=@gO(#+`S)fGWRe`H>_p z6D;RZr*>)Jz1^+yOlXvk4CC#CQwlzG&YSXd>rmI$_zoWK=M)|7xq+tpwr% zdcG6rD$Ci*CX>lg?(|?Xg&RPT^-_Ps;jdM^Y8VREpUky>-n+E<$DJO@*}xR%W|2p` zvFx5QdFg2>YbaFS@%r_#5Tp*Dko&t$NqvZ{omngI2aJ3N}kc=}QP_XF&L9Ni_-Jx6$oI zzDo~m!P1m`S^`B{c24)uZ>=3vWC*#%#7c@E4Zl&@wQ9EtdoTFRm2>^e9l4qGevDj0 zd1=x3^2|y>GgL+Y!z{|Og$<1M6eZMWG^S@gY$8@TPHCtXIw<~qHg0RmPP+D+I_X@H z`02kI>g-ZKKk`w#f3@t@q5YW&L+f9I??`5emdMek`?=|;U>nvj5}4noHKm-*l7ff# zRRj^zk5`*QqoTr8*P$G9X%BuuM>g+EbR3X;XsQN++NBTnj5vrsUValQsqB8K_jeft z3pZ%Wmkd}fb$)x~kb?6~DwtJN_aK!njjXz1V6~%LP$g@UBQfD+(y76fdB69+Z=V;y z@MHG<+AF_FIlgOlw3oTycP7|69JKbX+9y-D$9oldU|%|}zXRpWI|9>(lS^Hu#SM;> zHb!{+@!ihHmy)_EJ|bNb0)Vl9++25Js$YlzgH#JG41`h&(TvR7wgOw2KTGNuoi7*a z{U7VaD?9u3QCjY^4qycvbEr{NbXQ!`nbmhi>DuRsydXnUdENye8~Ajb>CFl zJ^$7xl7~s#JXZd&;;fmHIu9zsrej-8N|n*P05&y6$Zrg26!CP1;q!($$(mqPsZDfr z+5D;WrmZT|D06PnCVmH&s&-1CdnYJasr=_1p6aG5q@a9N&Vi-X^TVMZA`BA1+dNMa zcF;}MNdd8Ta6q~7k;L+-J`ty8y_bN)NwZwanVUkL9m8s87*?ATU*McC@A ztsMgUap*Do&l`-XPQZRl%FuoJ!CU*dGmj(MFB@f_S2cEdDf)%%tkwe`EH$ypQ849X zr_DyIAPg@k^_anUTk)Rw2M)4V0iDmS0wb}J)};P|L=1Db27)eT9Ri>S6P(`nQx$RL zdQH13S6p{^_3%pXpjf-1$B|XK?*O5}C*>GL-I8%GxI1@r9#1`U47*TKMHIpA=QW)N z1it&AhKw+w3i)M`~wEMP90N zWhGp4@?3Jdos)%vZr9rnf?V9mkNc-jhf&tFB;Y03raT>sW5qlj-nxYI{S78D*v)(0 z?h_+=Q8{2}Rd(EF9_=*z3pqTCM?zz+H3a4g!;?nQ$NEajM`mKLWXtAYB(I zIHqVhdPChL=NEa#n*Qs1afuNd6y(hcs=@h`C#y3eDZ4gkZ$FaQP!3++fTpt9vQQBT z1(;9CG33a{Ur|5ac@n!wqk>OPh?UuX9BBkx{EU3Lp(W_qwjyJL8Dk3+A%{bP z&TRyDd`^N`W2_(SoAe!$mg|+X%czSxL6qq{$%TeOMIO9^=`L2^ZQE!jrK>q(jKUwU7^lSZM|_*jes-cSLw;Sk?3{;DFl8aYDFS@~fF z5wwITKy1OCmQ_w+_B>Feb3g0W(2)om+Zb&AfIjZ_rhVknflh<5)NN@d8}PrlnLeL8 zM(^kD-?FhSm!Di>B{?jBx{08GkeI=iq{|rxl#yobxgbc( zn+qj{j!j#H>)aLgVQ`u^YY2dYv|C`DtCJ=p>#>X$o8RM93gvhu+T>?qG}?Y@nBpHe z)7w|{Z;FyTT;`JM)GyqEsSUcVo z6cF3#s41YO{i(mOdAeE=0T>vl43Rlv%`#zRt5rgofl@Ti8J!_2rG)!aLTeg)l6&cz zAIg&HkZEIWuIzE{?^w}KBdxEHo?w?3cts5j0^EM1H6dX7`f|?7wEIePBKC09NT)*7 zl30^(ezAap+c_9nD&edw6=j9@baXKKT8%3gsL7uo?0LvQawFR0WT?3i12zVu(NDf& zLykQsu_h`|m#B*PMukZN=#9`Fr)$YH6eZXcF%keBdt(;_Q3wahb%$e!9uraS;<`Ik z%;0dl{^pz--LJ@1%i}S%bl7O5`Y0PDqUrt#l-mDgMzQmW%z%;S6O9GUg!y)>f5UCX z4YLsz7TLeEl?PEx+Yf{79XUE9j)($m=a1rg=1dv}Hw%$O4?Dv{ItUF-lwi=XabfNq z2JlZM_B?b*Ol;tv+GzGSfcAy;eX0Pg4WM?lUbu6JU+9T{f>kNcdlJg1@#cpeHm_<_ zwkS*l9g$ZS19{Lg>uj!>diIcfxf{EBkJ6&?fo_i0=Cx5r3hOEFA2nUMDKHM!uLwLf zcl+Oa!MF!m1L7hg>24_yuc(mGUc&mg+bK` z&)1EwpRs^QE37Yv#v(e2F*)8r81H_GI;Tj9hRC6eir^+ZMPYzwCIp8Ht!)h{KDbM) zB1mpnfGffThLqSeTgH0+o5}aOJ~vGJaNVbJgYZ-5Gq34{`Wf$R{JW9!cLb#?LrUD{ z*<`{#)~{^aj5svt`nZn-vPI=Zt;4(~a9J$Xo{%I*1IU+0e(XNeTJIGo zdEc-pr3YMoeGWZkSMKo_e~(M}|D40_H~#(7kiPgM;_*SzEgcZ1ep26g%FpThYljL> z&~WBN`B)W`&so%rVEi~w2TsuLpgT4+UEdjT94ETrlOOPKMD9kh{hWT?_aT$UD>i&^ zWf7(LD<9#@?)AUNr0>t2&V1=r9vU|czStty(QyBDvbf8OTo$(ysL^ zlM|RmRJC59+NF8^DNcN`zuZSOT+UudbMfB}R%H zI@SG9pr;p;zHuXJ@3se^Ua33XNX&}TnlRrn8^uv=H&ns-VlY4sXbDCRTJ?EQ@R*>G zL6Z5(B2PqdK=gjirApYL#Nu7U!^gbph+)04ODKgO(Cf*$e%5| z#Ll>U4oSF*kr55`S|M}R9c?+>lAx9*el?5IZZTQ3iOG`3#8WC046PcN2%#=BFxlpc z$rqoGiMcmrCU@ke+r>i)KGLt{W8z&;(jV$7@7jj#zW!lnn7vOb)wS2inHi=BGw5I@ zwW+bvmt>Re;Cj8DT-`9PqSCQS4 zP4+2UwM-|3t6at%xJ;X#_a-2s^lX}KrzO_=f-0CwPD50&R(?lG(M!+GDfmY_>YLf5 znM`2!>88Qe%?1d8=2^02f`&Y%vE~LFvL0Jh@$P=3*R1ejfcEh%r4YY^uG?$fo4_EhNBZ(X(a_**>GO>@Lu+dMz}?Z~bFQk16WMv8zDcm~#6~?ul8a z5{h>vFQoH)!XAJ`RnnrukOWSpU)!d&-yDJ&`EX4(t(nEs%7^kaKP|F!knIy}fiewf zHb~%Z!W2w?_HU}mj=YRos-lrskio^}pMnYh4xa|Q)7PC2UR5y6`o@hSwyetC!C`HvI|=e6dm;+qM-(aJy8gf)e(JYMawACI z4GvsDY;XCPWu!9pjjJOz>Qf9nk{{(M-Ns(#yFKqEQwZThXVtDsVncqF{J;fXE&h$O znzdyuO|n^OK?|i^4;_?R7QA$!JTGOK!fW$#{Y4>+WuM6ez!J>y(VwpXei7eOliUiE zr39a8IM3T$_(e*}X#pnp%qGkcbjLfvAaJ?8zkV%f#}Ptq;@L?+IcwjjZOsY*RO2_R z@!0g6)zAMjU){Zh#uy&oskL2i1>o4qx4LlT5I=N^D7;oZ#Re&C`SB9(tewVxM1pWS~ zFBfrl-F-e@|5nHnXk7>zl|lS6(r=s{mX7ebcx_e{ptwe<8ikF}#j$j=Px(Y8e+QuJaon7%j zeK(XS|GQo}r-DoOwltA2x+0f$s`u~$I*y+7bur1}ug9=HagK0g{V@5$(UALH6Wxja z6%H95>6jPnpP=@9E>L9#`pY`6#*YJ}bZde8p`ZTf z8rc=7#I~nK&)$oAdNP=(2iwt1#LkrwWEyIRhrAkA7b=tObqmwc!8T1pxCw}71p*PN z9$&B!R=ZXOGaPL@t5L0gMr{9YixJS*6Dn6Gv43|izjszk!z@8{zHkZmd$_d)^F+1FaR+Y9g3xh9Rh_=35wq}+e3o&^d6OB|uZ_tDdREw-L z#+sYtJJYPvC#ehWr0k7yI!r=G*q~twld?jIT19gfkbwXIIG}jNgqo|J zb0_nxG@x3rIVoKo_b>qo7S>_LNyo-B?IeBybohod%-Q zO}&n`)D`tE?`}N0^X=j%)#k5CD>nto${BK48SKv#2Oi-AqN(~~MEb($C5$cPmi%;N zwyQGA*os0>+HbyFvKk3N!|1t1YEX`#xBOyZLE|>9xgj7NPFgy?wiZyU56zSgf9aZi z@9^s`~rK>ETP!#SA|`R3D%#eK-p2SPGBI8qIpzUrdncpHNEg z8Qx?%+KkH57Oii7nn@Bsqi??WIZgiqBQ93ysnBUwGHNH+$-Is*L=95`$L>+MU*qYu zU>YFk4V)-tKS~e49sr9P9yYU4e|?N?2=6myxYbTX=tZvKuGzO!_=KWS$ z$tE^gMEM2UkP1L0hqkbY@o!@#_#u@Trsjc~8>=)Li*1)GoN>XitxnqiUoYRGPeo&I zVY7}&JTy-=q^>{PGAS=$+NYoHR5B1QJ>1&g&9vMtr@+FFMn?kvJE18Jd3ALbv~KLW z&sTLKC0Nkz;@A59RM9^l;KNP6*jr+zn0{$UB`zSMzGB2{2La=#c7r=OCidLxumN(G zqfN!SaZc{zbILu@Wse+Ay}sOW^IGKab30nC&Pke<m8Dxh z&I!KY{;M?HEi#y85!@2~s)8rMa__FHnBE6I>d*y44*&-bSGI=`MT^5Ar_8k$SoQb7 zimg1!kc=--$kAWp;K?61o8a@d3aQ>luD#5xX@7%PUN(8qPHIu1IKT`31r&y$31$=aaqhv#|=6Nv~LIBtC01 z6+2~=y{VB;>_d0wyU|A$XYi!Glc2TXBntAbscBY|xpBs`W>z-wG=U)#E*V#@a?wXL z)1%}`)X#{2YzK!4X74HOFV@o919I>4Sqe|hB6$$A>uEt8b~v?$N1eD9B}mY*k6!vI zZ(AzIOj@XWKH<#i!YShz8##oXhGL`HK2zg$*-Dc0g3|@&5u%ji1Z*6Zxlg=Cad`kr| zNxN^v^0_Ti*U=~g)~R-|to~Wd&R}}+XTDI;bbJg{D^advL(VFxd>kyQHb>P2vIdxg z%~FUPm!%fL&gQ8VtI9~A$(HrH2f^jia;k9()HCI24KsJnGbpzwI9)eg(0EthVqCO3 zHrG8m2X0GBNW|bR7!`@7_ML*s7%P(epA{1_l1WN5w<=6`w-iIqprSP9J-mEY!0hNzxjN>CZ?c@Q4y$}U?ib3 zGNLRZ>oy_n<%p)quY&_EEL&%V0d-m>Ri()ULpGa-@hO}aE2R`#f)1AG(RI#evdAgD zz6!!=7Rh>wzZazUeJncVb$|UH9#OJbtc)58E7ZunMICIJ6kx0bq#>j=rEXS==tSis z0~j4T3v;cA;X#jD<3jd8Sxn}esE=2E<#s3@$3V2Sp11YipP_&-T-j}q+K}}?WEP>C zQjeec7ERXEC2sdZ^qvw=E9%WGT4dX*3ma2bNL~9FNQK8ZrZIS`tK;`she6zg;U3ZD zAD9E|DfPf6xnQaLGAU%OaNS!(UuFO(X{&FuO+|!zDJRZJYg$}cQ0ej5rz&~##BJdFQD*uzo)y~s{5*8pVW>;TU|*29$IT*CE5+>3`7i=WrrDB160Dmj#}LY zfws)7Zd4%u)rE%goYD~UPMr_!@nj{-UCYn}Q_Lz4) zb?H|nLz^F58`i`py(J~5yBeXh=TAeg>~1%Zq)fX84a~!1a+pq!hkvuiA>Gt|ZzKCA;^|_vfgM)YBaazdQl^QRuT) zxpE3UM`8QsXIfqTzxA-Mca4JW&K#{)xZdk>iHwo>)Qh^ILX7*c@_E2|5n#qkDR8PH z@xK$7SY4pC@=}sRgkdsJg?n8h^4@~}jjUE?=f4kfk_LVdIt$ZAGn0qNU+Zen;?gNA zS}nl}5uN_HwI+p-SNeB_O+}s5#})?Ltnm^bo0+|t{_$I`@v zx#l{?DrJ>lmUzwMfbXHexVqXo*UJ*@R#-Es|gw@ELooYkzC{x7}vOFZ;NTm314YPL8vrEIE9oPV8@>cD@ z=EQ})a2U0zc_@D`9}nN*^MnVU8cq*O^VUc^m$PCMt}EwKtC%*4Z;0tJy_k9`-VGM( z+`FcCH`B%4Rv6l{rK<&GgNDr^M|G<$!SBngWT&Nq@4&Y5P)=48)q?Ul`|@ZfL= zx4=^Qeu8$m-qTx;!A4%PV;IY@qSXKn=?Ax2A%tcUtLwb?q|qpJ%Ea01{UK_peK;Wy zR$XcSW6K}d$gqQ%2T1&tDs-szse@ws!kIXQ+h`qZ{l=d_O8VU)W?f-}pDVR-7S?$U zKh&x}>^7ul8Iv8%Z^VAyw9Fg+?AOW&EYZ_@y)~K)jJzI}T7{`s#Ev$V?+0hZAR1mnqk{?* zDL3ics8?@N3fF9`YA<^RF|!Ae)w5=jN2^!x9_Rs|=A9}a??`gBsiVw-FGM-fI6vEn z$Cjx1$N+1_KQof4k~qByLjMnSq2)J$Ve%w%ANqv}TI<|&? zUwW6Dy=VnJEC&OFnTXNSaMUVMed^d`R)7+lbwPDp8rc%zBbPS&6fMUkB&R<8NA#uD zA7g*U4OogHv*9u=%88j|DETmKd3R~MpDVwCgmz9+)RbP=eHkHctNz9o8Of#HF*@lCcPi-ho8 zx5eS0!ZO@M`2kN!i>w_!WJOT9TNRh>9n_vaO85G)Z&92qnR@%{DQV+g;+&1xUlXb} zPZgSHUQdCJz;n-FGsYf+~v8j9vDxh`P)!9I}(I5WTI9ju85p05 z1<1ZkkoYS-#$S?jw$EN#AZi)URgk75`6T~0)LHD3J%$&rCl;cEtD5sfvxco3*bAn( z?a;KjU8|bV9JDu^tW@Di%#F|76=?uBH1+DZd^8n;H)y%O>rXyuoN9XOeXqc2SFuQr zwONO?KB&e9mQ2sU2_9zGWC*5717FLF_^-64(vnI@&54P`> zf_unJn%^#Zd;(k%NX)Gb3a>ui!z3x!Z&DZGid*F!4;fd16cIw)2;Xk(kCO_=O3< z2+y+Sn16ba@s(NT`A&5d89N1^4&>i)Q9vDJC%#|5`nI>S z?(5Gg-okr0nuN0bcD~u!x2WFQ3dQbr=IkB)cOq``#-2I7xMVM#3`I=r=umpd9*eT& z%%EXzWCecv>YDPD_)1wo;u0Omd)JHP@q#zo2H2o1=>{}IZ*cwU<=$dNWT>BH@c!*H8e8YXx`)K#GWlcHEoP8dNA(!TOfBxS0Z+Cc?9!}?^kzYL~ ziBf^!TYSz24c`4bUIjRwCERjpY-}&~uwAFAefON;r~$)r+7PB|C0Lah=g~N*th{Zv z6IV`rJ9i3g4ZmYth~$Ro*c+ay*;MoqXr-Y8NRtcZBmDwS8$?S?i8ZElY2BdQi{ge$ z9fe)Wn^R|rq&P}gyl>HAQp^$3+gNSGY$3STh@3uZ1%~fv);fZ(QQI+VMahUsN482# zh4OqVrRkO96Ls!IgkrVv@VzhaYw49bjt1}`vP#}<5Pns&*H4FvXTP7IX72J;xX32YpV)AOt69T}1b|sW6<%C8&7dl^L9pc)v?2{>ZYn{=jxuDvS73B;pMXbvG+M}=>9Ul_)mp!hcoWz zS#?!GY>7gEkPIjoF~W+TKG*pg{^qh(GG*8}XJazyf&KT6*}ZIs&wZOcmhF8No-~X! zv9MsPCcSE)1ID3E=Eds^uFJ$RDS4OJAr^OQjmz{bBkuS_7Cb72igVw>Mk%>?)Ua6Z zb682CkB9};;r-uH@6Ox4UpEV;uYJ!V_UTYQ2Sj2)IlMMfXRwbUL3g#(^UQtu4i|-z zK>$ys_HQgUqb1vdDZG|%-9!+(D$G&IeKJaV-7KplB)e_WTh3V;FI~5cA^QsXg|Ep$A~KG5e+l19JIRXx9T45c>6kHCwzT4 zDF6ocp6JLGU6)M@8RjeU*2zd{GbXpt3ZVp>#A>)^6jU&W@ehy+t$zo3i)hBR;BN^jU;6SJGhJLr)LIQo1mn7 zH9{}hv;^-0l2(%hF3~51;7?a~j=mv62L3=s=;1!E>tlnc5~zyFGt5A^OUi;2f6am@ zUn$$!8~S9)2465xBaZNt`@7e#4BjDw}QezzEuvNM<+<) z^4@5$rV6P1{#`7;PeP8ki)Y!|9@gf={bXDsMVkOpT9*zM z6~!TpN<-e+4IZf=6E$kbgAuQfZ#AYttM8G#*k1Yc6E9O1?Tif$8ZYUqces`?dp}oZ zVddrLo?~tW%aA3qyTirR84;zKN~nsJeeC9P>i42GjQ4XQxWfG%9t6Q_JCFMY;IB(> z&*fl(5kX;|Z=3l;JS|*EjuD`>Gqk|M_vw+McI$e$qNG~*$_g_d&Zz@H5Z1 zT=UhxPIbDvjjw#49BVC`wj{edQG{kMN&(c0KPP~dp`Q`}pwxF@W}^*t$YIlWzh>Us zg1&x*05LQp>qzy`OvVY8P}ymG^Jp+8{JfrMVAN-)5d2OKgZ!%T0UivTh>g0o_pn2R z4b#g&8@YxT8EBAp;68t#`9ik_JjHT3K#y3KCft3oW47^0BKlxn)Lrb^DLI|M&vtfZ zR_K`_szg;1fsghi16wNZ#QpR{AR2$!f&UUH5HKYw3sCLg{b*4!l99n_(_CBc@S-gg zL+|9&UwePDkwcv1iik(+H{xdPVtT(#R$PR_!?5koKN01L(&MzAI~#0R=4IXH zUh{dZ|G7WODvSS;8(B;H(15Ly89waCm{0m;5fZA-8kozn{jT0*DejgqVY_}R&8wC@ zv?&>W-O84!9x2aLmjZs>vPb>s2nIOl6<3w{ofn_o`phgSw&-xZH@J>cPQI{x4Sx;B z$VPDV=Y);Y3oK@veEe}>pj27pGjo>H?H>+ckYx==Dv4yBBYfFA0jS^bAY5vz!;1%vi za(AXt;zmNv+EA%$vCHW1egJ>wl*`*vVdf7Vl4aTQD8fKk?$>O{{NG)Z_u-oF@Nzxx z*Yo3vW)S)QC9k^f5nZS`GN+s%*w!YcEUNS7t;}$RBKa=$m=*4&_oS4wpaVqL&}SSL zmi(3CH#E{y72O(hu(PQV3r~}w404{LndBwKt}Fo=g_W|>P6`NMZ-s)?6M|}Ma&e_7 zCzrU^!NR4-*c)*1jc>cw|IAD8hnAuJeaHPt(uZF7LAwaOy@4sPh%VuK1Z=8L_Ho*e z+lfm{woe6>a>jF#IfZxA1zy=HJVDm9w#wCZ+5;HJV^f`lrH!kij~>bOBmr0inMnL{ zy{8fo#bAb4$5JBDS?}x`WpvULa+nW&jwA5XA~p0CJy36Zhl*Xb#&DK60&R4_y= zgH6**e8YgUTSKUNS}`PFY%|h_-!jIKF@x3F#MI)vH4`?*cbj6V3Bd6O+==HyKWnI_ z*bVXuZ~03jB#Hrjqii?78NDlyg(K$-oUYqxjs4cTe79?s)Av$Us$VUGGD~!F$XW`R zt!Zd#X#hK1zp#!4sS~@2>P^uOz&&e1H?696cw{%jgd8&6?xZ|;o8<#M?}-+QWshfB zG_Wi=twVppesnz;nruLejZ_U(+V`(*>gIGd>2;~)hM#uM1zvkOdG_r24TFGP$m(i1 z+i@F#8<@wxYkRRUl<>Zq+Q@!i4R4xZ3^*c~bPs||b7`P@uIc%eXUw>qh;K@RRcR7N zjmHbGi=&g9p&LDV|I%k#(S$=>iKX9wqa(cvYOh~1)|^}sK(t{cU?OLhSLsAHOJgXw zx!IsQ;F8Cpwtzb9y8u=E7dYbArC~)^kGc}0$bZc(EVT2PNAH%Z?p&2?k#@0!2klL*6jP*R7 zCvI;vFO1*+_2E>6@}Bz?y_=$P*=g@8=sRa+MeN1E7KFJC_^rb)_XVjJhOHjA2YW+} z=W(4OQuDgw*i>{g`uzp>_1Sd(OYey9Xf4$irSe@k-a#C$PIfO18+Te?ThB~)IoFfp zHRTx>?J5qU*jnBzW|1FXBg2n|neOBiYRAKKjj9E|n4_>?4=<~a|2YxScfFrBReL(q z0}v{G#oLCpK7mXvLYo@F>MwKqq@VDyHm;o!OlleNF21V_dQBE<)tqZA=hEq+y56jY zBDA)bhZt`A4p&ude<-4KjPS_O(Mg^f1y)Rh*#}0np5*1Fy`T21j^RL+4D5f;8(cUid zNIuvp+sxpL-QK`#=gWIbBb(uR_uD%`=5DhnTWPYWs5EY5LEJPpM_D1p9we3kS?GAU z8&41^W7mXI7NoamoW(_b#PsU<2x*g`9!Yu?@*Yjc^!oH4|`Q-7D= zdiOk)eB8hIxnqv^Fk71YT6>sXyR$K$F&CmE(C&K26ph^INsjUqriXNwD%&tXeG!%> z>|OQaVf;3(=GNc6*IeC7d(^G(4)o+?WjVgeN`q3a8>6I~S;|{`9eFWi+ecJtl^V}6 zu42e)Y&MLAvg?yZzLc5@B{3ficA6yRzIuH&iQ+(ZbeT0vlIy{Wm3$`Lh$247CfEa< zpt{SWK9fV&wZiPegqHds6}%8C$8XS&#EVPc#O|wy!@gN*wnyDs55)Fy>WLOql((p8@j_~|rjnun6zcTVwTbWIbHiNoPwR!11`gli zHXUrFEN00Hz>I3L6f^){N5<<~+NRV-ZIkh}aq_d7W+Imx6)cDv6Ea$sG4{@@ODcWM;Hm_V>U`Y0k;ncY(Y? zfKmnPX=N`1(iegdrH_Tb>-9lRqb4;8Znz%k$P16^3UI|Jc zpa||F)z_Mzrd6B!>wWV*XKQzqs#w{AJ+Gu{`oBu#nCoLPO%F-FXhH;#w-9BfS8X{? z{|R-}4cH}&z+CkV>;@Yrl?`*4Z~zP;Lu*c_aS5XtNY6=tq@>9TvQhUsg`~i@u(Jb= zejb`@*{w9gcJFAr+1q0`rbZXL=;kt0%UyC0k(;{J+q73YfgSYz4K;%zSegvhkk-Ck zwtHA@jKfn5zUHn4Gm>q=Sf~j1$Q^6=F@ znT_+klDZ*U6)UJ+(ee)C-NT0~AjrsDCa?S^D&=UcEDv$X<0C1z%>T^la7rVgoRKR% zsN-eVK9pxb8P~_OdQ4Gy>){{CciL=^FRtaqH9nf=OMKwm8a8u~P7tm^1_#v!*{I!% z`2)eDwk2lKOp9tYKkBr-VpJJjkCb)1rVl&!LUrqovt(QzrL8{^bs;-9!GA$6l7L4T zP-Z8mT%GS>)-jd9wY><1S@L5RCOc{nRpZwHGS5^Bx1&wpIE8PZ5$!ea-T8P_X5y*1|MT6p^9I@o+~t8|Of16~+Hm|k*D zR6Dw?k`6D?jtb3N0Z&6%uj)0UG93mpu*gH1KII)<} zF{fVgz2cLeBgp3mxJ_8%c!;^@R#aABm>!QDlFoi?zF31-_!w||8}1@w?nM32;yJK* zR9-$k%s#rlewm6qos0F&U)V5qqMJvWcI5I=H&<_|(f!_WH8(n>zmFQt{Vsw`Ne65? zD^T)wF1u^XKX09a_kTk_T;A5shx&HotPMrsufL9lN;kHZHakPAl(Vt(E zIW7h^z7A>KdkHykP&2>KzNqGBTpJ@B&oINvaz$2{bGFc?Z=NdsyeVoy9D#m{P0P2Z zgjEC%JY2ygBKW5&`M#kNS z+%WvoRl;1N&<* zTKnXiD{U?P5(dalID7m1XQ6wVrF%#ucePnILMq9DW-3FCRjxn@YESPIVL6uHOw(C> zaWhGk$?j*2E)2vX$@X3E?J7o4n&{nEetL z294kn@k!`=>8@7%eG=lr(3KuW_M{}GMD_phH-o?>Kjhdp$NZzvfW9; z&2FAL=n=d7n7OQM(AFVCSRGl(U7S4XG_vc%KfNueiWbW}9kz!$+d3&f<@ssdvbXZS zZT_}b*QNK-_%at6Q2-e`OB=Qsbe*#9oVQCz30M=lXN|2du76yeho80CkI3@wvYnKR zy1XaJdqK*9O|?W%>OctFgB-E7;g~?aAB0R-%#UZeH|tEBU{G3YXs-A_m`9iM>!)Jn z(ASeku`}xO-!56*$Z=bLZbh;>{|!{Q_<&TrX}yC^K$hBXf>yE6u8dD_yjcV*ese|g zxtB8MO3GVQ04PSl5MJy{sb+arJ>ZbzKHZYste9w5Hy9GOQ)IwUaeP0$#uAg?+qkeP&1gN70%wQ4Io;Ju3kN01Mg~Ixh~&`nnjefngcow9T$$Z*G4_nenx3n- zseqMaBY2_>81kO~L%!*ahmvs$T!wz~d>dhn)!8CW(u+r6xuVw+)G0%zy7uL?yH4|$J^UVb7xlWZJK-aG#p@JqKJYc zbE4tis6CY*VF6-p3HREZ!6YVV6Wu&Vyd4zZVy7MY-YD{3%njhP;{=Od>*t&?k z-=3m|k6Tgwcb90?9i&bLus;AFliDj{?>*)}h-j1Qc+S@P(#@R|4oTKC*S`cXlU|0^ z`kPUW(~l;1;}?z9_8`BO3&8SN=65V9Rf7P`ZfPP>7T8|5++*~Nf4z$B4e|N;BdGhN z&bh2xH=Z%p2(w1dowov4Y?TyNOCHmbNnL`RGa(J2^1$qe3O9iE*F|-|fpYV`?W_W8 ztR9v!Tcb+EcDP@4pAXJ#8V?pY`O!?l5U83X?$PHkbxjRFHo*3QARV$4)iWDu?(MMR zQRp7FMl)`0r@WthOwdy~n`F6o;~>n$^*e{vQi~XtKsZ6TtAkA=lf}?mi_X5J8bLh# z-1=1#Udtkd|9;`T6aknEyqunMW3bOZ;Wyh$G}aL_T^;DmXYpdDCAc)wsaK}>c(*KS z2lt2J7j9esDi~?7XE(?+E!S6m>UH#6>^_~T>iKNEHN_!a(eZg}|# z#XL#2TAcBn-1cp;i-G%BJ)d0(ag`oa0q?yWoKRbK2lHk|W|c!)Z{*Mp6SH`N2V^8y zJ4ftTlZWbb#Nr`7smb&r=h<6+*#k*BLTPPJTsHsjL^OzQHW?T%Rf_mzjC3ud|Ni?l zQR{s#QQi0C*3FmZBYyX+O23Cnl=@raV@npwGD7x>vG@H$YS|&E37a{5Y^!B@`9&SH zq*CxA&@#uB-NS;*qbR|_jbCj;ecB%xBK5aFJ2%8D^zE-MD;Ib)4W-D=G$weg-5MBt zD8T&4$NQnt-EiH@wSfsO1rzRjZ) zVtwyaT~Zd8!J!b)p{wXIO867G0jtTscc%0E(=MHVQbpc(Hrt+kc2?BN!`5Q7M73iO zFF0h8NVFPiJe6v+n3oa$XKrY$a8vtmqm*;$UD=yizNer1%(-3A-eJY4EE7Uowihj*8rxj?s`!y}~m$Phw!4Oy;sZoC$lrR`YDwGQ98MZuE7>)-uNvyhQpZA*gM7HXgbi|@m4}^^ZpqU~ z%ai@ZxPL`ftxS-^KJ|T?5f&{Az331tAQX=duWlbM=M!~9XJ>|wwT=StA!~*#EA(JW zZ5iHBN3C#qi1nx$-{E9uHN;(T^NX(W$10>i%d23` zD8Ld0)P8-DqA&{PrzK3vzjJ({-}L*rm4fTTI>3bH>rG;Nfs2BzAe!&n#t(osL^>Xw zw>y}x76@dHm3z5W4a=h@fe+W&lZ?u_`Ke~c(qIytG))2YTHGe_+$r*M@lc%dqnyr}h|J@aSJ z)M#mZ$|H1R22h%762sd>>LL?^H>msX1pkWF16E)>Z}jteO%n-#QR@{;vDRSiV5>U0 zZ~sfV9Ot@O6S}I3J6h(_yRy(ZGLIF{LNOIJR$j?dS>dx2Ork{1?D4P>l~cvvPe zlX89?FRe_-cL&wg?Hno9ZY0m9OZYzyeZQJPXE`gj{;%SHVFB0Bn&%_DlUcJTBWiO- z?e%7O*%vmgd|Rk8o#2E>K4yB|9)*EhTkWYP=@;(hvI%(!eI!2NOWig?EN`|fmDR^UK6_L3afI%;jT+#Wu= zLOA#;q9&>RMFY+7G1uQ_GIzERKN=&;n;4I;$ReE;>RuuFvCw9_X|bT5x^`{r%^v_^ z7SWhr^V|2I228?-R^nXAOmXh`i`79>Tgjq<<|?#TIdJa#|3GT)U^%cwsjK=;oNF;0 zKyZxQu7zKvXpZvV^TgIc%S-IO23*_y_eOJmh-7iAEYR`GorH^bAY)ooiy znD}`9-8c3Cd-Kf}1mpA$?}Iecl*+K0%lWj-aXUsHhc6G+#pv+nlxZrtWdl43^DaB) zy)W}h?~7Xu=)qmRb`w#F+Q>Ae^JzHNgy)TK^;gOgzIO*Jz5H+n6~-<39-#7=>dEKx zfX`ejAWi|j(E2^}Rk$^|ZUV3n6yhGZg6dAsji3--gwhUvtF z_}x{d%2~?CwGg|^psZT~W+^wL6+Zs(Hfe}m8ty-swqYJ`g2R+4FxD+>CK%h5BeiYq^TT|LqSYV z1t)v>9eEtNdk2|KWr0&D^(FO=!GEDIt1}iiu9t>zA|*XDCY6_c@>B;)>r+BA0b&(r zv$QoTN}fc1bbT~s7?&a|4I%*3f}wBiBd~uA4!13)gFJLHY!ad-vxx~{&Xob06{)v^ zZ*{C2(X+f@duIfftNDI}(e196_C@&To6$t1pFej?sF16&SUc;xhApt6>8St_A~7V; zSk{yooXn)6Iq;VWk3i##Z!>uj7JQO~En zNYzZ^fw~w;P=B`t7z?XnxEhT5*p?-H^CDuI%mD2DTEDqu3Veb*UUjRg@x%~Q~9F)}OVdIO9moM10TlQHws`)T1>87` z*62Fh*3PnTDv{61YD^I$1c7oItpsSG;@k4g>&=Pw^-<;sVL2^e3y){H9lcnho@KLu zJG7m$hYTfJgl0hM8jkdc2&~GtC0+~r$C4F9A`cg3sv=hC>YOV}u6=&5jQYjW-bzLN zmIj`$H)NHTj`F8z)@K9vnA1Cg;Kb64z$J$j&0(Xx!DGe}AuEOHmFDEA6#iDDnZ-CnTFs_F>17 zH4_yu(N;OR2wYrIA1!GbjQ#G7+w2J*0CK{$oxx=QVw{lF^tWS{t~z0oTHajckn-P&D~;6t%lnqF z;4FPbrxr6}WW8AuD=}UhJnC1#KL?GUnzMOf#5HGP^nG}K&i34SzH`4WI_n)@WVd)%q#a{4147^*U!5ftrd$M2F5ydY)%IeyEeJjT{t&b zB8P+ZGrRXZVVw^y1NX)j@IfW3d#UmH@|^F!+=JkFewcnQSpbM$PcviSftRP#6X1k3Y4_1ygJg$J;@(UZ z7-4H`i)&sgTJwf()q+#z+rts>^*dv(xE36lGkXe<*{BHOlTU`aZwk`zxn`|*kpp3d zy?&#e&)12`4_q%XawLXl3mZwqISODk9Yy2KFf%p)mMNL?h4$ijNo?Bg)|M~cmV;&25IXDZNDnFn$Q5o#C zVK=&0O09&W3~Xs?W;7)N)tr!_QoJ5>{3Vop88Aok_``XwU_8W?pAPc zN-90c{jcW?A-3lioXIG}8TpSCmUk;H$^s_)x~PcA$R(KWBZ4qQ*#J%hlZUH(6n8ic zv0Y!|@a+0=akzbFydSElO<~n_sKo0dDOJ_#8M5SqU}fQ@IrAFQz_rYGIauyy$k4rB zda(#zAWRa`AkQ3KqV8w37&Z61NuM`W$<+hh7FhNJCn5UK!te2y(xRbq>DH<0gZ`8` z(BfLw!>Xw<7VK+oCK5{>7 z29g1Q&qHs$x#JAt%jtUclvE}SJ&_&W7|^6vQa)V{upm5C4#pV^4rdRebh{^!@>Ij- zoXUj{H$vOmVCd@n$B~+l7LT`O$0QhVQ0`|3S8m&Fsp(&48-@~c*+cj|)<`ys~D*pC^_2RaQ>+&%F_qdMnQFFmSo50_QMl z(=g1f7;$XWxqTw}*6d;A|H#b8{G5jkzmC$$pQea08D?KUj=_#0 z70t&QQ_c}~>7Q|e^pUAapP~>J6s22b>gnbw99iL|nI918=ANZY`d`1!7v5(y1Fsy9!$`3}>tdW9JQ=)a1y zb)Xek-{=bN=xcP|)T6q_2F%Q+W+vC%jC^oou0-0@%XkmH4)c2_*{vPCro7($@fPy^ z?Q|{A1k(6H(DARtx;mx>0#z4zGYV>43IumRQWbpUBb3T&Ygt&cBgeHt37w#@k8{H^d}t;?o4VXj(RHLVVUa$Asb*l(#$YWW1r# z0tXUVs?U$N^Yh};G%DeFmhpBlhlalo(`a<{45?e8PbBY0X!?qOREp4cc8{F>^mlUo zFV2;~bV&Pmunv7RNA}O2Ju+;HnH{U8EA`yA`B@-C&y&6k%MJI>tlp;xzUxe!9~{1O z5Xp93r7~CGrlL<&nug0izpw`e&akhjhg+Af*fT6JSwbOhYgR`ch*fx1Nx>h=_FIp#Jb?%ZG&3 zog;gjr%xLtbux>tqFP+aN|hore9(lz=JHq8)(s32!aFtB09QJ7@l8AqQ9{J>G~D*C z7aO_YoECeNTdkm5vL+0)Gc${pQ&RVYV8kHBGo?n`5GjIywtQROVy}A1D!T$ChjVln zoGyBZUnL_-wnH)o0nCv>7L9@4W>ngKm#obE{#C?6;i1Fe_AV&|t119%O5o$1qpU?@>R(E*;FPKk(OB+KHX`N3|vCfx#uW3L2+gx z7%Xs&x={0N`c?S-jC9oM_F63r-Vdc!KK$%Kv09M8S{Ro1^~LYnd}?5PH|oo1+UyZe zUVYOOTzi;hZ_I26vYB5r2`@`Y z3rv62k%`pFojAzw3fXhSdG#6sVk_%Ns!O^l zUG~}^P>_6q6OR-7oPIWPWaIQQq`~%S&bQ}XuI{sC>l=72l&n?i{VamEWbcY(qy|W3 z4Al}ow2iPT{M`$zQr0mYGt@Y!qLEQ!&E@t4XSv<4&uj=;doWU66Z`{@)~@Mig}SL0 zB&IL@gJOwM|Eh*wSw-U`$b4nR73WyUJgoRY&N3ah?2?^q?DdLO*$=%n(hc%BEJk?b zPJqfM>+N>{+jZGf6xl9>nyS46?Eb^>^$yKkvF^e9+vNNMK6ctVcm3cs#(49cueh~;2+t3tG9lpIj40JxZ=vg%<+8?E5jCc8wG8CTs$Qf5 zV=w4n{O`)_?C@g6#EQ>fQ@A5OYi<;iJAzLWQT2J=4*ca|1-7kzc+wzD^M%%!J*4Qw zpWkKyR_$F?QJX1PnByOdVb114pG|TSSo7JWVXZim>tDg_x1Rym0pblY?rs)3MqS82 zIz2&C!C#k1)Nt%MdxO@q z=wB{XD9zyAdgdbf+(JXIw%W?=u+7fnK%)15CnlQ9z0};hN}t5MI9~gBUCCYd4d2PP zI@g1p08q}Y`|3jDZm%5a^HIVA+}05#-BP|2KDH7%aY?Ufa?RASa0g0l9sy2-IIP!> zU+8`r@0=ehw*`+e?AGAbOGJN(+@IL<_3!Y?B5P~QB@8A8(+)z0*BAu!TCGojXJ&>) zu)p6h$Ms^chbF&LJYMo|M=04^H3c7NCI4YHi1&bwp2U27qX2i%U}`qLI3ZCt)C7@h z?!3S22QZYM2nd8yHY1hii$Ho?CArc)Y$5xG(!iGflG3IBPIy<5KZg0fc;KG0I-b^) zWT)_JuJ31BDYEGOBc+gPp_8WPrt#n=m_;0Qm=fzLf z;b1wVHGbZjwW&6h-KNV&y32!PT(S{?j#Xn&O#AHvp$-u=O?Vos>%N!}a+Z`QP8Q;} zk=0Jpe!cmy^;A`(jS%m)0!bT;hyP%_1^st|kHOv<+zW0_)DX!jW)D{*clG~?}WiZgtQ+*g8$UbZ@Z=e9#w3~&IOK8CD8Tprx;eA zYEOI@R6z*3TCG;w3W7vy4wU61{kSnXri0$rTje@+ELU8#ZF6ml| z-lJ{Jcbc-6Ak`c&jql%=o8yx(@93*$R9iFeh+=JH$g_kpVnfhNXaQ6ZcOInntBg3e zNbOj1pZ77%8Z0iYL^Y7=&2$%PL8_7ZldPpzAvum`L*29`(g%WmT+WwCyydc3a{}4- z_xNkwV?pV$#jNs6|yPI zUinq4dh_TB#rN?FuYXxfJ^rH`pSJn4;6z@uJlDIVi(Hw*TAK}2O;?m|bMDT-YTeW% zQ#`>sH(#ENg%G{}(EmG8nQf~g?DhrP$5(ho0DGtGleKgD=Zg>|tN6~Upv{IYb*rwb zd$gZ^Y+!1iyPQZwZsOgE%~Sqx7NqQt&HujlEZsCJ(Tto;>s-Ig^(pq0v5-A0%ISM9 z3tM?3anC9Y>UOkRMMqB+{m$FfaW<1NAXHK3dl~g*bAs_#-o6`1`7z5iw?|9HE1Dqr?rCO33msqY!zx3F@d1;Gxot2=RR(q1w084xc<4I!@~IbBn8 zKdA4}Tb5*jxq`E>xPf5JJ^9J!6nk*tY{KltDDcy&))Fg@#>c;85DZr@L(l}8>grAY zknZ7a`z!}=sPY4S(XNO}4g~B1az@JPa_;Lym8?e{_pIV3()JpzybApl(AA_GJup}* ztBs7bLZX!NJ*T`(nJhbOUdkWnI=W@!kZga zlS*x#pIxt(=4^KN#utxc#XwMN^X|Sw`&S7QnlH&P@IXh0^a3il1?xdmnpokJGChy^ zma<4xjZXTw7e){(Gx$NrzRIPXywm;WA=B$gnUTSNCnzIL_04(qShIYi75V|ORQ5rP zZV-96scMyF2F05e2Smx|Lu&@-vY%$t(~6#p6qXFz|CsXs-h1k#l*QFfjPW($ckgR8 z)AD9E4y+v$JDl$JTjvQAY_`ak>9XW*se`Z<%tZ%t!`_ObRTryjv{y?dW48tj%n{d> zmVH^63HPTmAY|6C_*_+73n{<7|73*aK!jn*l13aTc9BaQEI@w~$biks>`3Re^@q83 zl$!><ebwD4{cpN_3eIAY~7_gewB*#A30{1GTo}KJe8q*uqs1U?T;k8 z5RlFTMSB9E20l*^ht-S7+iNL(g(eri?xM|Rye&7ydFe1F7Sb~<_Wsg*UD zFV=*jd9(d9p5=f6O5Vm5kYUnZ^Mid>VdznZ(J$~wAKo1gaJxnS>NBIyV|&so9+}@R ztl!;_K=^4Vn7A|;akC;i_4r->yiF{hZx}ZcQ=5PHzvpt6oFx72#;j=Cf%y#(vg1Ll zQkM+JS3k9$NsORW$TF<__;QVY9v?yqdR?&9?O;Gd-EJmUBLN`ZqoCf;WB9yTbiFd) zW#bFJ#_RLS)pDe-bb<}P>T?feA0FGH2hQ#NyS6sH68DXsBIdyTHB->TJmF-~uz_Sr z2f3ik^q9;~MToxLK_J`!5n$UG=^!rOUG_pcwMRv-w)DZovmib}34G6@#z6spUOG_2 zXTo|vwrzdW{AxGe(?DbR4mHs%UUHE1A;JKQ0l1a{Nh@s1r z1+)Xe<&I0BL{Mhc`B-)YF*uc`*;AjAP46qH82j>b#h|+_@AQTeZu;v-GT{NNWvEiw z*_1<*t~Z@9n7NFYW~i~W@6};6HsH@qc{}hIR?|Mr*}n9x{^C^KP?o++Dr2<2P{NCv z@mACCL2=zUt@@i^mdgCaV$YFkg65NY*0(omtfqCI#i(T@SM{q)EJ8A@OVv4{!wJT$ z-YTnY50ljrx2pa@eXNO(LlaI@dv8$WQ#R%)nYkE(JonKjLF_`7P8`AdM0j%HzK zQWXQgW*f;7L3UOTi0dE5=hX1l^`zvddUq{9mV(eGx`zJhX9`)#_2}bOR_m);Y^yzZ zOwTZE<9w&6He)B*5Tj`P#o$~+oMqk76T@E2lRfb#UWLt;o*J+S(>wkRu|lR*_U4xt ztOLvD#w~Ud_&(u)Hdk&*9mo-o)@0x=(Uc?oWl$*q5%q@dcfMq{QLJNhE3`n!kkRpC z0_e|1XT+(3=zCb2KG}O$MLqxRRBcqQk0L($uh{<9KO0wsKMrP?53eaIIn{8=WF`Ve zgtu{x_@up+`0vEV%4vn?MNbOkJF2GpuR8sz0qRa1gKiS((8c?b*!YAsDgAfe@j^ z9={)xuO8vx1LuaNi1GOj{RXMuz0m0iKJ1rZ&ZQ4bbh4;pw{Jh5&Sqz?1bC&v5xPH} z&%lOp9_a6!c6uA;jL~R+fu`*-U&sj>M|8Pa!5NWxsv!CVPyKzYtZ+=;LryP=N zyxPWO=1k~V1ZTd;ful#&D#nh)0t=$8CWX3CTK&0$_zPM%yh8R~nI^4raCqtoQgAgw z-7PVoU}}l7op{>Vz36v+H!(8LzOk;^L`mt~X`e0i%O4664n{6kSC`hF6YV0^m*>s7 z!ycM-8Pyi!yb*@l9cGl2mEC|^?-7IWN}cF(!^dL-II~I*V6isgmSj(X>_QP^qABvF zd9g$2FULCQNW|rtc+9@oH%bpi*tH43d-S-kF7J49vffwK2Em_bd91$ByU(c#Bd(kED%|roqejoCcPqDb#+(@nq?Sv| z+b@-wQ8kzhWJSbIgo_t_BRidFw>l8DSl^22nlj_ZAQvSJgfKG?`MxOgCX1`p+7}O& zSN;*XN00w!Mw@Sh_bFFR@(u&4*g2FVg201xfZm9e%5I0mB3R%sTEtB>NgKF;g@7d*JJ#7GVB_)tb^r-w?6IO9Jhh)tlPgzwQxRHVBNzMRyj@fBBy*A_3 z)g?ou569@}y7D<;%Cez$$fxpemwx)!dBmVCc{!wpA4?}`@(`+tnMj_A`^V+}%|8Yb zpjG{*T#u)+f_N(l{EfdPOE~kMzTRCatUB=7Tr@APJi*g0URN14!I4)Rc6X2LdF#z) zMgDh!S#n=;sfJt6Cv>pwe45TdnmLDj>gh4*sF={1e8%KfOCU_c%14LS69kdutz>xK zFLiY-8#Q~mJ+XM`=>#sevP!qMtjlj2(f=hNP!*&cJQ_@irdduu_`(THm~%>)TZ&5~ znUr@i=!kU`!=I&}+}ma9=7Gc|EFNl0y*q0f8u8x=?eAu@?cngkEBTV`zdQ%=!rY|- znsSV!^k<1M!>)5-t&HfXn5I_k5EY{HR)GoN*yzc z-qPN$9qZ3(2g&gkh=|^14ZclPR#u-GoCB=zPh=w%gPZ4PcWRrwr3jvzRSvx6klngu zV?pUAFsOGESIJQcN*%MZM&Ih`f1WTdvFqO*A)CqBQz9_Ib%&>6PxzVLPix0_)4LSX zFiLmfx`7@qVOMI&zHVU-0=%Wu<-JzX+F=DikSLwL_#Iq}UMsV%!=yB^ocux)VvSPa=jGl+(X37oj#`h(|{QNS*j@doK!)T`G2)SaL{Rh2Yw2qq5gRNlS{!tyt8iJW6 zF0OH~on1KnmF$TX3S-4J&D-tc$fNoYVf_KjCU{_6{ksqP)zyAgC7A+ijAeAe4%>LI zTtF_PjZua+zGyfcHQef#u$z)oq`^qcEa2;ls>S%7vtBsnY_uP#Pt{n7BN~S7;V>;) zV@ry7)JEFj89Kc`Leoyq~RhiIoLw4uv_|nRY{9Pl*=+ z34E?+)_)udA5~hF(v!3IB()hKsj9Va5PyJ2s3wWYxXke99#)jC}QvDg1BO|!Levd;3)7l!Z`z?qrSIyqQBYwvsY_o2yqunGG= z7ArC4<8=RMoWRXZBROyTW0urjUFuq`d&~aKwmcC=kiF<$`|TT~uE1lEO)tAxAof^o z9}T;${=6m5d0_lM_3O47(ideI>g)Oj&`uPZq8`N z`MB4-H4_zIZ_f2AwGFKvpW+=2%oda~38XooB&pQqP4NUxaziu82#!xt39X?E9rxYu zD#~WtU#2#Ac-bQn7XQ80>i1&6Su{ z_*=^~`$)RZ=Wy$)}zyV7+p~>mV*@xknNpTMh`52BJY3ic+zW~s_smh6)1{UEuhE{T>9K~UeoLSHd+>1O+} zz`cTh@o}JB1^qC9G}z*JF$8vGMBvmwmNzsweE024DnFU940Vv%xU%J?G3C;DBwFi6 zd5@Ug#F(&CQ=)rzJv7|HoK{?tV5ggHpD76Wg%oEB1O0&B*QFmA4i`Jpq`4X z^$Rt_E2H32Qu#`FywJvPM4FAIYBp!cUIcbKZP|zhD=YePrUC;DL0;JXAI0 zeJ%X`A|c`47&ZLHt7Y!+}2hi zQeb$?x*#Gl!cN=D=~8AP{(`|~Et2fA$DYv0?dM+q+Lq7bxo-B^gLC@dbeT}pt+-MW zSLr4E7ftZMukf_KNMAhEO}zE!$@7?>Z~XaeD01Ka)%;>P-6s<*=d2=_({khAT-yr0 zyUCc_+-CYOa6OA<$z5Z%#z7PQM^?2-Qa7@%#eexFAQx@#F&JZFwkhB6xs{)anzW9* zm2zXIzRf4$)zxj5BhNnLf1358f>f4Bl8pkje|-|Z`u-8vZ8lGiy?q0G5105R+4DvY`B~82u!p#{08YDC288|C@o$qMks_UWt!N#wZUoyL-pB^}Pn)+wE z1*YpKEO7El7Ip{=p5MI(9-b_LS?bmj&wkI>Q;lD@GUy){^g7E;4DrRO+O zeZt_@+1AJ{zrQ^Dy&IyPlS_{`q{=2WzMpMM>+t&g(9gBZW};1mBc#QLzBN5EAoyGX z(J$-Nu*6AG@Xz7X-vTNoljTSOvf!^?9uQotjlvTiA~^H6tyXh2JAqb5bo*FomN679 z9ap3v86-pZf14Z%@q%6iSM~B{*V0&Kl4X=sIBvhqs0FEAwHDMx@MUv<_wN3sT(VTI->o;E#EH;1T&l7Ka29H+dOXzYAChYwPdp@I_oI;F+xuNt<$Ky)gks#S zX;=7#>-a15(V`K+<3Th*Gu+Qieldf#jf77IHeiy(3cwhtZ0~#$=GKv>_Txg1p3Y&5 z#;}G@AeB#U2rM6${FYTJD*p3yKSXjeyJSkO&UZh>{EEHete-?D3pl8LfqWCiN{mME zAO?y)t_~E@O-@u@yV3gbFGO0-rlQU!NQiR^pK?eouE@5)EBnZ$hkJ!e{c^#!hku9? z4=OWKSM7-?9sOL0m$Pi2%-K%NYA{&H8v*3 z%^tMVE|?>l`5SxNHT~iJuE8T4Wq{ML4-*rL=#gg&AV+4k4ay~SIUtI`q@!PoIGY(t z_xyr#U)0vucIIE6%o)Whqw*l&N~xR;%U1s`BVNRGxz^%d5{|F;R!|6|@2j)(hR?6K zI37k@l=}KO(&;hLi8=!&NQ z1;+QH&JUvrILt49VZo;&G9DY+QPN91Ui*kq+@%lU3AKApGJTfdq^gS=MWSaj*y=ud zqAFG$C|B8;sJa5{R3!q%e^SMa%v(4@SSX+)H2&V*cr3xa@7S)=&y7Kx`kh4@Xl1k) z)OD+vmYXPc7vD>MH0}Jae>EnpJ8bjoaOaV$;S5wSQ~b=*W@VWFQeY$G!J4kT!vbEs z5+iW>UxLo&*XNC%TBIWD>>MljTrdsaJN!rA`brnq7aSH5Ou zP!yz~d813=eI;@4(S40v-m4O_{+-&^S}v#07^Iiy`5wcb{T(e|jwD~S#+&CwEl&X& z>6~2Jp`wmw(Wv?2Sc)(K@qD3;sok2h^oTo?us%#QYv`hWEgvqa)7PCj|J7wf?1x8r znf=s4+HcB}j31MZ|J21<5jnt01{Rp0;^7i=*N_5#9pwJ%MmA5)#M9&*+xqLMu*YZL zby^25w&t2_g06#`D$z5I8Swg^odL;S=k{)*aSR?-PmCjlCghM`kYluspBxv~?&Xfe zYps=$8cSjGu#r2BHS23}YPS5ka4%D@14)EZ$&rkS+kLNkdXT;m#MSi-iKtTxi&5Zi zivRhULZ@9ZxSgd!^!AGw4VlZoACdvuYax(yGUqQv5Ub!fz=~Uq9z|8Hjg}-NfyT0* zJXGCox%MZr62U|v3@#24G><>oF79RtynE?BoT&SE)pm7GA~IWg`N;WSsyyae>_mUU z|D3lj7-@xD6o7fMgPh_zI)LMS4fj~YlX^YKBy;On@$(i&XaysF%gwme z(Sg_RMpg_&7Cy56f(!6*0rS89C+&qz{WtVadR+iWebMxCd=f&&0mS9cfF|eec$(X& z)thNle*6s%L!tRMu3HkM1zT^V5P_R>kuXN>$cnrTzW8_6Zb85mVa4K&MNLq3Yu%xa zr#XuI?1q~n?TEvAZUkK6<6*69@e+C z_=JR+o&*--<4dnO^M%pXwS^NV|1KfRS3j+xjwqsWPU~NH|Bd01Z;6{!OV~9HlD&zj zwrw53rZhV>rKx*Knz*1XdlFCp-f&?~NeU*qF~U-`*-yn~WXO4tNSTTms+zop zYIL03xhHt|J^}ZZEU4Wp%>*CO1bOe1ooOpn`A|)=A)M}MP876Z)3x zrvJG6HRp2cug*g%LHf16t)ms6t=j00o0}FzT3z%al6IIJDLtLcmi0>d;+8odw`+M= zDI8q{!o5_qc{tPrro`BoZQ?_U%rqECPsD#GTEEp%24Ae>zQ#6b{@mUw8U`P=9U8wQ zQ5%H&Ol|KlcCJb7PI_g#!(UGHs~&8AR{7rxH=cUxV}1NtOD^nl-~CHDqjN<%1G%1F zP~r3{;UMYIBTDgj;2W69mi+VCn%j0ZS^LZ;v`lAmI0xoyD}CP9bWH0}v86Y+pZ6b1 z`PNnP#>C&`C}k4d{MrJOu-q#%^zzT`TkOT&27TH}!|19y93|B8MZgz?=~fHSZa_%p zup^%ugv9<&T@r`}?kLI+<8_8*%~6AxgiD7?uFAT)AHOQ&8*{?{o~m#{HFC#7=4tuI0%mqI|Ba643aTK#)9kMHBgs!=PH`%m{Y`ehkyGwa_=qmw~C(P@?1Iku5HtTg6P>AGvJJT=xFboO-O=zWbKC-HFOn`QdDw@?qt{m-|8$p>c>>D8h6NI28kcOZJ$PEiotCev%r zh;fQl@M+TV#z$)WHMtw+G`tK`2`KKpAJ*?g z0-R;anrrr2TOIY7_WL#%yzH2EkH%6#m6wG?%(S}xs1Rg~vJ1353(hSD(6oorX7K-3 ziF(>7fKCf64}+fCL9`*}D;5zokQcd`c$bmXa=pquc+=qQrZSFF$K89^wh~E~I1dlcft^gPFnGi>$LbFk-V9y^#*qlQUorV2dzWXGYcoK4b;%OxvSN|# z#+PEQ2;Apc=5cU>i;jo}4&u*;^+5=|NHAbId(C|SQBmsT{1A9A7a#e&AVhwJywV-% z{Rh45p&74uCzSBG@Xk%K#FaV3rBstl&-kvYSIfrP+nVmn78 zvTJHf=hFxYN$}6CSZ1sc*5qOKe2~)8$wBg{nyUn6>Jp}((IsoYxnzd>z14SpKlr%t z#=q&FSrdeDOQu*?ZBIg9rxy6prg+oa2!rRCiPLx8y~l$cW7@4iITF*#^+hBkjtT3c z+Lwpx9+4jvS1cLxanQ8tmq0v8b?HqxmCe0*1jPx0$d-?vK>GVGr<<=TGWzm7iU7`T zn{OU1C}gzVbp3u>=mAwg@ZD=m5viNk;(&6w#;5 zwuxh%htx68j3bEmDrd|L^qD%%zvUGBe~QjKn(h7n@s<0=l}O|mB^tTGV$y5q>=^c2+F<5>LwSaD`QD(Z1f6tU~)~h zx_Z~dG@}^-KimfYT)Umt-Qgk{abrj0x>a53T!8zlFrOQFzagrNJn_3<{N`8LqN%Zf zd-`ip(L2-efj_3tN3bU;bSR3n?>JslPpHM4Toz8Mt*ac#CuNWrzmP}kt&~^6S`jcE zOd6ExD9~`GjYJh{yl^J{gcN!E{!ydEU7GjR`i*sitE~m?7j2rbt5~dB**^S;G>6)0 zA@2}t+@y!IYWC_?c8*Z^Xj@9Ivn+lCd_B#yOAAzJGw1L0k@t0rUTm++KaVQJ-tc-rik$Tgo6?Wzy|>zGVo7U|Juv zX}_4;QhB|E0r$)lGr_V@4O{=6@`Lnn*Jo93o+~I$PugJd0=|*2B^1QoYUvb4X`nU! z@n`AKQQ7;>c_HILQ5ykySO2L2Tj#qILo#t*O-;@^sw{eAsU3tUA}nYuT58{rpdT`C)( z^7B{241zPQvarUZW?HJKf`Zm&w>V6E>WGFKdY>4#j>E9_Ua_O<8)L-|Ddhf_|DE!x zLmC80{hi=Mz!-S?NoB9`CW={Y4Y`P4GFFP}D5|z88(z^v`i&fE$#1|bms!n)n@h!U z?E_XUa4#qcEUpk@i>{ZeW|F8QV9|_WmESI)q9rD(dg$AU-Rqq(PnY(Gxx}=k>NdwV zM+iCF%9kMlT9nD=OU63vD$=Sh_C$T?>gn`f3b$qS?nP%EIq&@Z<)sxNA2gMRf3gcy zTO6s`8BR9dWZ>Ko0kAOnyedaCT5S|*Xm$Os-Y*BQz;&kCYL_0DHr6ZfzVM>nTB91O zcF}XolPqw?qmXAQPL8Zy#|V;x+)f=QwED7;e(x14JUOKXg%90tI$$#vGXqOEJ*Ken z`@lNnUAbC7cVPC$wZB(Y+kWV4Amnx44!n(gI_7T18|P2}!9_Vcm@P@`OD#po6PfF* zS9yMx)ZZvUKxj_S;*@g1F?*9fB!{o4gOca~ayRTIRuaX>B9B+2&wECPck{*Gl`piD zI<=53RCPF_4%E<7b(B%7*^eYqc7tJ&3?xH&R)wn3Q>CINqN90i3SP|HsXMWJOm_Wo zCbr~UI`9#c3*aVH{_!vx%1NC}(zWIm)y(>*L7-h}$0T7H{MHVlyX>-Eu46fBo{W%o zt)d)w^!^M5kEB@Uqi+c}yE92Wi}m3Vt&(2%R&z%aB&B%@S$g`sQfX%z6Y{WX4d4u^ z6;-vhtpy%WERR>J>t393Pldh&>Lh!(zJ{R>Ay!%_F?J4u*|IN+VK=i{+2iBK_@$5Z zh#Et&Ic*DKZ>QRa*KS`QIr3n`jPA$8OL7-w8hqWKZf>m}2ojaug7t<=)=IXvbF(q0CRICyh{z znFCp^()M=??d@}%3I+x~8MkQ|W@>*Zy3(QOj-eQu0$?+uK(cGrXh=jAOQw8oV(UEU zitaK5WP>os+kowFAFccLl-pCKP+Sd$mdf4&b?LK!_1e7Ge1i-6^SaM|(^1d4O4RZ+ ztvvJIz(RarvPB*EQPW^(St8R`nCNkyf39SH4jJNN>)`lg_h6je5iHB_r|P02M4U9W zh-qaOck>7DWGmyfy>)b7sVZ`pG9J8;X@F^~Mf0M#AnmW_8(Z8}#{9MOY1g55iB~L)gG4 zp?&`E?JHv(U&g(3fl2#bZM07xXL9t_rxpn4sAs2jMgrB2UwJpOmg_yOEvH4 zCI{nW#GIG&uUATc%{dRyDkssR)thEd!%|KN+mFwWMRs_nwygYZ5x;=XYOBO*MQkyo zWhi_{EE)^S@r3R65@x?~1k6C;#L9Y8#(orTp+vf~%xS!F{0{0tIVz{R?-TV7+fpM& z%Qt=Yd1Q4*X|d}Aw{DRGB<=IVe%Zr zNfgHwvyNlT7j%|x#c9TWpjAKB4Nec~e)pgcDVAV7@cDAjbpy^zoUlA|2QMi-iqcrF zE@9V`j^xyKS8LM3o|OZSTz&I%TV*JDEd@cNW#r|N-*b0fBvX%WUJtqcx5?c!XIkGT zwa?R(V>0J-O6bFNPr3Irei^6CO7{Xsy%b3xmA$XCq6QPMGfN1DC`^x#@s6I03@WyxXcQ9f?M-U)cGUFhhE{~$O7O47G|cUg|S&Q)Vo0#HJp z>vG3U8D5U994yWCG2QC?r4phpSdmLj%!E)Jy1+Y|7TzEk$DMAGQV=##LHfAO(C z-J+BJmH3tkj~)yhii6dJ0J`IxqUP+4FS^50dUwkdF2}WrYg&zxad>a`ihaOCiV4Rv z@cTQ>jCV@&zq}&Gqo_V15qRajEPgg1=2|-Nk~vH{nLqVx6QuBwf=~i~jAVrO740vh zqVB2RFFGf%7OLAXO{ChX%eW{d?Y(o^1gdydQt%^H%AUW=37G;0bl`3hg-OgC#c!?n zP;xZ;MBA5C(_K6I1*jMQ&=Cm5oJb;4GUt+?;hnx1MQ_;GJ;l4hJ6$jH`G2l&W(}gc zp;i7AcQz$Tn4Xz-`$0y~vVT<-?wGcPC_6l!1Wz%cAY#YTwagx61Oh5{J>?sg@)W9l zc|PoO;$MbG~6RdRgyQdPZo5gkk8EI}Wr*k41%p z-q4Bpcv#3p<)~rhj#Hh3y1H4BSdmsn(7km!Y-!X)-WC?gteYo`m*D}`uMm_N_a`UN z;_EbE^Kn1_=P(7{+FE51V94Y85T-58{qI!x{=}biRfhZo0;42s%C51wF;OD+8bOZ`S>d5>?Ey(_uaSZ3V?Z>9MxIrF40Yh3bzGdZO0#7bp;U*((p z52EcmLzo^56K~|*Do8e7=F+o|ZAffKw2P#4PFpWMUt!Egenx5N z6J;JIU6GqGm^uN9-fa5x!H9vf+2l&i>UUXEiBR(jf)zPiZ@9^Mw=@w`Zk>iHihld> zFG*NA$Ww_b*P8q54BEgEYE*5Jwkqf5&`Co%{0bYYtj5XR%yo1`Ik1B2MgnA<214zg zRZsdURTBtAQzeUG;3(x)!UV?~lkHzIC}TctAH*G) z%xA2P8~ofRTKo9aLHd_;le2&i&+k(ljcdQ!zWs#N%g=Qcpk? zmE93i8ZWX~n$BX!Ep!?n>oB;OPvza)nfUcv%O{x--});V5AUP0raxt5EI{L&kj7?s-T%{poAy{MK>0kn^h0Ycq|Z4#39p&o)gtHVD^O#yQS5jlkNM z{dX#dRh2vSm)y;&0Cum{ACc&bI*h&160c#pyic4wnz2LW#_|Q2DAqNmX_Y(97G|&P76>~GMNYk`O$}o|`j%V`jt35I1X%wr(D3htDd$>H zcIo(oMXQ#aoqs)>kxHMty6j$lqC->+3sy)J>&jsnTmtNZK`Ik$ZWSOG^ z^x^q}rW!RHqbxF;nFK0#9)8vg7Vpg`lKR&|PU<^PPc*u`Gp8vOM|_aqsQ&guiGu6v z`aWQu!(YPtSvl`jkPNSAHt*%Opj4ZxtN-Z9SH)N&3JlCv*sG1!r~+COokHPo4RV_f zrAnFh+e?pAt%$8nbmCfBuFFJE{cV2Q?zyCy(T;FZLEyA=e<50Iug|eRs8B{dAx0rz zJ6_yR1eUQOJ;rPzLe1_6VGOh66`w)V$t(?p`6Ud2?if*7sEOgy?XuGpuwKVlsDaej z^1x+$Wz*17N%WpTcY7<3Q36RD+WdNS~ z;~|fJ;CG0^EgWG*H0)x4@^|M)gB}aMu2WYnao7V9rTj<}<9Gc6#Zk&Im>gs_*K3V2y_<_(Z75@I*=s z$;-bYNQA0f*5!c{NsG~0MmZSE`s>_%K}B+*J{FtVEa zRvF^~SZ6szluH(EKcmb08X9Qv#-U>RdM+3vcLxfFLa8BJhNkD+|2uUaytn*56t*Fm zb~nep724?5%O)6GTS3bh#J1o~$eW^KPk>~jKJ-VW^JLe3tAj8-q8JJ-IniuuOFy+g0#hQGq z!3n`v1rU;KOY7g>-bI*nE$=DWHCuBn%L8c0q?04^u(QS)S9NTSmr{t-{M?(8u>|F9 z=IOt5eQ#Si{ZwDA@ug=3%Wrl)VsANDsSjiXTrN(7M-by%LoXr0rHx@_q*;Tv^3E#-1o zW8F!GVenl!b7RjmjlWf!C?g$~nqd=J&*V(LiX~a!X4$zv3f7Dzkwvq610`0Zx~|%> z)^T$im?Q8)2z8OxNx7xoSefX;>p)Qx9FuuGxPgAbP47w8DdOv&_Kn@N zybRtB*m-Y@&M4Jtc*$_yW@fXfH+4m>o(z5MT@T(Vs5m5N9W4^cQNgv26bp>K6&7^A z{G!27D>-U!WXCz%g)Ec-Z4yQR1CLC$w*?z(Kd@!(#_T&@kOexP_6vVX6R`2JmHoWV z!D`;mEa&=^;=MY1*_~D!i33-fd#=@)9(BEJ^C$;dq;Ndfr(q(&;3=2G<2_2>_;EyO z>{$v1(*ZiM|N0=rknjF(TeUaL;Bbl{PH(ohYI{f$lg$|eN=ZR?<6{?UI3cE%^>W9Y zpopbkOWtWc&+l8g2@RSxMKCvNTT;uTKx_S#GA0$y?C67!*Q*`$dgQChIuk5?8$6Ty zavqQaB*&-0MO3h@Kj&tr`izI*+qV=`XN)I~e0;mgG-6#K>~|hyozW`$0>vl@cNvTx zJxN3PJcGtH#@Lkz3QB+_-hE5k`u+SvEdPt!JCEJCe<%S_JVrSA#lO8QT|8yND%k_sst6W$vm4B9akf5d78sQT$ppb&w>DdPdl|vz z5wIwWQIoM}{#hu5&n*W(sB^TA!XHz}_~0ZsoY(>Mi--sc@_TtNO&wNZ*REOe?Ng3> zs=K|lM_3kb2{1S=Rv`{C;m3Z`UU44QkVHFud*g zqVi4GP{XO?1nb@w_WwNoex5S5FbAm|P>bwoz-r-mi5aBC<5ASE-=A%UA16F`scg@2 zzl8N-}V}RGCh`gay7o?f-8>*yj||&wqkp<=zElxuzHx@&xoDs4p49 zV$SbiP2l9JuHRbHz8l1hmIB;Oa%RkrlF|rKyRuyg+tXHaTs(<<&?}u`9aMa9`iS$v~zQUrWGza-%i)U zSLO{?_MeW421oypVHShnmX>~_oWKm$297XF^+u1Faj&tc1~p9b29)fJLqpB7BMES? z3lb>}NM27r4uJ3`+v9C7Nq|3Qz;@rwC^cbHW}xfHm%0xMAl4M)3u-dzU)6E?J^Qex zT_rZQgsj@F?D5fP2Ky-I>C;-Zo(2Qko_E1x=mQ@k#ayfT)vmpWHQHGBtY0c zg(quawCiQ#dyGwQ%ZFK=`#pE9y}hh0dDp&xuSxkFs0ln@DJeV156k-GJc0PQ71 zwh#k*+6NDP)CY@hG_nlHJ>7M|uAzmLkCFYgBslF>JF)u}rmAV3KV8Z2DyhDO(4Sp1;w5 zvTC3Y+N>fY9tItXrH^u@g}|l3C8Qe7MI_X=WPE9iQAY&F#QtsdPp_vDR;gvC|6dca z*NzXBVhWupQ3sY_UP*cxkCfN^J`M#()tF{Qds|rMtRol zBe~x^+X9=QaxIk*nQ<0b{z$y!zf*71nw!_&47reB`<-pv*6wDhF6}GBD;yN3&HE-k zzI~ZuP-$`Frp;K>wK$av>fMBl)h1U{@>K6=<0~fuKgPSr1*f%cbS`B8(3-DOPb5(fU^HS;|PNY8Pg>1*xnm293*9U$h`lASJrwxIA zNm%YiN%k+|3jUQziwo7%S?`QZOoZLYzo7x4eE%~rLfqqyRqk}Y-g*;^gSnoT)Y zS!@j2-tFMp={f(n)2B>yZUj$DUX7vI(DkFSfh#NcUl^**OR#3Rb1Adg(UqH0UAVq{ zv|iAEJyg5prmp|kv#~EqU5$ppZRDiWQ6%*G~$)8%KT%wb?<^z7cT#WRuy~id`a0*J>-s9T-(`aeXD3l zHur}K_?+k01ECM{{#8;(1QvZrhNYl<0ADK^>ZYybVCm)ZcB-t_tFGb9@u>w|qkHPz z)K;3)Kax)KhA*jc-j~LlE6W$g8)NFyG;NY6+SI_#WcJ}fn2HaqWz8&sfE-zhTEiSd ztH||^J9Irl?Ih`Lg3npU^WhB^UpyZM(Y0bXg6?xp&j!F+5zY_anko!!?UHg=qMYkb zT1BXPty`+phoVp^6$ci*3;0Gj!&ie$1T$V_H9^yIp4VVsnL?xi_0S4{Ss z(OyfhY@2K5o(iFGu`O5G>1eNHty`KOzWi;{3wQs0?LBeOc0axO1t%)Q7FtC*bUA57 zghq7Zk(b2|2xiQaKShLI&n9F-vWDgIdy`)*7c)-EzoQ*s9z0o~66f0fEb9cB^)%P%H2IJM`ED|Ufc4CQIUM*_$*YN#{kp^}uFE52$n3_omfi2h9n~E3?whE|R z6`lx%{MlVACs>nXd-BX%8aL1Uu|mGscIh&jKFvIR8#r=(mMUMI^Rlz`-sXAL0mTD( zO`?z)$~fS6-;zr$#}e3kA1nMm(<4MWB7jc0Sg zsT`Fx`OG_j2=)4wY%^DpNL6POmrVkwBOQ!i`w{CED#E!;)=9(N8XRWq{EwCmd3n^KPN z0Nw95{$bV~>FGnF6fMQa?4-KSOirUTqZw5?LCMQN%uV<#MP+5c1o9@pAy>l?WlV{} zz3UlINDq4Xxa=}>>ct+-m98B9xU1DPy4Q6&P4fKPRDfm6?G&ASH&cw@P>b*K1R{qh zj-vr}PdxqdGxts1IW{GMUN&YWh#cefwTRCwGEO)<8mW!woD$Tw{+Z)J_<5x@YI-Gy z*nk;X?MT8PjL?iV>Af&cQxleq6$%Yqzk7K((C*5Y^AHGo>D$WMj4enuft8csY zTV4j-%&*PGgH&#*m)~|VYLHlG!X^)o-^G7w{^zFYQ(88|O7VLjL=S{X#7J5~tTm>k zSb;RTDb_r!$Rc{sm2fpS()vfbWHNk5=jsgT7t*n(**I6*DEmy$+>$C|qnrs?GRoQt zyW9{q3R3Cpk)Bs7U(`O^k+0I({4i@_3{mmp0UT1~S`1t=;VoNgOBDy19$oA*vrS40 zu`ynj?AjbWJKyN-bEmSMC#A>cIuBaUE>4&rpSj%Thdt`8gQ;>hBzDbB?mULHC=F|y zRyjIPMjCyuKGrF7bpq?&r3Zdk!x2T6RzKVWXSg;ZnUhX_cM3=v>o01=PxVO9THTVn zW}FwK4={Ek=`K-_3z1lsl>5IV*H+7}ya=RyV@}1U8%YSayZt1qan!)MK`~Z{GE?nA2 zQ~;d7Au+wrY((4y((99Nzf=%CL%+&3>}EO683yPtaWxP_^yH7MU-}UQ_BhT3MD6CM zpGGieQ}9W}E~Pb#-;{ zOTqI%Y5GYVSP-{JYSunAe0Cs>4Ru_+uCLbyN_GlOxnf~HK7x9BRu)<%M2ApRe^(7v zg8L;^Cv1|;8Jjvcb)5bL#G+3s598WvyfmJH=HdvM(;&r6G&SO3xQ_E5p@8VSKmR+G zM6j=J)-Js8bH21iyz$yn6NR&0`JJgkB&b=qn2G}AsS%*NWTg2$C|2NWmbJYYUPirR zrm{&W$flG*>BUc))KHf+{be7q93cR) zLdU3?h~&6`_?0H>x&RDOzPD}kHg{DKVla=4+;*71G6IX2KWSNCGs)GxITUFBf{)%C)!7Z3{PlZ$2rb~gAhsbBeK@9Ok z_Y9YOqkDzWaxPhqcKlD6pW6)1<5?>mQ)JRwXOBVljv2Kb+A-RI!iV2pJP=<^zAGgp zq#LW$yEvDxBkN+n8#=pSljV_&b4jVJq~@GNtF-*Pek-4Z16%L^+<9P_GIQ4CL6$@d zSGMl;H+Su&Y1x2eWbCu~h4BM9mvox!{rBa zeD}pl4!#`##KB?--Z!?K$6JN^)K|C*jnicAxBqxKqWGymYPj8!qVYJ_0$!b!xzLwq zY$g{t-!%U_R_>c(j+bzJoqo!SFKLf{}${n&o!))>QGO$vBo&VqwWiU0FLob zYl&=CWJpqkR%=-4%x61oXKsU_O0$B4MsXW!D=%>$s*w6tqhW;q5oL8aq-Gb-165SW z!^WNh@=C4C)pS75q>`cMe8=u;e5gIp&pB@E#n!gOG_Q=l@c`kKMuRHrXf&Iw+@OfC zp4ZIo2@Ho*Wz5cQ)i3r~&5nDI z>8!m#y`!>_hRB9qDrS!ZfUGS~PEzsYMC7s6=b_-(_~pI)Fcgl~k1N0l(Cy)>v~h>4 zwqEFo!BN*BaJh}$JJVr#kK4|x{_);Qq6D7qbUyy~MUo|Or5NMm0ZF_{8Z;u#X=gJqa?CU6vB-N%qz!}6_RRR#VyQCefnGo zduX6Y0~AT}@=cn#QF2=Sj}2(f?R%`P<>iD@O6e*`?v6|{u_lYUP`OmEH?6Jx{J_f_ zNyqKCw7~aU&EiyuQ5iq@P<_D`Y9?f*;YHZD*h2RHv_`au|Q2f64IvLI0CF^?hl#o^@W^|bp={pH8l zs$HnQ#NPPiq4}3Pr*#FEnO(0dL*LFQ#AzEVe6Nn?{pphcSGnbA+w}Q8p~>rGDl#I^ zZdJhL_o|%cMRdI9YjI@Dp!APKI-V=15Rk1f9$$>Ge@c;7c}O2x+$WF|IJBFC;IhFb zwGa0z+9ga^Vw(#{qLst zzAaaNwiKOtP(utVUD{%?mo>ff_^Z>w0e_S2=0rS*$a@a&Q%a( zlPb0CUqQ{aUEo+`yt9@%A~o)}WJF=}V31Ju%0EL-Y?8gM7yZ>XKmX`SznK4oaanL9 zQUq#U|9V*LmG6hL(~`^IGp7xLL8Yi{Il?@J(CmHNV${mE-Ij|-(a1Km}&}H z#`~1z5@l2(z)))9CIbblbaZwKebw&pE`gYrE|11eB$IJ!&w_lA_B4?^SLqG0INrqq zB>}?%l1XsC$dkco?+*~gk1OBN4ixW7>a|SHMJb@M(p*xj@@i2NYO3i_9`;jU5=x76 zdiru0EpJCaneGK=E7_n5n5M95i%pkO?ORx1Qf@ri5BB5Enp&aN&jFOr9wo#)Z5*R? zJqv6TAyf5%&06Q4=nzj*M?d)XS$Csr^FZGD!}oUgO?%eOWNr(Y4Bt>ROYm>CfJY z`s;^z0&)WMJ<@h|?Y6UWSIb?7w&Cq$W#QH=k0#`0iQXp<*n|LC`xpk}Nuv|)`%_#n zCsMR6EY3Le_-#^v<|Z0+zuTPe-*&7OSXvY4F8vJ77eiUn|GF_SH*vpXcKcXX@{$?% zS#|e&BNyB_CnE5;(@69U<&90pRvBB1eZ=a!@m2${3W6^bZ^8IMU!56VYrca9XW{nV zX^OtEUEMnjq_@?b|2-1Jx)g?FDPD$i89NKYF5lF6k=c)|^E$i|=y|RXU1149q-F~MmXjo#CQ9x!v0c#~ds>*>)UxSrDNL*kmP=4K- zHNVsu^)q&Q0Q2!z0iO4Mx#5gRvb1E(Mb!G`|4zjrg4Bbeo)VE-dQCSGFOLljx}7P% z@)a&KsNk6f7xm?x1(2eZPa+*6AqXpDcemWZ zR{AfSG+J%Q@9YS6)-%AM^UZ{ogRAT9T}63R%`fxn)uzG?Dd!1j4SIHM=tHnUwHH{y zM^Fe$hcGJhi{*qP43`=92JzSBlk+L1`B=sY0ajvt%|^NxkjL1X1J)enDITj2MLsT_ zXes<7-Wqn>XjDp3-9oTzT ze@UhWPg3jIBM#F6oBTs7BeWKoD0b)}7y{#IJIm^NlrfKrY3X7B6x> zKpJudAdkgJ(Xq0>Zf31Ed=XOOwu#1*T&+_*;X?KA7Xwu8Qz`6Ws@#;+6MkkIhKHC+t){R(Q z)o+}V^}0TiVY*n8wY1dIzfAhP%)am|a&mf;GPypD$&NRjssw`@s?VVQNyH4x>=m&Pb6LxRo^8_S-v3 z%QSbQOIRWnl8k08ss&$1l(;&c<+Ggf;V<;Hn;(Qk=8vTPY`JFL%+K52 zF|!Nne4N4e7LrOz#aOaVV9P@GE5+N?*t&dKXY)M>QBqRM7UP;*?fIvFRu0|-tr-nY zX>d(FbY11l{=N+h`Fi+=_(S2kY_Q-pb6u3qpG2&~yl zlh0_MQCtyun+!$rra*@>P;32&D6Mj_4OmUha3t@m*pMdOA{hQ8@8mp9raT0Fj)!R- zIXJuOQyP>A#`Sl+^4ecGbcL02BLdDdlS-;X^dDVnalUf1`?;HKf!l(fRk1@n;P^cj zh&dVn>NgnMf+!0jE~*a3I$MM2#17-^kxhQe8zz3WQAVmqMjhB&%J1qJ;9Bdjb+BGu z7CK>6Xxl`$G#e^zFwrr0&1+{X6q(lLdKsiigQnVpLj>j9tgfGUi<7MU?it;@E8omt zHPUYT>(h`$BvJh2J8|c-1V=a*RZ%l&jR5`fpa5EXGnp3^}bANincDFhneHG7pW^rLv*VpAceg!N0XJu9SUX)ien)V5%uSyt>V>MgzS zMA&HdBo1o4{$XCI=1Qt`#LYJAO(Oat4WpN`^em+jy*^SglF9GdHpgM~j%Jy2+lnNn zR8X&)Ts&_((dlj@$&38u+V&AwOTrP+WN)9>%>gq-7gua^chkz@w?pTNNZR@+h(cee zLq0*#v|yWd%mXRyyhpDK)o&^Fed?l;oIjYoDYv}7WSiL{9Q1ry@BdBaD9m*dG|v>i z)-PWjEO<7p?J>91a9O6Uim};!lmRJoJ;padRzL8)Q&<7}VN;fUmKHB0MRDWq zS6ARPA;Yy?_7UDAHDQ5DPX#o0mTAp88BTwC3zR2FTTL0Gww0+zGNN6%Bk;#c4ok0} z8$J2HB&<^faiCQyGsUV>d~j0( zEW@S(<*i0dH7HE~IPQT0dkwRYa$%x|W9}4E#$ePJ3$9{!S4BSfX_%Dj?EjD}^fcWn z%S5$xM5IF)@<9&wL%%EU#Bl=&b9Ey(IKIicQ}<3a_`a#ki?o&r39Re#uY|{Pb_sgM z0r`u@PWUj>#_p`Vq`H=@CM0BCGB0=DGW%1!D4%+-im1sIY`vg{*`Hlo-*N$}Pk+z` zc*F#YxCK6Za$fK4lZLk@L&Yt%2;NZh4(2X}^Ja-NWvIe<9TFiIk45-sTfQw6iI5go zY|h%uuAg#AQ_%ftauE<%o?xxGmr059&P7S~;RGdvOv^^)O7PJJBZCjQvl&$hCl5$V z&&Wx;-REBl@uN(il`-pKP1PiOWRFDOJ+@67d{+PIS8PZC##|YMnMck1zW&{@l(cE& z-IBBq%CLkk!WNFS`#z%{>wGyER%(zun9Vc4a$%8PQJ^`DK3e?oNqM@L6HYtq@Up;4 zoe+;L-W4^lW?7EsGn=1C4O15k`Gh3U+B)C>hkXd}96UfjP402xh~N@r5Bn&T-pfd3|EmE%%k87BoKEZ7t^N?Vo( zsTNC-(1;L&5I1oLD*(~V%xXjGG4mh2>eWm>e;8z^83)V#j;>~fa_dou$_ z%RbF4EZ(jT=u#GhTC&1OMT7LxnxyYPea36EIf`!`W{e z@}yucy8XuPphUr|D)y_y2@=pg9t@&b^xsO&2ppn7M!fL@{KNi(N_1H35Y4zVS-5xT2gg5JZ+ z?FEe#Xnt@g9015cW*Q4|S}j4Llv_j*w;8zx6A+0&)V6nHxp4@y>*<=g~@lTz- zioE+egbnd8Zs5 zryfHucgAI^nYQ1Lp48ziFRzu+VW^yeA}9QEJV$UC3G zQ$WLog!NJIWfA=5QX+JmGTpKaw1@pGXcnkx2oX}_)0|DLn{Ukn*^pDyAkbHWka{&< zW@xtAk)!5oaa=PPzPH(R586Q_CH0iFvdQB!+ov+UjCuRm`r-ET!Z^)ePXk5mfeL%O{`Jt6zUag><>jP*>uk0TH{rBumJ?i`!>z7th1wgkjhm;Zw2p}H- z+mJ>`VScims#Yfg0QQ-GA5>ZG<+c*?-Pt`8Inr`C=sKaE3>aI2inlTa?l$xFdFD>r zSn~3AxysKxR8XqYNZ%_H-P%Kc7Fogn6o4QHB^z78m&M}{C6ssHyc2k=nR)Be1KnK;uFg?2QW3xB%IG>9HvzDuCV^+TKk;K z6ZV9Q@GM19!r_~tzC5ucaVe9t2TupmV9K8rL@th`c=S-OKzb^wBxb|Z|EW?F7Z>o7 zsE#_v^Q@g6ck|);GIoGsPw|kfOx5UJ>a{iXAD@CJBtdT(K8x3H7?xXCz+~UAoLmWi zDg&u*XmZ>kg_al1Z%ZaUs-R;%_6`2@Y2qBO3ZtqlQK4U@5$DPowm=Ei+8>9C1;DUx zuT_Cs@07|x2K-RPO9qFlf;xhO`(>gYc3rpWxg_ZNf*5~c^)dxVpS zFV+@4Fmw*={I6bG$0&YnbA=nAe9NR$KK%WDhUKU&JaOVlQ#q8aYo;I&8zfCfo3qIo zsM#o+J-=46-~y3IoP}`P_q-xG^sRdoIL{B`8RC~_j;`)>Sge_^_2OxJBq7D zaW6>5bU4MTQBn|erC*ty3x$PcIOoD{k=i59%!+MbhMinSDI3rO$H8Nrxcx-pnjUj< z#i1aOBrefb1?RY=UeU*=jWrh>tH=BScwt+ zL>QQ{l-+v(iI&(DN{WC^B)jtHsYtEL)f7hrL5p!qqpy5u@aO*)kF3J~CeVwMRFY;) z62=89HI6^;tR-}Q@9d3JF|IB}t8u|t2IwU7&?;k7W2(V=AK*s?&=P;a5);S~j4zn< z#Ql^q#hS^lq@Rd&Es2v^|DEa#H;>yX;{WAn-O5mTxE3WnN8h>pS7)umFPHVT4ue5U zM~)p4`dgko)~;Km^KT3lG;tHpUz0G>o;0BNvTdf=mM^@p%PjuRc}d_%(O5wBLDVSv zt>~!D!RkA`LdV3u%`vVW4`ZG-DH=WjcYduvC=!a&wVL}QF17s+llG2zumT*}6_W34 zV!6uBi-4WX11e;*)kxEQ+d9kQ&C;-Imi+gfI{hL5T4uGUQ^{Kg|DA%m%a|#D4sCE- zHdB!_6Mz_Ga=3}o^jNE9(*Rw2YOX~Kas(Tts)W+CEL&E$3MME(((-MR6cIntaw{7Bbt^YQ1=Q9~i1W`0td5CI2hPHYTBA~QXzX#K7S zxX6ppbh!R` zHJ``UZ16c?`1YpqLQ*-`cf6T}86BmW4%w%zE3}a42ad0Na$jP&j{pI4P4Msjwyc#6 z6`zpSLD%34I)bl%Y^zz%Tyx%@c=28g8<KEz_e@|SQ({V< zkI$86EnDp0t7yoTN%;Ji@tJj4a+uVNR6CUtF7-U%Dep;w&>Gka0aS77DCnw8OWqIt>_uG8mh?FtUNh3%2|lwd_)tZ;QA8kz~pp=ll@i`S)sId{073!mQ~R zL;;8TIgkW3_AU z0m5S`IYx--TB23UAF2R zmyF7ba9BR>1O^QXIk`HGJ^u0Ad&ZmkRTD=De#Yql3N_s=-4?qN9c}H(&8g6+LAfen zlk6aNPp#1cDwgS6y*3Eca6KTar?XW~d0sN+Yg6>Pn*l(6;L7AkSa_T5K7YL#n5lWP zZEN+^b`5q}pC6FBr_bA!{a}*q+z+1@*YhyqxhwPFZv5kU#q7T6dt;9ett#ht?g}K9 zb6woFAMwv;{&$KCiduoHuSCfqLb#Ma5pcJCEF4U-4F$)i%=Q^8ro6=d2KQkTGiD*4 zTh*c@!cl!D$GXGwNq@kZlsOdgk?2{qv%$fJV+DW$hoO0Fg5O?x^G#81EhcThW_NYi z)_|4XpYX*pVE#=b|HgW|YuGBg7Qz@EE#q*qWG;AlW!ts5r+7WuRPO7{2)(`~#`ylm zmMgLV?U{H~eQmAf>hg#1G?iP%m9967#d5>RCoE;>#nxM(`*G5=OwrJWZl4jEFc~={ zu?Q97LO(9};6>-Aqt(a!#!tJOe95Q- zFHM`IC|M+Y(DYAu`R&Ty{9^B76{&F+^p*;Z>O*Aw9!Y&IKz)LAzJX5h)?;K0{`GCM z@nFt>T*+Hc=$WRbyHfi9QFI=DN$!6e?{wNWO><@^_cnKq?3X19-|mw8jpA9IIcR#X{aM9 z8+nxF14n!A8KXy@{L9?lmV}v#WLu|A3bRB$!#(J0u8~I}6)1+ms-!LN>PBad_Fpo8 zkQoELGmpr6d6MvtoMq92vRzpV7fT|}s1%JFZ&xGLL&%dAgqr%264iUNM>3r_qT@Q2 zOxS{o=H#;E)UKMkVmyA{A+lS&VXyzeT-oaW+v8X8cz?R~rVMok?UT}w$N?~E1jRS1 zB-Q0pRLiWZ>D#+ZirEHx9te?CA*Y!}e?k)i*Q5FdnF!@aKAdh~^p+ z9aX{Jqb&`uzowtDyI-V8kJ{O??wn%rI+0C%i)q#MQs{KqG@kBSv?czjSkG$*BD;Ly zU8SBsiy~nXedy%|0OpC_sJ-ehP$&I|R#v@~t4|KJ$PJBJYZrtg@_0bM40W z-?2~yOtJ2@J*!9<7#TVpu}P4N-kKdNUq%N8=_R=C4aVG_d;s6~i<#m(~1jGz)eF(e{RZ`g^g zeL7mg;tQ6A#6}2B-}9HhPCJ4Hs8G+XB^Iqba2Aloq1RCV&S2n6cPD3K$K>*x&rjgb zZ*jxS%$L3O!a9v82>4|AaD6B8U2CbQd;wOh02jD%JRX%{gnL&w{17fbYC@*T6=iP7 zWgETOH`I*H!E`)ZT!BbGYOYS|7hoKAj6h$dYZ-f$iTYWknYH?B=5<_idQ~jd9_T}S zO_A6qEX?K9F-^^L4M^_&qC;-eHZ|BlN>w9^!hE^HJb-TVm~7=1CI9~K+>PnUB}hzf zk1&`cjDx`lmMsWw8jkQza<3#q)63z9KynE9))*9GE9u8P`>CY$L%@m=Gz{~sgcud9` zV)cXiGdb*PKYYo2vuQPPPKx4Je5K(I?#gI1RMW(cu8yXUu%p?_`6q&nr6@etY(6vK z5aRhXk+!`vz?IR$>R4e4Z{L_-OBDP`zrv^60e)G6I)j?M|bE%T>P}`Rik>RO_6@ zUuSSm)`!nr&a&dB|49{op{|{f^88_2DZ1BOx}2@j^-ap9`)0r)&5dP)#|m3Z3AQo( zP83f=Y84!cuOl}*RR_TostlU={`#wy%vo&u4#%!gHr}be$|1gl9kWas6p$>~yqO7Y zVcNU{D3#71x=mo4O2Q2hgvoh)kMB^sVV7#JksSRvtSJ>$yV82a z1!xy}JMMq?`DmTT7C7B3@0-+2$fWniaP|NUA+zSW{Il&@X%%xn4J5Zrb0FvjW#|CS>{DzD=Dpr!+W%BM-K&U{R(}KDSTl@vA$5pu^9fy zAm8CLye=Kk&!;5%oU`x>QY)6j(xR<@$|MO^+Z?L0cti7eWstOqj2I2GH~FIL7qAE^ zd~oOq;tU^|8XY{^bBai+oc(lL+waerA7AQ2oRjBCO?DsR&$)dNu^Arw$4cEIs72N+ zsmF#=6!`|BifZmh+>FpZBE*_^*A%pN^*wu&bF;)hIf_jgP1#@CQ zmvS57ua-;h<4gq8F7$U;xa@pUZ%DX(y={nk0Q-?sL-y=G+s~C1x-S*U@&sFDRUwLY z2%S`iko<@!)7t0$VS+wwX&f$B{>jW5X8sRi8C5?h@uSm4IOcCNn|XlayV1tQz8U_& z8tJ9~FUuKWrX9!{Bi!}zpmo(y=pKxjU%ha0Nb+6cG1xjIiCUlMZPD}Tjm~1)HniAA z(k?8W?+9Ff`0S#k4Po+DInO9p&Z3n32k3E=8PUZxe|?@rbjEoB?jNiCLQPMOW>ip` z>gm#FZ`V&$p&TkEvVlK|Ro-?U&J0QPzU&+88-K}&KW?eK>?8G_G&e+bH)Crm4$ZAh z8#4$FLdgy!W&jf{zM|uCqE3FD|B^j`A`($>uDqe2~ z4`@tlhMjLMQJGUG04fGIS&(DOiTZw36QlSkoy(>{kx|fpqrC^u`6BJ@C*fy{`gh{T zGVd+P>i-?Q6%C&YNtXeTp1#Jq4cRvilPdBy9XOkfNmvz(&@~gka>9cIDZB%*k>nJG z9+AMG1-Pbw|BozK^@wPNf>>DH7|_Xby01 z@^VziK8c-kdJ63o<95elve`>~Nh=H?MO9!)^1)#(B)C~SG7j4dTClFLvuoVDP`8z~Mz!O)7m@_(m6O8b4gc3ZG$N++XHE^jBS&GCX}qrZ_qQ85CglA zGt?gNcyh@1ee~RA-J3`99+Q(x<>ecs!w~x55D&}$`E`9r{atBn`KVGubuEC8hsR4e zcUD*Z*4))^QDVAQ?`=YngC%ye4)&JQh%nT#JfXh1A!HazT{WvHo)R4KHIfo1OtBhA z(U`2`opD1Y*g;k>X-LPs9O3m7fKnEAt@M{ah`hM|47_k!5wVaXyu zaL+);ud7i5EnR|N`%r4VeKWuh*A~+p4j{1cFinh)Swjvod<3EoCb`0z;DHcTSqV*U z=X}DYrh5cf6Jcspp(hDlH*ez5pi>1Z2P`N4xB(b$HN0{GbKas$foHvyednS5;RJ!1G7J0#;c*C`p{1 zXb$*mt6%&Tk8yMABdYAr4u|>pZUZjqm&FcQDiXa73e^d@s@!gbK!!sWh0<8Qj%(Oc zbgD~&z(wmIK~Z^R%1Wbxn`7!4X6F6Gm01p^UBM@(H62s9`8CXsnZH7zh7q< zIBC*vFdU^^pRwYpMSTfA1NBM;@H)_6hbQ%>t=-kEkp>}ZR8Ykc1?S2DH!_!=-!cUi ztU$VZMJJ~cXMmC9M}8azaFm>3xy=^4U*xScB000Y=SkL2RJ8=w)#7b=ZZQVTG-VWpvuhudyuTC$m~ifDhHfYzbvk8e`s#gM#cOG86 zC&1Z%^M#%7F82C+rs;>!Qi~GN!KV ztjpVXirC2PTggffe7DJA>tvsq`c!+YzLdu|I#6(Gc@24rn+8U(m#B6+G4vVoBs z{j=oc)i8w&YKXJmtF57)mX%ez(Tzd9h@JMJiv?*{94!?a-nR;f_TGjimnnB}txNG; ztjpt&!3)ePTDm7r(opF$VNtSh*Iumm{? zyWKetzQ#x%b65pHNvKj*%J2ixEZAD-M8xpgS>Ru3 zW?PAclgiJAkc!%${2YX5N8K|e(woBAKl6q6TRo7lcO3f3A0&gk9$6?QOpxf&>@(U5 z$Rt-v{|;_gjp@$eA)0ZZ1<-vY8p`w-*60sEa3a%XJoYA z{ErNmADlDKTG1FeU+4!B*VnO`a1F7N`|f=4!)&SX9gUGMael1cCTkY7)w+kc5CkDk zQ2_guHtxDgXlWGwU72{}zUq~z7zwxE1Cx^!y5f{(jb>o+kFF?WRK#^oKGf`ty`907 ze?k70hd}JV`TFN@tEE@IJ#XaAax!gyWv#ui3i93{=0It{0E=naIh`7qAtERep<9nL zx~BLB1ldb7b{L)??ft!4q@bl1Q}{o(Az4+p8MC#Em8=uI!OtUlF^z}3eP#CjH-?MN z+%;BLs$wm&qk`Mg7}dC{9t5QMIk2;SWf;~7W88k%dssRL2Fl zOH^NvyinmiZu=GgDPXZ*cR!_Z7!|sb#~NHbx}yrX@zi}2XlK0>T2Vvq>#D%$Wqz`J zUvB#1tHGGO+YUActHt5RYmI+>lJ`W=YQ<^=%d#8=Zkl@y6xn9 zB7-`{`M6Op8vQ%S_!H1|gwhSn=+r5OvXaDz zpZUw(SEkN>%cMM$di7cb2Ppe-lClpjL3-ntr5xX`cvdro68bv`!Y;L3EJ!-EaLbF| zoWwuP1}~pkg}&@W7g$;*13I)!eo(q)c)ZR(s_;|$V|UZ}OJM%v3eVb)wGvPD z9}I)ZO;S8O^A}xV1#ADEd!n|qu}-G1aoTmsJ}dC}nLH-Wf1MEJM(Yszc{9@OIIbY(B1})<9bf* zMviqb5u1GX1NGkuH(6^NcyelK;I!igvl1&;T2(NpR6(mUOIlT+5=)yox)>y| zpzxwtO{L(=Y_sGi8U&aVf>~|l7>LkY6wbZO3iZOn$_~}C9HtsI9nGIXWv{9-JvG|(Bf#q@VQ;*V@I}GQ9T_WOmc;ZDJ+o6_xI?h1h;q05<^w0=#kdx zWG;R6@C3k&DVP3cboMOheS?S11?lYQs{*2)ZPF(NI`%4=6Sk%i_SJWdB}!4+Z}PrVKst{Yth^wtED%R>%6|K zHGgD=|9e42$=S}H_}dQ@Zb*L}Zw~3CdKSJis|r{FUpA!6)T7w-+G<1LM(b|!6Y zJ!@(dqaVgbd+M1L?Cp#6$}HDR9KrF7)K&%epR??4xVdbaL1~`XV5g|FDnopd^61ak z@buCeGft&T=1X6P)8}}*{Ytd_>Z?IY8SG)Eky<3=Q2Fg`^pJ%MvWyu-Vl7vUg8w@Q zqWG@PBA#$Z;~pOlN17O&aK6NooONsfbOESn()sKpGp7B}2D71@h=A?E3Na%iqw686 z+{T_*?tJL}a!@2|c@#HEPfFv~5MRBdcDUnWf9@R8)m31pJVjKi>e4iN>RBR59xi5Rizb*ja4CHktpO^PXzWpTO}+j(cW>tqg{h$!Q@@8IB;cr|C}^Aubm- z0&jj2?{uX{lV>e%^P&%fV)|r|Vpl5+{9)aru2YOB0klH)j;#E19pQ?~28Dg0BXf_C zw~NycD;*Rqy{dc+9(!$y#s-i6E&J!4Mw8M~P8gP3ZI(0&wsS@9)&x$m21j3#iG!T9 zfXNez93*JuwBg4Kqd&CPGu)|0%+M;jmm{`23=6`NkH<*@LBqwUBL2XJtWdGCh{2^#70nS{f5a60&~Hop z2MCbRO2ss~ENL|{_$baVsnUq8 zy%jJ*T1rz;b78|oT*_WzqkukYVTvWdeQndb|2IOBpsZRy< zj|0b#hsC&x+!1drn(yv%bVNSdzE}NZ_@8DTLDO;~xdc zkp`YwPCV#wBm7E{+`gO~T*jC3W5rqd0Zh9O={HVuvNY>1S?xYepD_yW<|#hRkv89V z;Zf&(FmUJyMl;8}JxssE&VO$~=3{S#mZEWw`%z{<$1W|M3@AB5YRmk)x+2tfMZDi$ zsoVz~5e{G5)Lps#TUMJN=X0BZ);Z{(hm+JDr$H>-pX%9F~MQ_5wnlom0t{wE~=4x~#6mMQpw<@S$jBIEU z)51CpxpK2psb^}VCw#N3T0`WY0msl0DR$bJW3lGL1{z|M#oJc7Jj;hQ$+)X+tZeXX zV)Hilf%Ut9gCOm$?XhwlCqdOv!;#aehYc@RA~L&k3O?r-jH-$S?gc_b_HGJNmDxZi zfGGh|C}fR`FIav?%egyf8rlV7LCI)5d{pA@)(q*2s)NqsfHLUyeYKr_q+gY^?(J5k zKgH@_GDTe_9|4v{Job61%HcIJnX$@O-+iBvh$)fg7UM^?8{I@3_)TrxPO^aH5bY<} zl#=yN)@?&RHaUNmne*|ReYuv`m*b!SvnotKgp@#4Di};sdO+g@ZlAOm=e3DfIS%Wr zY$PSmWN^M1Ao_LkPD)Pz20~))PgLxLbXk~?PW3;!ru$Y1_L+fvOL6?wi3PrkRnfDj5J1 z$d0rb{T@2ElfAY!%&@^?7d_ zsM*AGw`XAzy3>MGh?*+yoLo6XpNw>Co(UWr<~tfAkh78m`L#WnblM{7Y{X8^sN;t8 z)N9R1+^YyE@_>Ow#M7Pg2j319 z_2RO8m!_2rcDA*jB;&4X3qIrlrRTV>i+JKmo9!JSL(vM_xE2(7H~HY-W5cEY&fQey z^&%=TPXEqE$PeAy;)uJgx5&Quc;XmNtxI#_0wSj;cr*5~ z%LDKq*U60#Z@)I9$S!(AS@(b+LHz&WmDMctUDK)rD0YbY7<@m+1gU77P?X@CEJ?F8 zGXd(U8{PcxTtmvLp1{UhYB2c}ccL)68T&qX9~dD&XjRQV&7BDz7~51gZ1cLy!94C7 zxMB`P6JF@2t|?xzHq5f?O8J2cJx-V~j%}a+t(+C`*Vo{3LC*$mzMpt2=_1NnDNe&Y zX?f%D^{>P7A{qO`YdKQM-xtwJ^$9pz>4De>N(7^TuhqW$ILQ&HXhCj<&bkW9=~fcd z=~{!xcK30+qqwHv)I$epIk2%!_>&0nY{aZFk6t10M)G*<)D5++3T?H1m;3W2zBdZ< zw+({=3ZYigC*9$E7+(oiA0oQNS*9gc2+toJ&YAq!x}!95Fdcho&af|i;_m*JtDucQ zVo1b^74qYJz*dNVTSr=%6}R*;`=#twT(TY?PCTd1Q%vePxU9nNxX($Y=KFu=_=Amg zQ{a$e3w5gjC-KVj^ydn!*Yt3g^}u~=P3;;1q^iLC@oK6lVxj#mSXfJ8VeERgX4lS% z#AsQ4aM#r1cVfpsoFA&*E8~qt42MuwVU&vhd$BxsZ`L!^&ae5>mziu(5Jg2yBU2PZE(A3J)%MYjMz?*m(ut|qWI|D}8a-=!WG4xrO)7ol^!+m=M z8T!`Ca;#KcGe%F}#u=fwRd6!yy_br;Fqq)GTm=SC8|7u4{J_TLgy5uVfr~Q%NJd)-qy`TSpefXH|?brGG#*v8UWKY z@S){g(b+{@y?T_oE0w0La>$-kr)!`aS4y6$c42phPe-I2R>&*@#|;r%%+n9A^9*&Y zZ04uQk9&aPdsabhDICmq=YCa_k&5Z;2BXSiSXrGoD%F|*m&Kk{Ec~PGy|=*Yf7L+cKVvNvtCTp; zr#l%R>q<+Rp$q|Mn@F02fN}GZU-?t@I%%{B_psO!y$Nq;_`pFS&?4J%8xbvb9GO}{ zomqVso#oEjj9WvPo%PX7o;H)nLl>mvKP@V0ai+ZeVgBYTWpk@+TO1in;Ks}@yOJg~ zXtvQlTrkVeMcbObcnx#!<;T12I7AF%YB2Bl+ctUVU~rvA2Nr9EE9vcog6&iVil||r zWhf%3N87eQZ?>dn^-Sp?jxY&oUJl|X6UrUr<|t}o;n~zevcV^zm!|)V=euV5&BV3| z##wzry`%XtMWNsSx?Z~HXqi>+VclX z7^xHw>^oyH>CTMd#!=OJN=|f>;Gh>d3Ua^H?^RyWCKF?MnI7xw8+`gl zPYC^@2|I=&>xaRw{t32M4Hew;tnIVp1`g#iA~>yl;YIm|u(E+%-f&$%n@oUU-!&yn z#=!Kt-x8~-k>t5^gkTwO+Y51RixWN{M9pku%zhF&D6_DIhZ{a=c;uO-6EkxvcYl3$ zgv94u^%ewts}lIWIZGV6alveYdj2W>!1uWb6*fxHm-_N7met=Io?_j#`Mq&6nSWK1^DGiz%fghDkb>&k4{ql7%K?0U zq0C;3K4P5y0rDo_QE(RuD~9Dq7p#YoA_Ugx4veRFI(5^171;sIbho-uiMF-hiPqMk zko86_+np`Cd$P*?r)~6w+~WH>lSD@5I*(K1_I>)4vBryIvAEd3YLt^f0%0K{2@#Ny z@%8*#sNCzjhFq}?Ib^)ltjqv`tLSQ9RvW0?n_g1~QevwOde+P9LRA&?dEVmpytJ2h zRZac7lcd^l@I@;KNGUMPV-Am|rS?nmQTWNe`%_ut=VQ> z`4zMyhHBkUkwbF1Qi5f--91Z92#eaTZ(E-Wm0GmE+U~<&8)^>5-g+g_ZGZHbHmsH% zxyvLvXZvQ*wuZqo(k5-rijVbxC9mdm_qaXN2098z%<-_AD!9KoRAiRG7rZcX>oz+i z3?-{oPZ!WUSV5tpKK05S!hTz=Drs2tr0N_QR`LS>02ANRZWbyvx5enh>x$BLOJakSnMY zM0uLhrWV-Gb)vx2_8Vpby~Z|M4OWoQt`b{MepUPeR&3S745C8QyO~|=>GPzElx%;M ze?{3}iq4nj2X;(;Imga--dYRgTKKv*XMK^s>XRHVy)Or~z)AqFED-J^-FSP%`74BC zA8>ni=kl4hPf6ctmvAe3>PAZ%!frr}4evAdBV&I)_39T~u17XDCx;8n5O{2QpQ6Kx z*;v-+NU=ds(<>BrRyQ*CZ2bEnlad;hefOX8p9#lnJoj9U(p__Wnl54F3wUbUXCD2| z*cAPwJ-?`@E*}A5vDXnRsWF7_wSul85q1x>mE$%aKF{pydZNmz!C)F`=z4X5`xlGW z?`~1sYC4SX9w26$-m+&C0*C|s6R@+n9>$+1?LHY@hHF#b{n$?FVuf%{iCWsKF)|p_ z(Y-r@t=#=CVLG0#>xs332&m86Yo5@07<)rKt|Vh9sM>OCKi6(; zqHz-`dQ^nZvTpDQe}2#kyOdw^;1)6UZd)w-6{L#PO0fT*aNRc#0=wm29#ns?-b^e@ zi^`L6&ucq9c^qvXr`*q`US+Y$bg!Mi`yHFMNGzfC%*B4Q4#;0L zHSYu@gQN|+=qOyTl%c#u4o-j|L#=3nrkl30KVs)P zVCtLgC;O=?|LsEpR(xu$c_k=-8_D!_Q{h~9b2qTrD(~ShfwvD1a+uE+V zy5Y+kJC-Rzrlvv6bdl~)r_Igj0UG${->0MpNKdOhA>M?-l^}AU`DF6o#9>;)2o<&f zz4yUb!_Df2WF_uLg488`hpn1_t^cqc!Ro3=>!Wm5(hNHaa@V;sR9@+L+vuY~+d-s5 z*NMsl&yTjlSgTxvT}|V>{3I+Q0X#)4&z+*EY(5}Ojh))pwuYy_EGVTAwAoRUw=UQqGfERSamv+l#Pj z4a}lNdQEAizbk&Fd8cCt;DS;0eyaLsoaO`T^ikq`Qi&zbvOkl)aeG9nCaimMWF16^ zm2HraTZ~IhkS7$zt+QpnTRXva?fawqBOm4bp&ldeutDSLvYH8HdX3oRoF6u7V_rJO z<`}*h*SK#0T8TzWe!%ZRBj1JU8cRN>7x+@GO0&+HrJ-OC^TI=O90V8Y6D{rW>(CP> z!P5``_rwP&3(Ve%KY3UH!ytYk-sp%Ag{zimWy3grXoo=qSY&_j1uM;t+$b(}euws! zAJzRbd~&nIi}1xvFmFRozt&6x;Z9tuYwdN~W2~cTvaEx2aQ6pd0m>%9&j`m4@?$O* zV~xk<1BWb9)+&Ne0Q?7QJF)!b*2-lMN}8ZfSw?E%gEWh5BjW&~yWLFl{cyYL+J@S} zvj;$bok|>Zq@+oH}avF2Z8z=?oDiZFfndzr%wg0;(=kiVH3586-gdLPy8xFmyYJk0KQbe9>!VPpt<(b9W2x$bT~SxX>mxhTLd_YuSifW}tq+h$9o!MH0IxrDZF=_vC1-oJ)%K1&raw87Y_8?uJRD zHCt38gf%@?ww_X#7r5gV&w0_Pxbx|Eu{R;g zMKNtd2?TQ<>Xi=DO*)PicKtd?(REtTtFg|KD|g8{aw94)6aI;Z;YR9Q#eUu0Jy=>{H*4Cz4nFo$rh1mNV@Hps#_l za)>Lnu~TwplhMkC{sIoIl|pTduky`>u0uX(Nm}rHW4h<_EbWt&M+K+!M}smp<8{V% zlVvi>DGl3bDGgoo=t+&*+V3FkK`V1u1i$BKHKcLk)>pPTI_2p_Vp$kf>%qUH??W(W z=B+R! zLB^)1gxe`&g~_JVJ{2*R?p@Rx>VuZm9Cw%9y?9ZsIgU?GCBZ5pEtS3-5!UhPq8Gkk zTm7vL?*aK1_jmsVg}89jq9x7dHw%nw&qG|~$e&8C8WKDEYGVyvB;PnmIkU$6kXhK( zro2(g(caY-UCippUa*z^u8Y0`$Y&zOBzOmXk_b^D)O;iDhACR>0?DIQrrm8!`lHp5 zqi_spl@k@T;8y~kB99R5OetXxWLKudx9>G%XjpB zx&%oB-se+gU%WiN;8go8sWCFj{2em}A{76&_bQ3{<5OV)DibNS7Cp=M|er~S!bCbkn`^mAn-rZ){B@E1=A!5R`5P3o= z4L>j&kotCU`r$C`C)H=H$qD+7V0WkYMAcR=j0^K2PSmCM0-m=%xeK?s`{X6&6|Y5( z3n+Oo@^=L-XcCVMI|DM(SKPOpCjpTRyo2a6e_5CI?D#jie_q#->+~NE5g)$3F7e+v zt2vi^g^H@IvADf=*15Nkq+auk7xiN9O(Q{MmSUbeHL%!>>9_-giw%o61u}v1EQ8gP z`&)_6hqaN|1ON8WiF(JJV|YFc{Gzgshb9U~xMehXe}TEPK07l4S<14uR%pPosNqgI zD!8YEm%n!T)hX6e>|Ie@Qfar@$j}OvE@r#AF33;b|GB%Jc~b03Dx29lqupH>2q!ss z0PdS(slB}TiMv)12gcOV=~H)w3kSwdDFbI(urq--M-s75udgV~oIa<9W#(fR=njyb z2@iGXUw2w%ABtq(m9evz5;Ba8(|@}i9Byy*;3?MWJX^awzFiAaMjP3Md6e`%(_br* z#BDnehfH@YgVXLO6j?qO|6-MIq}*RRNyl+DQKQ@m zQs1S1ZKIcGmH9~uR9&>n7d~f;T&Cr)uYJPkfWu^?igxES(t&COyu7!#zi{QQjVH=> zTWf<*plVBb33SKu5+rh}4p-~$m%Y9FwyPL) zlVoohES=n9Q72-Y=h@XQO*4f+sQsnP-#*g}Rl5>4R4%s0LWi&}K*l5ki@W7)DY(ci zXz!v`{nIxD!p3JO9`;RE{pzp0pshC(A--vKBI=>sJCmBF-2=UH-_joevu4HIED$+m zZ;C!bVy^e`ML3mfa;C^94U2J5&REJx_7Z$ygA1MaH(zX?~NvyCXsE41Y)W*^yeRnHO*hM zX!CxR`a=A?4@B+X5bg$azS&*5<43K&`Jh)dRZN;M-GdMhlNz$55d#jq)>#OTL*#CQ zMcu>1AO7}&uWpC|k~Oz|69)Wu0Y(lEOfholYWAhgR{r+#(NOWCIYjJEW8-eS94m-ul#@76=>wcX4QVi=WVmr0?KVXOAe?2E~Hwy|x4;pk;rkJM0ga{1xh z6)6b;7>=EPQtg2Qa`~J38hk#EEZ%gLPUqrJ97VTm3|d2FRwxbvbi}`BH!juH44)~} zpGUAB=PfL@jEq{d5=(j&-`H_;>XP?O@%7n>@n2AMt~2hWvnMdy;+?N zK)HOH-Jlv(aL}xO(0LPA%x1)4j>31BLLGY4&6L}Hm2$0L40A?k{EMC^hrNDr_wbVC zdntnZ<(4`fr*|#RxV*o&*?CTTRc$vrK+fXRVPoyGXqSp6zr}JTS?XG!k4wxTZ+1U4QIr0T3V$BEP_4hx%za=c7gP;Dh zU0J+iB-IrNXN?) zG6Bo0P}?qizhs=z;BQ#syYh;FM7)R*C1tR0%I^5s0c;z~hhN`zx$u5!45Iz>1G{=} z9Z#OL+ke3xzhQNGuUkN=V-_vC`HATci>Bm^`YfP$eFkR|^2 zhHejLjicF3<|4*vX+V0+Aiv@)%UZija0}x6B3Wnxr=}y&W{7wqzJx%Go?-Iq71iwE#uGlvI5o*0@tp zO>es6ESQ9{%l5!8{JSCi3|X*ZDk~#MMaaHcyrkl;^V(SWsvI-v#XUEx^EK)2iH)*) zk2_4Q2K=QEh4JIl!>VQ8Bbv(~pErr78QSIxxX088v%ttTO6L@8TcFx7MFxh+>RK>N zD+oM-OoNi^4H83=>#QEX)dj@YrYMe+L7MmO zks$D*Enhmni&> zu=|}uo0j_pnl)Y<9yIGD6=N{QS9Vm-wH)8!p9Tr%XX7!4&Ce1Q(Vi9uIP zOklYQhZNgg9RbQXhu+1FvO7CdQV$z`(w{1K?IarhdA4qF4KORO8}VgF#P75EpmoPE z>uT{(>_k^*5QoF`WCCSvJ;ceF^z$oQ2(T_Su$WZAyw=6Q($*cOVKOk+d^MHBziVn5 zh7jQ|RaOs7UEc!Uw$f2fj{ob<76TW1E!1T4UZ0t~?j@%1-eEQSYHHhT$w=8=sg3a~ zi3cv!%Mb#kx0g5Ej5cW~PQW%cZa{v+Kt$eOeC#scJDd3ye4lX;0cUg z+317#S5+ZrFz9o8W0eakqCnP17duz^Z&*eLReW3+c!`T>+9zW;O~(rkrLUE$x_zqs zZDzfn&j3!!)w$fdrD<{KAl56>6b0pz80qR5gg)V}adHzI6Hl2j9#=pQN`90L+~Upy zn)evi0J*??HsdaGxBnLKE1`c+M7A_oikYd*@RTAxND)uwx@$JQyI{fTh-*el*6EXZ z_)eI3n%_W_b(QJYqvUy68_zfw8E&`Qgu%zGukOHx&nV#6^>?~w=5zZ=2fTQx#jh=0 z06$;rK~+mlUtb5D1dk}Dq_eA#oDRO+Jv-q&*~Bg9T{DhD?jv7<9l(&Gze3>QPa_D= z&X?ElXv!2~x$aON+g8Y}Q?-4XB{|(p?Dla6j~&AUqX5M8(=-B4zJ;KSmQIyV1C((* zVm9iQjR{Wh$wwUxYnqRuxFy!+k9T(MG9|YC8hK#Zbho#&$=(LPXbpU`;MJ0!yk6_& zILz$d*4Go6-$kkb?HGUFwh(ckCD+FC_t`I2@-PlZsOSu@dHQ6A-W4g3)he&}*~|H( z!Ot1Q4ijH9=0Z|M^Y0>T)zV2iN!qhMu(Du94!6pGk@YD^@D9-T67DQUtSar^(!6Z+ zc_SM0Tv{imOP2-uPo&;dtjz-JNb98ziOj@cX| z1K8R3@HWLpR(_?uKKbI!{NB6j*;}K&zY;8^id!)%n~!%Ne;-O#k08M*j6-wEDvWoi z#M0apVp{DB2+I3bhXLK;06YMm4hqD>nU z_3yY&+w+F*l^PjU+#dvi&Q8_&{1`L7-uvW+ZfX#0Y_$j!U0lPTg}3L=P}&@~g&dt} zRvT@aG~Q#*p*m(9=7A!|Vc{qZ-G^~&vu68u{_z(8g#Var+4OtqSd9md)yUK!H>TlH zc+TD7YFTY-lCN)|F?qGwg0iac1pdR=^|Z*>Ee!*O3_eH5VlY7&|3}ezh9%j*eZ20n zv|VmZEB9WxHM_GMU}B=;*3uk^K;jlhnOd%fiWaWF1973L3>C+nqjD#%1koJ0_n!6e zyyrNs4@u4*ugxuN{CL@0YRLq69JNJ zabmL#rJ#;j{A{dnkljT1o|9CmjyrH!9ia`szwE#(u48EJ+H#PE$;S-M z)I&*xS%T;DL`EZM%9OBu#B{OG;=DtO)@%TTf1PoDn z^QWe8o(4tDXM|ynjdql;^}+DoV72q2P(fJ_RCC)p%gJchGd^{>#$46#1p~dEdAdyi7ek(agDc2uSqqFL}GWo^|I6(#zPg46Ka%9~PVd zF_+4r7FM9)bJ2cVT{-ImGz{7e$+iMT6T3k);S+`f>TeVTCEq50BvrIT@Hw?(*M4PGOl%CUP z{erwVq{a;}zAm>U32!U!|F$gy350r6(YDfOchfxhc0erGclUYpRoVQ*Z1LX{@55Ek zeTMngdklZf^UfU&KI|#~*>=lrXeTrI$~361?%h99Hy#ZiU=ZMQtO6GUi9g+))_(TZ z>)=3X&Z$yxmXCEi$icr?K1YS+v-rd^(Q#LA^HM!Y+olrxTNPEJ`++P)fNHRN?|tn?ZsuE$vIa^fK$fIXx`r_f8kmn73aja)DD-PF+g!Rd{Cvnxi0Jb*>e39Iy-eyM>lJxAxpaa}g70fN<;84&;Yyw09QYI?`I5?>nEwNb&kkKNlIyStT#(O*MX=DfZM&_KP{F{lZv-dE%rJ}7T z+!FwkHGC(^oemnDr^5K%;_Z$*bAh z>Ufh&75FQj%WDw>e^0%xs3&x91eX`4^cp4f=)Q5%A70qfO{P75FJXIDkA=tBc1+xU zTyo%4>;pA*@Uh|A?htN{&g zLM8GGVtFOuF$FGjviw1e*WOu)&&W@>@Toki;(@Cgeptq~EaCnAMuhiQ0$XL(;k~m} zJ;a?%5CGd2^azkTB%hO_d_esco|P55vm_SYJy4_JNa&B*)~=sFj~Pq8^@a(NXrcZy zWAnlnQ$7IwF7e#cQx#cP^m4*~y&W}|$em7rHqm*ME6^rdw0-orX^LyJr(A#TQpxU2#CQ|4s6S=5)My%2PJBL8K zO@d#_ekc|R^IgN|^zP15Ef-;Y*=dd2xGs4;6axm|YM$`K5k%6{-Qs8>#vzybC0-R7 zr@g9H`yWU!w!vp6E@^Tw4b}YJB~J96kh(S0y!EqGWl+irnh75n@^>zXCitX=(`>Om ze}b3}hdWVxlp}}}1-^1zJNmpn-Db;F44q39FEeg#cmkHXVQeLQ;YSi@l*|Wne?tw~ z4!kIGTu&o_0B14};j0JRZfRqfsWb;ii6P2TC7NO8u+V7f>8#QZ>;oURrKuC zI~ZgH`Qnr?97HgY``cGG=mWrA@#}?>e&zk{aRHz+CdRim?fJ?W=8_n;h6P-`w^FnK z3m7_b?YA4UF5~idh%jiYgs-8YXnW`J6T;dPwDzs5_n0M^x7WIa{<|=9TyonjQ3Z0L zqPi`XYC552d$GkTIvA?X8mNg-pt>$M{XNwkXo$jSPILJK*X-^o9L_W8)TW#QN7Lx( zj#w#d@2si>n2?!>4t@5{*f{9GsuQcJNO3DpMIGRw<{t&XWvk=BK9h6#xuX$C_+ePd zT`US!1N}A(*>Vn~Is`Ltm2PQt$p%CUxgdPu(v5SWMF3M_)3<9u90lj2GFnouTL^=R z??m;-8hTX+AV=GcsS_UXUGi*NRiOK-v8?f-tN9Krf2gAO1X3!c_AvkRS<5AJKOIa% z?Wcc75*5UQx{%r?pEpRjD}7DpKD=zdSw7U#ALA;X0h_NsVC(wi*Koa~ZgTYFcq`ID zYIU>OD0TJkDU7Qvx=<)db9l4WPqNIpT`Y!iQ+QRvUjq6WdurTDIcw#V=_S9md@J!+ zb=t+nR!J$?G`H35;BW>kLW5CMX|7;G#CRN$GtIi1$b0G8$cQk>pl3|j;ko4CUB`eX zt*_H+U$5kB{rj;2eFii|H(e2T>+bHz)wF!Wxm;R7R_2OLyAh}?)%fGVpkGtY<{J&n z&{&hePUBRM_s{Qoz1H&vc1FB$mQ7`cA*f%Ej^nX7P%Qy2t z*?1-B=CNXl3_e11FR0pFPr7j%HCuMJu#Ptsy*Gl$JQ$}d#eb#%LXLRxBZ&q1ag^%h zrWdS#1i{`mKfbTsF#7dxc%87lb=5VC-)IKNIyYzUn0sK#)(AC#lhNR`_`KB9Q#2Cv zUSnW0cm;h_RnAATHJbS{Eau0Pz7_yy{0O2unau$FC0HF6`7n zziPLBChytyk00VHvq?+t-c|wZTqP}y4IT6n?NgcqQjAWk6u&AYktQEZD{a|v# zhaGVHV)IrmwEE%;oVCgm;bq)Q-&69{7u0VTtk;b?H*&AZ%aZ~$i*>+4rv)}V3>NOPHH7rqqTkaF1XzQfB;98CMRiW3V>M~cM4uyp zpA(Wq{%cDrOF33|ouo&%Vg8r6J8pL;z6nYej6_OFdQTfkzyrp{jR2q+X4tCV>(l|` zX)1M;c%0i~kJ=k;!RzjV6C2Z*Y2|gPjtl*fnvIF+LgN_3g`}-RzYQaTP9T?6^bgv8{ z8`ww|%jjE7Ww1HktG~i|xXS|%4@G|}8dMSsu5#4LD)iI(g;@SIHD+@2QrY`$%$=b!flo5s%`m@0dZ??Zj9051X`741u??4}~rhdaOnVEt5*>{nP4j zXcY6PZ*zd$2sli@n97*g7q>UjB9MWkhRS|L`>b%U%iYl$vm$>yibALmp5!C#c< zVJW;z`fu5fHEaH{_kunNzuR;pCP!4=%cWegP}-ajDO{&VDeB8~DO(A%>WU=r^4mPj zmhaRIGKUq^R5L;*B5ttK*{9w3V?$57r_m$k=`xr6&Cn86&YV*WZkG5zYL9)BD8sPe ztDnvt*PKUOYE_FhH7=B?*WjshlJr`04H~el9^a!MmBlLXxjxt&BsetS)@zMW9TT(5 z6V5^-Q>lJBJ>V$*?hdt(gpTmxq#+NP^E z@F2NH8KVvdzcjDF0DAZ^V050gTHe$bA^ZEqqGiC%Oj~fk$r9sHMNXN?z=-h!c>aDP zfl^d931th=k8U^CZrMzyePKcazF^Xb1*~ZFzll00bL)!wQJT`fN>Ok0>!Q$dABcx2 z5^rD+#dg6<5M|ERl6c!B>@{Rz)zewS;w^T<-h{)|L&)pfs;m)~2SAb2FEQlobhw&05ecq&YBEwI`)oT+UO&f~*o zZKGIzDeNZjM3k#bzY;w}+LmmafKJ!+lTDFFmnA2{6_RgeuF!eqz>lYR?cF)D-6Vs# zodv=KI=-RWe+Cq7CxFzL49*Tc_Kn&UO$+M)Rekmn_R!Ls$TiA+S8`!_fy^f1 z9@CM8VPC({dd%P?HAQ{(A2ZHQ4$ei912?g;tv@z8F1bS=`jjDfyB*uS?Wa*+S^nvj zN^zHa!B0*m6b=Y7UDm__g>gr5)sU_wUzq;gL2=Fd+9xjio**GWH5Sh zTW2~hfgs2%%upvpC{+fQ4oQrkAoGKCI(!2I8y_ge#EZGF2t^bSr?fkDzxrPq;7{S@ z03C(oTL;W^zDtt7X)K5Hxm&=i<7ObqgOi4nT(-g*BY9`myvIsuB%8jz`gi0oI%9k< zZ0BGev5-!q12o!)ll9Tv$TQzV!)_?R4Ml<#GoA0|x$EVp@~?Jg_fZN?;oi&~whJ1U zId!fW6=8PFOVAyRM}JImcQB$M1}^Yh@@b)j0rTCFN5|MBwXvm%DiEoWaObT-yHvA-80nF#Z+1_%lF<{i}PbJCY!?j|_~xH#wZHM~LJdii*EAkv7XR za&;CCYm9K&9e`ElY#@^~`tZmLk#*cI1V@jIG+KV!US$%OZiR|!KE6Us~7ea+R;{n7zf@5BdJV%y^mPF)&%8aF4A#P?Ki z4<$UB2fBs_TLRZ?^KIcsa;_v&`Z>H$y1RmwNEjB%nJH!3 zFaj3*lNwHAEISqG!Tfqh@5?bwF)Su1q1v z+Jn;0cjcs6zpeR&!Xv?1%|#LpmZYh#8sL0d^XwfzOXO>Sy4~ zk))mHSGgV~No?g|{lu$l$F8oaTuW<_vEif|VqD%t^)^@m>=o;FH&@ur5Ul}1K|sVT z18G8A${(WBmo^#B_C`o4HGOHsP%g(yxs}=T_jN9v;bFwM2^34GmoUt>sD31mbpVB(V~wDIfAZILI%5M++dppkP!moHu}G z-l6D5b9py1;7a>@O0&I#Jzo>*SE{4l?+nI9h4d%E?XSe9U+L zLoX^;S84rWh?Rl#!{DgMhOwP{BLYRV^gm&TWXk;ZrdYzN{SCS&r{mgFrE``E%D2nb z|MwL6-!ez=q+Y0rYie_PQ%)A%Q$*U{n2w@s{i&Z=t5qEA2@UoU5Nn|peB=r3{1^Pa z+xNKFqL*QI?HseNJ#>GObmy%TLEc}ZFd&#sm?Rt@6TXxcGJ@EgB=~N{@y-rvB)v_G z#--n^bR!3>!(lgb@Lu3-M#qz~mj=|=&qpF}kc?bXz=++jz2hjoupFd54rERVAdYvj zC>D!z58(p!ln|D5m!LDz8|%G}=EdJ}Q}AI!73yI8V-^Qig_pf2IOw|R zL3z45&rkCMbxfG^=30D>yxQm0w`JpFL6?kB{9{HYFGM0+zLkpUd=|7`HvVAn)3qBa zaQFZF)M}vq6o7n3xys77P4jUjc<8+bN^@@KJRRT230NJ<#qS`np)vSpl7_EX{1?vs zY!?4eMmc-C_n(yiuKbgfGM*%7-mbSeT(7)&To?7AKVin7(zsT%2bU)V4YS4M6<}Mp zlrzz87$A9Q44`Mc_T;l9zutp;Ed*;uvXSRbBC-e1(-?q6IPdn~z3*|p%r>lSh1I{i z*25tDaQYJRQxE>DZZ7=}4=er>;D=!E^3LxWib!Y|-N<>gj8wFQ$e=NIwwmj~2~X0} zcbkjoff25d6V0T@tM*Nv%-M&eO;nue`mAbpe0H~~4IR({4oaY3{uZWHI{e4yPekCr zh*^{EJ&_E%vW4aae2S}LLZAG(OaFR~0Tgq9E4M#zT5Xwr$A39>NoioeM3>S9sV*qIepOfYDVv1ejxDrn}106f9{QAGt+=kkFy>@K%9s#Tw zol!qtax{_as;9M3hY6^gBH%Ul7!YDmv*X&{N#=D6*#zlvMl{#m)THBMxU~1F+h@Gb zb9{NALzt89;vcG{Mqo&z$h~dNXoxv<;Bexw-=XK938%}nbHXuqRa$;~Jh^`-Xhuu! zL0@M#KO)lob1xT=UO3Jm(TA5J{x~?zv>PhY5PKr~ZQGIRRpE6WQn5}=9_%;6I_ZVjH{+VqX62`g$I$tEx0d%8eoA;%N9 z5!TPRQwVWmqfV)>sZXOm7_gj6HCKe8LwErlRGEW5Bamfr&~S*SIGY$3VvLDL&`=m$ zxu=ZWoZ48hMft|O(z4VVOdGqCZbDAcac=Y7GV+$7zT^AQ*88!MF4^66@sS6{HgxpU z(gu=8d__&)x`-uJJYwczb5vVrGRbmW3#_2q`$x=if-G)<`Y^3~AN~4E?C)dQ#}n#( z)jtDruwmV&j9vN9562!-klC_!d3ULK_Lp#6x7RKTQ$7n7#K<3;qXJQ)6WacCBE zzj!jO&f2jMzoMui%ofiD4Q5(k#X2 zbhvv!xqP~=e@!EtUhWrxWd+s|l7dP*mo686{GLHPou{nO`wubMbzbX=ZHbjcbbU1D zD)gwfnC{9nVr#E#Unz~^wb31STFmk?YlY9 zV4#3Rt~GU{Iv|EiI$_*i>XugmpO+Y0S_w%XmwBl0Brn}7l;m_4L5A%cCOyK4|a z(|}v8sPyjbacdrVGL+L>(H$>>iyE@u%Avj3^roH)GeS12XRW^k%!AYJVRn5a+#ur1R&&kD)@IV8tp1!1 zN#AM{GAgf6uE4s?Jtj6s)r?A3$9w6C@ZRyTkXBu@e)=movNUL9Px^v!4qMm>Nf!PV zJC$dAEx{)kLc)$Jj$^e7J|6J%jSD6R;qUoqlot-#wy#FXH$R^U_VPYa@cdBy2;Y^Q zUz_T7ibqW%)38$R+!OB2x%+LW#hSq_=tE+qz{045E;N4tPKEDAUTAQe3#woQ|2_3z z%1Bc(A!w{jqv!jYxLS>jvBb^GEQuczFHd(k_q@EDa@t7GHbWSaU&gsb^$&7XgjbU$ zkS)WBIFOv>Kt;A9WunUu?a%BiJXB;i`@U)PF5T#K;k%%?T~9gMLB7hjaT!L3 z>E}r+;TnWwaDf&iDUB9{kqll7ht`GLI^wD~gPR)%z_Hp5im4|oAHN)Oec)|ueT{== z(+CDzwSdKR?%TFbT*1{4YnpT0$9WrvH9B@aMG+e8n;HmAEDrLP-_w0$%bvsCbY zz>O4MswdyNYM9J%L7laOy_*dR?5#X|U~NUaZc9@g*wBA8_x8JI01N!$9XBuM@AZ$HJS%l(w)!b`xTi-zI(H0j zu=6nwZz#0=IHk>)8thspc_nqpgYk|RA=$b%ykP=9Lz18Zzbp}8TG4?+)cLO`L%}_b z3Xx(V4mydLD%CPu3|r>Qu{^-qlkLR@kyrc;)>d9LsqA}9I^Mbo6H>%s9lqj6UB?*A z(NXVR-M6ZCeV-f_znhVz1TlirHpwoJupVkJXDVCVH?#O`K2589j<{d?vj9|B07{6J zp<1Dmye{}9dGM@xz;&_-QRsozxsb(AH#K}xlL5L_$)#IEaj7&Xj5Juuj0)*T*P}kU z2>hH|@69ZR{Sn%@6;Hf)a^9+DgQIvLP{Yx&>_|O52lwOMDJ7IT-XpTXpgx;M zQpW}DJ5I{)zj=g&>wUGwXj||DNe3)8sbb@Qf{QH<@o^bOGi&h7ssGRxTpwDn< z$pZt7=b?3FsRh2L%-IJeN%)Vfs{ZZ=M$+!<7@1j6xGWja!YK_aHp-!@Xr>{#!{E(4y+MxgpNj@rsDX}xG^at!Ca zk5=m(JlUTTe~SmJ?cd8R0Ixquu&fCquPG%sm8ES*q=~v_>)H3m$hBAk)#hyObdIHf zgXZh7j`UrVJfGal$9Jcq&fCF8{G9BV&YHNAamR(L9I@GB=~ZzF<95SzfICSzVVPV@ z`Dpu(Y^u*lcFbfr{(3CVnN|YCJr0BpVz|C#5LsFO%Tuy*ewb0{6gUzv+V!TdMo9Z} zf3hi%XW?h^eW+;Y1AvRU<_^4)h+{>OwlWeL_$TKhxuK#mBvSeaq;^Q(hNG>D$pr9h zKvVxyfS4k1wGU^MSU*nHdaCigsKE2GLi8(T@va;o>(V12C9?!v5MG@EC{4lk%X?>Z zETRPw(4@B6+63N3W1PmawH2Ooa|_o!kmR;Qod6AwWX_t4{h8fz8dR@yy6AZC%8}*E z(mS>G%SJVZW&XEQ?0$QF9{0`4 z3xD;giRbO$t@_ReahX%L*%@^kw-h#)yo-k-DSU3h?8;&*{qNy z>23uSm9uzXtQWccnp-6_Z%ggMquj+_J_D``=T^SYR@Rq*?)spp zsKV83Y%|(^u^t{#uNh+F&H>iMbC5fNVO?xk(k8jx)5!k?=Rv+Lv zmz>wlQ(TJCP?pb15o2$>(sA7Ec)RiMDZc3u>8^7bAm<%s6k`HKfh&#q@4&oSIUSs` zB7;?hAB*}$=RdyB62J4IPs&e%#wCI=EO~-Q?3XJFr6cqSEw+BuquY=am!M+}qo-B8 zw+n}Go+-1g-9x*q2u+lk>&J6-`OtK$`RlDdl~Q;Xf!XsF_Bp$-HbbpAs{?s6ffsV` zi-KSA$=I{((R_iMntTK;EO4L!3J-%g~!>H zq|j%A%5N}K%|Ehwdu%jlps=2~((Iz6qqmm0TyZ)l&PIV#;nfGdqD}(CUWVu5?;No{(lH9Xmid0=1B7e+kgfvm{_f+6$^ZJx}hV6*HjoQIT z>`jEcwlJT|Ov=UjX z@I)pmEq{5ag24NHn>jlET@$9I-y|Sauv`T$EbU8CD=+9N#e;pEGKN>>GkaEU6*UPT z8*hA%pZFHkB(@>>r}Bcg=ahOj{D0TS7Wq7(761JD>RqYsaYN7Zvj<;Q{##2sDrJH- z+N33XGhDv+in_eaz!N+ts=|6N$%c7^XLw13O9f({s$BcZt~gI~)py=V!|7}pnadl5 z0$^0~3Uy+6zd8QcycpKsj%R*{T|E{LzBNxt2Pl$G`XPX!HN5>>=;@^PrXfY=y!7Wm z?(+A-JtK4`PqKaPX6q(iJDKkV9`}7_I+s!C{d zY>n=Y-zTVTrL^og*37#Mq{*JhGtrAIbeC=#^y&IL>!$@uo(I@PCIjlA#dbP~4p+0b zoOQk6h~e8`+E%Z(_qgtkj;&70s$v@m^~ldr384NJN6banqHD#tFTuYSvKc z9s9;RJavULV`=Q%*FwZfKC2v#yc_DxUJdF$ENu_H zo-(~szGb*)5uQJ}R^=y>1Pf^^Nqcx}O+0W^HFGw__5o|Cr65kKaPTQ34T0m8SUp~u zFsY~5JV(2Z>giRIz5Eo7(#QDmbod-RJt3KO zF)eD~cr*#kKHDwSnLXU_q+Y=qj6^6^c_?=3V~xusC_)c^Ag12}ecjlU-{&{(DilM^ ze@Xs0rL=zuBF-Hhu)!;0C*PM2l=YWxuFoG@BQsOzPJt={9s;0i0gJK=kjq;;OY%j{ z^#kvVHnv5sw0yT3ajQz8-4p8|?4a98wDG`q%GJ;{^sXKK5OxrY>uEVhjmHJ0d7Mqa z&u+hfrCtxwx*ExaB9~_=(KdHxBg1}eZFG%VfmRFB{+C(e`9~h={oOIhg)qAH?7>te zca-OXZXo5YMzS6#hi1>-h`Cxo-EU?XJ+2fXqBv{%{xSNmGK;@kqMGu=`=z*Qb%A`P1(KNhNK1+s4;x8Df#GYK=Hd)@mx$f_^hec*o zhE%r0anLV`6U)>H5bu|!O~g}wuPBao+>ex&-#=z&>D>Qx)n=95=vniqU3QVa``>SQ zH%Y4tjI5GQ9-OSkkL5*B+TtjMfIpv4-!p*4-!VA@wD~e9Ygk@tC>MD$9k4o8SDtBJ z5g!0pj7$nCJ+z2{h>AC?w~)q!5Q)eL{DQ%q#vzSl(T>&O%|$!k<(a`dnnC$?X+|97 zAKr>fX$L9MPay9^->$NB!i}*;bL1L})?e%ZT(0iRm{_x30r7fV=b@6h|`M|3y zj>#@(Je8zUhGFK$7e5vGOXt|7Ol13kU{)8~>O7qvUVMc&EK-V**8b^3%&&6*`Q*QQ z2kIOBd+N8A*StN#Bs%UEzuuJ8!UGvJu%X{+y$z6a*YHpMbVA&)1lyamo^)-cSkw(0oGnh2D)P1YH)ZoS} zL@&~4!}aZUVuy794#5miAJ^LZZnI@~_98~-N&lNIC(bcd4#VU+1D7%E=K6l=poqiv zO(-M@Yn7~v=wNDeX~<|iPp``89JwdA4Rv!>61zYQt?bgL(h|Yl5&a za^}@H&#MPX+LFToKdw|N?~*I!7uB5OV>ZV^_cmp`AReO^jIQ?fu=o$=+xk)(&vRP6 zZX+($8mjpF?`N`D>^JFT^>*ZTZDX=vuQki~y@Xt?p+V=x6xCRoxzu?5IJhaD>cE%3 zkKa&!ypAB@q2u}+8buk3L_=rQz%%y>T3@WdHL6c4@PMC_=Qt{P+~$* zP(M@89uG5{@B7u-Ce+s^V$v2VGF&-FA+ArnIqPt5IDNu%aD`)R;Br@l79H19@1!48 zs>&n7bMW|gO$73)r*^lmwJPtNM#uT!@`~vQR`+&TnV!5u-|}%K&+jj_uo0Xww!~5J zJR78()cA`MGAggtG(zuP1s^s$?Th?gF>Bqs@7=JWH})NQwtw+1Y)|X3F!;d?S0GXouz=cIumOSR2ux>{E`flyrA8|#8DxCY@>oF zDio9gGC4Mq!U#RRjiL#3taD${zUS5L+VY}?_+L=^<=4RC-)&`g0dMV+-iR3;nJSmb zPC-$nRaT|BHAMw|JO_?RPg6+^dqYs}ZhVKVWs95-k90gX%?7w;yu3UI4q|g-18Kv1 zb!&Vu-Q0u*j{K$ioV?P96_jYAGEYSn4(2fXF+AgtI?;~yzLHzQ_$u{LtW{9RY26H3 z_rSyVtX#kIitKf4RSIity4aeemAUH-E)`p(n@te7IfE~P4om66rqDP9nRtn z_W;@`%K+1Gvse_PBlN?3SYuzJMsbb|AzV%zBBp%N5!Y~8Dl47#;BI@_-&1gL(-qYt zlP=a6N3zG;QaP=GSv%|(wzKa5YVOdhn$#48O=(Ijuqa&&rnOqOJlWMxynz!m2)Agq zly0zIIFc&ZLOKRKo(+dkT3wo}Ga${iLWlzIct43SUt9kBu-fG8RSsM%sao9)^6pj@ z!=W7djjIFM!@{zkv+q6p%{t8);4gVWB`KGfLQU4SOz@F4VX`3OYj!IF;1IbR$ubW* zfQlxc%Vdd7((F2DYQ!!=PnUTz5!Y~Mvd4!O+|V>wC2lxfPsJkb(K7+CEN(X0YIYzt#Wg{wwN5cQyZKZ`I4AT4(lAhN& zHqKNqCp1XN{IS0NKdK=qoonWGslfG|e5CJBD^Cmdnpu7ynkKg0Dl94E7M|DJl=pjTk;W9cmv*P(v#VbQnC^qn2sF$E(5=tWIe-0QyYT6_;LQ6@7crbP&<_VLbbpgkh38B2;Q3!&swH9r9Oks|wg zP~f7Z`s#sIN?Ka>oaY{CTN>XjkY&)aoW$V13TYyd-A}3m$V2NxT2?8x2QUXhn*Hw2gyUx#>biG9S~V3 zHLnp$a^(dDTcCxCMVAVP;)RK0-;Je(bZJW}EwC2XK=xiCWuG@~B9j{5(M_KXDT=`~ zuKB36)@$QAKHB{H^f|ivsJ45KhXp7N32`7gMPzG<+O9JJ8WOZH7(V^GqUg;o_r!pO zawBc3ELz{lv`%VuFxQ%HzJ`W*Jb&s<-z8Kos*U;BzLy>~Z*M0w$np|M#MG|qQ8lf| zn=Zh(pa9d+Q=Ye3Tn^KfpWRiphf5*YB-w9IlBBi2DVcBCI}>x|;L={muw9_bu9m{r z-?GDYK2A-;SrG+coe;-5#Dv+xzLwIo)sTjKV*E4g;X>=fCQoktC?B+SMkl&B&wFL= z!_!&Yn654IP51+TjmJT<_^U8UK^>jqqpV$5_*WC`337k_eJ0Krld|iVF$zurr`hg# zNy9)sIs^o8f@l& z*6zjuIp@h{Q|FUZ*E}{#tup1ApN(@UB>e)fq;fd~XvJzAvoT`_E`^Qd7(RX2IC-9} zj>&Yf7kTF`<(?$Vv_POr9?K+XVE@4~YYXvO$fsw@do|+*w4QgB0{7=u>)S1Z5-i<5 z+-27w{)RaV4=xr`htsg;WuW=(k zZSa=5z4#d@$-9%F>O_F9+)~KKLdj&5MMhvJZFcUPma&G{<;e>vw)71Eex!n`)Ug;5 zx?%C#tJT}!7IVMgald3g$yvS)Yy44gAW(RRSeIx+i)5e!gS`U%{Li=oP_qxzFZ#ZI z#S%3;k#cYOY%G+1i{DtgcrehX&d{!Y$Gg+!nJfsDZ4Z(If&NTIJ1YkZ91mM&&1z>M zYbxz+-c+a6c>v!n7C;axuVEO}CD@+B_H=$Qe8N1usV~Ed|7~l#oQ(%BCtcUX0~UOuOf_dFWj^eO zi`Qe+GX<~Q0jIP$Xl)h7fBI4SL*x}^mwV4Y$vt6f;rW5{rALz%XWjrn{^noJORTZ} z(7w-Ql^qI$R7t@aRn zH}zSd^5HGck(S~?lph$>>7M{MsZ?5W&dCfi%!7p2KE~cZ=Nh0wbe#7lY256&;JyozvZi zO^^x4(YsY3RQ^~g$l{2GM7FMPH^%pnD*h*kASgN;UVnwW1};v4Lr$x-vd)}+(R{l_ zq|9dC66x@QerPC1XP7xQPT(Dh{%FAHI0{qgA*&MrI^6OhPk5o5YhItc!u^sQ8qYmr zS8YtoM29}-19^xU8&`eA5v?!p=@)}?wV)*GrMuGw#Vhy1?F+uFDj%#X4y z%|qojY_=ddUVSq{(^{Y8aR{mB0YH{XS^V-oN6z+zt7|aV(x9pyn>uSem*&(!ePo%r zVubqmAMB@cO$R5VE(t_J=?rFb<|WmL4RkNPj(8mN=!uq!fN;=3E%r&QeWyI;+XYK< z!fqHTh|M@h`iJ84-v<)%_iPB>3*?@?46_5J_IrA*KbgsHUW0+&ai5FE0XJ2g%l(`L z%IB#6EbW~$zN{c$+b*F@(Q|fs;}R}+*kfl{7K92Wr~HArMz~_DA+F;)?ul4-DMe1V zRw}=6kt!y8tD+D`BNa`E#fIP97hO6; zKl)!Lq*1uP!>^@;{Em|ujaGR4wp7eU7&f>51l9d?4vfOKx!qZjC^-T-0G$#xl5A2E zAiy4ZXjukG2v7d+TlvDk?2DLkOn%l7%LDIR*@H;`Req?E=wr!bGnD48_)88#HdE(1 zpJ$ZcmJJTpF|WN$d}cgs_o>(o3X-E?T%cxUDAX*n02Lfr4VR(Q=5}cTp*qhzq}bO_ zw@j)B%*ji)NUOOQBDwdYzKeo53M z#9Cg}tv%5l*$7M^fYn8S9}@F)lUq}<3!~vLic=iveJ*nupQq)Xt`isgleM(0(zn2v zRB%&*p96{7oC5fDq;@o^+}a#_|HA4Hle-0LOes4_nXpVhY99_dJg#91=Gl$Xy#E(1 z^IPq1>*YeeeuX#aa$J_ye3n*gom=O)97)z)l^X*9R;YfX(f~5WwQ?^KK%FZ1v-K`3 zT~j`uqj4UeS}@@@rUT(0X8w1QV(D{euf-~3m@5>9^2d;1Om~~w{$=yZnDW5Owx%hj z$HMr9L#_nRP(Y4U!m#tev+yq?|NQ3cx-D$~+TSKGuGOvd+4?UhP0`dWt7JL#;p!mN zUK%z^FAxxsThR9V%YL|qlcQA|qySX3} zWu&q)$=TDF8gxw)uG{>`Kx)@arA5b|D zUe*kvY`3@OYH^!B^Mdx(7jixA&9Y=Z)?= zjdrh`lodS)*2)#BIk@ZxKl2H$>G*x7RWRK6%7IFJlP!GtkL$H*`N=!c+5A_0A0e%B zvb=&u9<9OE_gv_DtAQ+HUOdKb$Tmq1s0tuaAUlW?#LB3=Xy|3;;`l-`@65X5k}!1Y zZ9D5z(jMQK!bbopx+O&(;U+QTVPLdb;J2It!9P%N6V$%(*`-xWOu(A$n#1&idi>?}&-EOvYuy zzo**1&|LwU1c#Gy3BHU0M}ZmQJG<%(6`6#Y^29sf@Xxm;gbvFy#J)~@NBA^8wk|~j zKd_QLgu;oL2~JtLaODW5Ry`@jKwdbz(WB8-qkp`lpPpjOkrO$l9Ajg2qI8#q67=yxg2Ji2oxHn8^v z{#B*#J#Co*KWxlFsi6fOMF)bZi54~?ON8u`2}&zC{l3C(Na;>#$x%w`u3zSxnr3Bv zaW2V-fZ?U7dEccd^4fQpWUg6N(>ftZH^#qhkI#U6z;|us=V)&m-GyC+ZfO&fTIn?u zdlh|A3zsxiT6J+x)k@jx0zkjj)5`m!dI4k4F4dabN2+fY$N=HoO)BS5>P&=Y_Z22(OoiJ>^-Dl{<)B9V_3wfkd4 z3Ivn`C946AHwF-{_f`WaIo$oz6MEn8wT7;~LLekCHV{pBQgwC7hpO?fd+-xFPZCf0 zpop%3_g1Hme?o>jl!=!N?9LOESnJ0#sZN_q?p0UtHM2m`9;##w!;Hz6`%uiXmOH$> zkf#$t)lWBWmREI1>1P(F=-siN-w4XlX;0-64Gvn%QJTyG^s>n>oYfWaoe}bIe>$8WabY>tF`!*iJDmXEFsz zwJJl8t}Hhg=_^Q7t^?W5BT0ZlugzmtQ4g?=mq==a51jJkC~&re0q3F zc_a}0doI3jIn`AE^R{{!^x?{bzOGnD;ALWJvKGRot5S2V05Ke9NnMl)eKx#T(_&?{Qd zs`1mw9LJDh*M?@f&YP=TFF7y0a;icW#5yFDLnp@4+ykHQftx7JAZFM}&ZE@1up+uc z)SDu*t7N6^&%^J#A^Z0y@4wv>Ds+*|uurF-t5apzPke_7ner(-u1>V20-{1%WnYwP z>piffKBk^Fx%GJj53zYBLZNS6qEQF(Uumvel6cK8nu z>|&_+n5ARqh4|&6A1{bYU3>c--zlZ5)hcw~H9aXu zk~+riHFtZr*4|5V#5_LhcP+&CaKm$TZ@rT4MB6)Wg`{BSFD^2rkbI#PKpRvlgcajb zsVdfuOG!oDblbaDf2FjuyGLA-jjWe#mzVYPeb}0Qr8VvC^eYXmlG?{&RM}gkZ7W^D z<~z;id8kRz3deVbNA&N%a=`^l1|AkTYf3MySa1XQst#m-t%(5OY*%h zZT@9f)8l*Tm(IIWhLAGcIAvipy$=HfMxd)9Uf>2H>&C|3IJVT9d#_D3O8sqb zHuOf5oTbQ}z7^$r^6u>RySCn@+d_%N-kiUjA)N zLT)5Tp`Bt8q>|y#usD&K%aR5Z6=8)K;N_d!c$%`DBHFW3y`vp@Qnz>aZ{=o;VMd!; z$8{_3)6uWf=dpiL^5ko)nPEvJMUQUjCj*r820}`t>~FeBBrhAlCwC=E)fDPUPD#c( zS=lScYb`!|>#UXi*GVYe$#l`A{{Rg$`;UAu9JCj9-V6&I<)N?z1u`yRXfHd zxs`&Qy+bSf&6YU|x@CB((s;gUU)jkhU+mtWGy7WVmiFzT82a^HN>NoDS0%JjTVMOP z>DK-9+E!w)(xoV)M zK4+}sc{QWgnQ3KhlKx*i-qCdz?vlGn#oZ^Pz5f8=`fKTFbnuk8^I?_<3fjAQL`Q}T z6|j*I;jmB{889$*G0D#@h7u8zl6yN{dTpxL%XOyr`#I2$EL4=Gc}6MS{{VTb^w+PO z-ukkG+?Kw0Jd1Tyx84fH^PUgN#F8CD65(7v*W_R*71Ih-fvy|=e^uf5*A zl2$saH!2A>+K$QE-n}l>w9`(O(80CSwB2uANH28zB3UG1aTE%-E3zP{7Gt>KLpBNd z#^M7I2HspvI)7Mpgkz$Yx{}rJvRn83uGCCDT8dnr(sGPrc&ScK&i2!)R@rT)%Xxh% zsC+f>t(U+lJarYd)A)if7~km-O(oo)XNJb!^UGLP-Y+F&+`oD5O~L-)PvTT?P>RLk zeXV&;om!EEWi`m6uVu=k7VX`;`f1ILJVi>GrA$1zT_uN8O3M7)x4$;~ulNgBFPF8C z6Ka}8qfHCNb0b3};NC^&1ur)UsT;z(Bf;|bZ*jS|7UOR=WnOr6-8CH&YneA|!tZ9f z`Ag+y&w7pug;-8fQcX6OEW35pJ$`9)v$AI8mGf%0-fi8zv2fN(3~3~I4-~AyaV}9y zC_7N9`*KSA8C6+V!cKJ*d6Xk1%B`zczsdS}^>XuS!9uEv+uvHK-pSjd>XyIzZSE!h zm2Bes=8=4+1Z@yul!eMVwYw{;XXf0j#{d(BQBf^9KBc6mabhN8);qAx$}#5E^2y(4 zb!%<4yuNMT(XW4_>2u#klh|5KFh?BM3$>g5CTJE3WaU61SpyHetUxW4u-JJ< zb)6_Gip!oWmAyKpqxrA9Q;M}(jjPGKHkI4{zdqM%Nat$0Rg88s+cZ9Py|D9bVYqgb zTC0TfE$yXZXNKNDNMw#gd~|R^*DXp=sfDR2#Wtxnud2PG_G-@CFNaS{7eZ2M?ow{s z-(4?lt=V+*(50wp*3IF`<^iLU-7YTC;yzonky{xNBz40}2q$lp?8~qKF|-=DgTqwI z;mt}ngzpz^S2MHSOMX=L(f9i$I@M)2CpOxYqpRs1x>-KAv%b$usNrAUSzqY7U9)(9 zK(>2rJ4(D4ww5x(cQn|(SNlU7sUevpcw(KAp#f%H(D^9xBXZ;D(S`zyp-P-58npfR z#?qFr;@xXyvRdnXPL67huC;1OYSdd+jjY!#l6`yn-*aEXvn|z%+LOZHZ}4IQi? ztgubAZDv+*k{4!?H{iL*+CEm(30iYhoVi=GUkd2@Uz*pxy8Papyw&Q|RpV-tS|_{L zWo>QV`~23Nx8~LEEgYzd*5WB7wnm2L6D)lp8`Baa#~}fCIyf?IUo$xQzJ{GRH$qM+ zzG+6z_OiQP@58>kYxb>UI;p9)r8vK4^-`7kuDV}d&&u14)2!gsLAsaBh3+;9Qrc-@ zjf+jUaX{^s86`_@0kCin4W2Tb6O)WoecRePE8TWczK!V9U3#5VTWgk0%GcIfzsp@e zsb2Balf&A5&7|{4Zk8m9^}fRe%iCE$*!<>=WQq?h*htps)Bg8#rKHRJ_^$^CYSm=w zB`#UcD(cos_Sx$E?-%!SoV6D$0dh zZO@)~5v~-1hodVgDP1*ernypH=S8)zr&jOEuYZ-VbGrj}oMh!B*0+=GzWP7>3-uwi z(k%5D?QSGihTuyi9(A_Jn*u}o;)NO`aCd*MF>V+_yGkW_xO#9{w>x{*ioM;fD_>2X z?{(?DdX!@4RlkCVTqH9NvTRHtsR!SwX40A?|;@fMJc<#wA*PdG}_)?PWIbfW@cQ( zE*^NylSCNXvGS&oa%FM6FlLcmSRl$stel^a=jHPACogF^DM?B$4NC2`cJJ{&xpe8v zdrKc=_ za=^DNYvyg*P4-vizT0oF<+iUL*rlzN-X=VW>o%O7@ zb0moqKb;wN1UQXYlApRVOTJ}KnmJNpWp84&DA$!0Rk zId!(r`@G-xKi4_exvsNk*lVr5@3rRstvlAe0{j$y2}Gf;tfmYiAOL|>fe#4342n{E zXa5ES($WI)fMFbv!B<0n# zi2k+?T>s=b{>f5|Ge=FsK~+TC?{9wDyO0mUcYr8w5TssvKuEv}x<*MrNJ)V20)YW8 zhzb6={;3865ndxAAO>A0xp9+}3?S&F01*%Z&j^XG6Omjex^dlu;2MaKl8EX7u@E&Y z#r3DU!Zem{Y$PA<$I8=Y>4{XbzkWp5?mnUrC;IWmvi=heD|)fRc#rI7idDf!oCf07 z37#FVMniJ$x~_03N!U~ydgUf|h8~Y8d%s^*dH$y6Ch0u}ZXRCA$5N_l>P9bK8r$00 zJNUfw_4@=13y=7ml>8+n^;=$kL19tx_u9JphQ_8JUEMvsefl$4-r*8rS^*9eKP5nm%Bf)N0HL`XsP zfat!^Q)=Qztirl9Pp*rwS<2J8>4|=L#vYrcP)SGfT1@|NgyU7a;e^AbX6hOp;L_|b{#K4W17yx(c1_^MHlabxLMM+LYMM+Lc zNlnK@Pff!>OG$b6!CeMsW-u5`P0z~C%EHdX0%pMjjSv7;Nv@OJxpCtT3k@X=%m42S zKLff&_)qsy0?M_{xe>6FB(OAo;>KC)8r0o^@yF@9q?)g3DMHFwQ@(_7xLV7v zz=(p``1F-sUY7yefNZzgIol7j5=|KcjtksA1T7MN0U@ z+S8Dk>8#FlQBgiI&&k%rb}-%g=c$a1-M+}pSrwZt<&?4lMtMLGtZkOBdLK{}ZrP1x z-89t`UWp}((B$QPpsPz=OjV|)K00nc-kmmSx~!Kno$uKx;$tlOz4|pCBoHah+g$4H zdX!T-f3kxn=43Uhkd{hIJ!9JB-%d0wSebJPZ z!sn^ck|T-5!c}~ebhoN*hVD;Ol*+qjXN%`{ti&eLggwvQo}d&mripi|HLBj4^}QV9 zU3Ea6xIM}(+u5Bsnhn4DT3<+=W}Xv?6#kP}Um}sVWl{buuq|+w{=pdMs`nqIwM!kX zP0>Q5yu(P|T>;bG0v(f%dbVp4rHq=E(aNjc(&T8)=;w~csDFl2@wbAe`|%2pk+=PfvFaHy_IpfMv#ftvnwYz; z#c7!2KC)^mFMR%#shHJe$MIOJANaQ zZ~OkqX269H`j^^7MHXAAuJ&AuicJMGgn9PFC)!BRcy}~B9i}{1qCG(^oYiR*T^TFV zL~3aqo0O_4a4VsVQ&E79Nr2mq7s#{9s|IsvM~c^ZN!sw3p0;HFI{5HdAa(+tmYL$w zmOpG(+{z2fnsVi95R|ALL|vP2dw(a#?iJlz8{W^MzOK{laqQFA=J-gMEqI=t8?*s)r*SUwXOHW+)uY7EfGNxZs=sG?2R#CoQfs2>tQG@UUS3C7@ zs%rNY)R+3yM=f*1sUD~ad)iGHwryUz?UD?g&ek^8i!E7Bz>~Iw6o%P{jZPPQ3yg*h zAHDWIaC>sOY1{a$S;VPUD@u$uo`jE^m{H(^-!#$8pPL7AwCdkYu4s2!0vbmAXaivu zu;G*WG@_HorCZFJDPNTbCa9&dX#(UKrCfgZdoFYm-+P>#At*Mkf1j-V0UmU}VkoDy zx%|8R)*exYtd>b<7)L2317*kWQTJ1iA*@_yq&eYeBgiG$At`cgDBWg8%$Y3g?3da! z^DzH}m&Dgu1Crn!f%Ioj#`147gtbkug?>+2n&c|#dLdmDZff#u+T&Fct$~^2Y~za5 z#0GM&F?p3NcuWVvQP2FRVc+8MWW?G=QL^p2`gEo1$Mg}!kD$v6k5IpBKo^ z?$Vf1$vz3|7zLFwm!W$lmv;KpIcxhzvhnmkzjLdPjrI*pIM*$oNMFW~&g6`)?95~) zY5Fg8b~#1*LnJzw8Ak;#+tS{gNR&ED2BlMM6G;eBF$wl8rGNq_x{>>RM# z&)uB@i3~i*5+(fc?UNDVw!o*BFg9aY#KBUL+v}t?=)=S2jDq1N0UB8qi$13cHT&VI z<)LNrOSFz-Qg3*7+W{-AZRrz+?3KX$$0t&bMD_; zEA08MY5R@$d!@$qYh$?%n+zJ0Vx@(PzqT`vo?lp3>1wz7z}CygQosLbMmlc(-W;Zz zG%!jPd2@y{%YDRiXr$PZ#-VrcW$A3<71ne7~Ybc1d`6 zsUFpQW%4UmmqMFem!hq1R*8=+tbAO7!3lPdOKmZQd0MM*f$JF9YqvM5G5~rU|*xDCL==fRp+a z-&5_`3W4f`olDK<{sIzXtX*8i8z@=5g{HygXpN_mC&nd4lfNzn95ZM`rQ<)-zEpJl zdeifGrYx85ih&GixB+{2UZCyKM7=<0F#r2}x0&tLWvVwllUJt335&(PIoHHG_x{k7 zfK#!+kM$;V{i3C(N9o?9t6!xHcKx-Cs>Pd%9eyVahBoZ#Gx8f1AL!ee$!xrRdRj;R z(!E&mske-^!^uph+Ug0-cSWRMIiLYTD(1<9<^rYD(|Yu0WY=}hhYe=kFzPN6XOIUw zHj<8S+N3RB|)k8c}&NShTJKY588X^(V*8$gRWvB;Iqc4o$v1O50W0s!Mw#pZ_(?`bYn4M|DBI-LP=#lmx1;KnS8OnkTEBZi9=+n zT${aX`XP<+k*DLcJ)|#PEgF^%ODhQi za}^^|0^)z(CD&cPTRnMwzpah=^@KTHaOIlc0uc%I?2-1CxsjFf=(SgIsy6mzx#L7~ zE<`q6`lBB6+^tlIGW(9NOMW{7^@X#_MH&^$dpiOx$5JHaA|xbdxcUgUdP2Ka=BB)ec`MmgesV6- zz3wQGOq%x(d27}e#OB6vkjbP>=Tzsn^(GdVf>?OfyJ5GrjLLd?ML${ffSx~Q(kYwV zR45ML%iHrv9^JiqR!c9+Uk{B&bj56GcOtv$4JmIvNe;~@eueGJE*O<5Q2$l_t3;cA zQjE?Img}(ITkz1jR({>|@rmx3Mnbz7Ikn#XO4Y9Mi8~B>35o7e%14vGJ|}$hwxn;o z$j`T3xuO>=ekeNAzDg1>mE6|~`-Gy7%B{~v$t<18RJ{Db+t^l;x#evnMt4wP_~S}~ zJYHC1@`^&e(*;>bpz_qqycljW-`+SkTS9CMpX*_l<@^BNe1~T*x+CMTTTqNX(2NzmGj? zv$nP*9MX)N&Aj#-wd>Q{cNLLRLT@JfILmd_G@k`3sEw&J{^;V*6nSv&)qZX|`!@Yk zdbNbinUjiQiTNDaz?rG>tM5HK?k~o(k}JG=TfFwbN8TKMoNmP2J5r?2_UT4=&nqrP z((*UwL-;}`hh8kWr_)PKd}nl;BQ&N(@^d2}ZPogdvT+Wo=eziT=ye6+ds)(?K&`A}2xvc=59ayR*o>>ur+ zrI+IGw#`RR2Us4 z{zNtT>%Pf0`!32~l<~D9A<=H}r-bx~M>B_EnPGX8_xRa_r1aec)LPaT!!J`tqsx7~ z<)ayAA*^@e^AYpPlafbdMuNZXx3xZQq)^o;A4+ z_4rN86$cT<*K$BS+o#Mqn^tmkB)=Xg45K!69St3;&%DHIU)T-t>L_y(wCi>6QbXQu z*Xnx8Y%0Fly5E&rB6T&Nd2f2T*z>I?Fz3DjtZWbvU&Di9iFSrH%KU?(+MwA7nOlQ@ zt^`hTQLWG%L5sfy;lBls8B>!SEGAa_kG?6VuVC(Qx~r|yctn($DZh7|fSr#BE3NOt z9i^_gp0Y*oND4{n3q6g#M=I#!9N8_T05$1EAVuUt>@WJ*FSk+l6u&s=)s0!r<|?y% zZ0;PpN0*?gQhkgOqdKTGENjoo5E{$Q-~%c+7+$n!Lj(q0V2{wN=e-B;MQ|G=04VOG zXV2>obQUsO5q?1^>^6Gryx?!KrTLKB3zy&85@tc`bdinh7YTnjl{%I}yq>GPaXjGW z;cHh!yfE7rckovHskF3K-Bf;bTfYv*TF7Z5 z9#nRKb%E~s<3T2iN7oDY6P<8bOg`Wv#Hm0z9)$5ZU;!MkuC)_Cr7D{`0~tA8pOI^7aYR%QmMI z2rKh&y;{P9sPG_N3p^+qDh^EpkT9dG{BO81^A#hhKDG9vQKPaMFWF;f&}>bud51C* zcGohgq}y>^xa>AOhyf4MH*-37Y{K62!-JH~5hKYJD5q5{qu-x8^8{S@oauL+Hxor^ z5AH|g@hZB!VtuNdxMC<&@Yq?zK%L=6medfv*pQ72TUYK`Fh&PCb~$@+l)0gE(wr=m zzvIr@obi&W zp)>09&^ex-8Ix7wzTJ>6-23Fn6~2=2u0^9VnuDw^q?#z|8+=m`(gPWv{e#vs?$(Pt z5~Po8-y1m|5nq1T9O9-RV|yA`jg8L2x!y?wYJ zix^qHzyENb7n;3p`!=P(`75uG;vyat4wdl13E{FK9$hL}kJ@_5bLO+mIV4emTYd9O z|A08&b%7O}w6F3$A(sE`Sd(#Ozu#6CHT+7tfDmChEcYo{0Q)&nG6NG?#~M*?%kp=Zq5PmO~$`q#`g$kXlzTrRen z!k8!8>ls6*tUQ{nyqchSNs>WSgmFYGaRg|y3 zU#r(4<wM>m$0yA`_lt?Ch>N?iWwQpwJPDDb9%qcMb48$@W1#k% zWxbLycJmYV_okeZY{~PFMTBk*$BV2D?6bbe6xG9niWigF*848qBh~P%-x!vmx$tBIOb0cKMyhT&v{g_8=Aw8@idCylee~w(l{6ab{qJoyXlh*dd z$wGUb>P@GO6E8kaqc_7ACfpi}nLFRju^|{Y*3BZWHnt4~khmS`EPuBvxrMW(dDT1> z9<$eTHr<9o&7pIh!koz{Z{e_Qaigzm8le-<(z?TmM=4znNNZpVqlGz*`kD@Rn2aet zQ8TV_8Vp%+yGMq>g;jpWp0Ee>v$)Glo|p{1jdMam0%wL{E$;gQd2&Y*Bc=kzjI@Nb zYb}wEg;9?T^=GGf)Pw)Qt0!jwPvm=cKeN%7bFHjHp;=Kzv?Qgx``$`cZUYZGuJO+q zxToAoNMkwBAMm633s!X|CSRT>7Ck@qNUSrLFXBqAG<6nsFK^gCr^SNtAOap-vwFkh zotFZ`n3tqvm2pZ>J)FEuto+BE+_Ou9-f(ktn3=|ATbs?469?i!7vyf}4YTg4>hHKX z{(>%2bv!6H{;|ZRHFQ)u8Ozpe+hqj5Qt%rNbIIJE-Mn(g;!@@;wxj#^jm{;6%<-V8 zGuaPJ?c-c=i*G;8c0JdVbhiAeS&y=(*nm>q0D!# z!v!LAkucJBDh^>*e;WmvDials)-JO6^taDa$|5EPDUAg)sRT$kZ^ldIo~nZ zzdSMcT4+w$81foS9<*|fv2A6F?9ufoh~UgNpUF;-S$x+PI(sleZPWBpyJ$lH@gKV- zz%BHgt-UV^9bm?3l z{|22hM_(vI~+ax znS@M^%Z>Jj_K=zTB$sI}izC{RJ`YUc<7@Lff2kI$wJ6gXEAP`r7AN14xYCNdc z?3ZuOypy0ad;Dv$=(%0b9FFw7+>%DsXj{kGCbm}f*3k#i@9`iIPv z?vvCF<0gEdXJz%A;Zwx?8m836UP=L#G(MFroaaiMXSS|sA&Oe(kLKsXsXZQL1Co0;)bqt+T;qw_)#l3@!|Tj$7{2Dp z(ztq2_${6zA?Y~#T`Hox0K4sDn*;c%D1T(m^J4vjcOK_PnX6zA_s{JeE)hqkE1JrXJ^aW?j%v{*j-_)MYbr4Uu~|jMnrRd>iRYOBD0?esQ^_!6N}0 z0gjHyAg3Bf(<6_^vB_dTRfA4llG~nipH?x=hNe^dzBcukVI*3Z%EEoFg66)pXfe^M zkDQ=BaLDWWM&{MP?ifv-lRQXYedBDCDm@|HB*Zh)x`F#E9u%pA9z7V=0%DHLAcTKs zQ1|9Vuhq25X9I`w|8NGaHR#1P{VL5nT*{yH@=0?jfMl&(*{0ya8lc$%7F#6+SG@bU z$YyAci)otIf&{6MT57`niWaM0q%dfo9#`E<6Bq0vVj$csT7pva{>9%=s!@{`Cw{rF zPZrX63h%0iC3IF9nPOGBZa!(5A z?83Vo!VH3IUk(j?)s@%H`vQd6pS$t|Zjyz2sb{VIB4#SyYE2k&?+l*dD`~)POu0`B z+8Bs0oOmX7y9pP>E$eobG%lwyu9xK>YudCWRVEf8-zeT2uO?nu|KviQfD7)EiQ7pc zwSdV2jC~xGZPAgC@I0u)gKF-~a+mM6VEIw8x_gNI#|7Wfar{CBu8Z=f=fXd=G@j^x zuzy35=gex;>74MT)Jooa`ZpEZM())7+DaJNLqa{K5N=X}w&E&YQMadDB2af#-d&m^S3zdGoh z&YDO~yS7EvC^KhziTe(^x1VUJ5v&+INY~~56|V0cqd7@>b7sBCG%DqhI)^~}b=k(J z<1mkoc~9?>KfL)~ssRQFJJDt>nh#oaQ0H@;5R^XE`MP2)H~sC2pEt2=L3ohrB4SkH z02PhKvOz6IjsE7OLxIA7UO`)c^j*)g_t|{M;i5^Lf5rl5>!w)-8n7YDy~1;UjT4NQ z1BZ#vMVgMy!i;jQ`Aoj-ACI`x(E9tXoIM|R43m@L!P1QJ`rb~8nsdnSM4Qgeej^W6;X(pn9+#+*&jFOtlG12p}X!a9+c_6suR!a;y?4m7<#OT*7={=>=55`){KWOjbgmeHl046#h@L6wuv%>XkeU8@9 zv4+F_>=|+U{j?GY@Mfni%DROl2G2Q!xxSkJZ?E#)YLItL69gGarti~+*g9stZ9)dj1N#I z1O2g98Wk7aGB&tzKnpVGP7aorG44d_EcE0zjoa@;(^K#~sVPYPdfjtEmH5D+{kbqL zk`Z=+g04~ot%;sB&+}UStO&$%r}k{cj&NLg)5ZrZgf}*Fz%hY?{&>tF*p?-<{>;biW^EP?(4II$66G ze|s#ONi};?H%)v?#;Hf(;3fN6yo0lhSgX^B`5f-Uhkw3x&~N*hThg{yR1>(68fX?j zc*{iMifRP+2`KD?xBMlpc!zM2RnVM==3_SYj)6nr@i(8_`DZs(>9+whk%Kpo$=%xV zp7Qiouhw}2!}*3QRcx|o|3^m2n9U&H=aVN7huBSQ_C`9td(E13I>R@}8Kk7790R#Fj=vdkhF(z;_Hd{`%(y|(-H}u*y115w{Jb1E|9KmuUpka|$Vo+iI!SUxY zhNpcpoj=8XwQbd5wC%6+1e zw~3NpR`ufRAMiBK>zYK@@(CBzeC`!ytE!DQ`KTgo+o*V!Ids`1C9?nMTmj=C{JSTb zcboVkmBo3!K0?jYZ$p%Lm_4|ojkPgDcFvhT5z7^DhTd&Nod+d!m**jZylv4xLD>>EN-j^iRT+LlA!nZ)czQ{x|^n~!I znCko07oSO*fCUj{Q(MKF8r`2C*wtY1KEhim7SwJ)cPEEKXMQv5yupJU{Fllq84A6E zbOtQegWf(eSIUsm-G{Dz;aGwNL1OkNTQ1*ZQ#O}ZJ6Y`0W*Iy6)Figkg$T#lFA!{j}W|iWKI21@2;* zzzGAp;E(2uI7om_+Y~p4{k)R`V_umOw)!0X#)t9QukANC=S!y--V$Pkte!T%Ouo_^ z!6npKx!2rBKDWfhSMp1Tre?O8Al`+evEQuRDgig~x_iCo^~yD12$vl(Och?Wv$MDN z4{d0yZBx%l(Q%pF0KA&)1+;t%d%ix6m`O)gnsRL?Fw1?)RN}SUM!oXl7!V7731Nke zj^!Me#7yHP{S{b@b_H!pUl3pa%jbWX6z&R&s)z_0sBPDp> z+W(xj%X8wjGav0Zt4nkm=5PJu;+W>x&-J!jWWSGd*F|6k*b6N4cT+@UWtdQtO?^;5 zOA2)gogZQ9yF8QTj_xlhk9X`?xcM{d5#JmMFien z+6Cq(cb{F|Q#ty84ylzzVBR)0))>y!xIbTU73IN$UOpRS(kO{Bmh(#$IQ@7erq!jC zLY2iUAKgKw=Wk@7`h7L|fou8`(O(f8(i}#%dZ`Kh`%WF4NuNHh3ef7F(2PB>6Z4Zj z-Z-9iLmK6;;8sjB$qzF3b-`_zW(Zop;Ydn4J3Unaj()P7VldvCO5sGP6jZ&m7ao1ggGE>+4yo}L$izVH-V z@WmS9C>mhO5CSlzg4S!m&JSOlpTiF*(ZCiBrEz(?1kmvvBGa8#urD)rv{sWQ^> z>ILk|rn8B-QG!Oy+0%Y*ClCimMQE6>yoahim`7TA4CM;*872Lpaz)2lHw^hmAYk zcvfroX~IVQv)IeuoW0`SsJ!xpM{6;>B?+X~(W8bU45{(jM_ajWDn#Fn$>dWFc7C_# zs1>%-%y9s^=JFq1!-LjmAT!au$aP?47rat{F@_v{5vze=tbqy55KhwT!yT8S;fp&^ zcSukh9b%Qav^8z<=-J2~_$)%QEbFp*T2p9tc!;0$F?*a-e<`A==~~G3&%B?x-|_d) z%jkA95gu!3=n(vPGzzRy&x9b3VqBnr;1Ia;8erV#gU@T>M1Z9for@aisyDPD_nMpk4A7I zF=@$ba|q7$O9{dL#vrZ1V`qza_y7At?Ui6BtWcQ#9&DPtlIGPdSCcCv6k;M-3#(6J z^LZlSCpo#?07se!w?5oTvnj;{QZK{cg`7O|;Gu=P z+K@EDAS#XEl*aDvGizhaG?8W8JKNQ*BssZnJsSJq{=0dXT=yz&iKr98PDLyyt*>_k zX~@d5%l>42o)PmL2V=Vmi1qOF5dOZt?GD0a-bdNQ=qje|KLnTvqDdD9*S3%S=>5Fj zNwD2WH{l+&effbm6v zccrfgw;+>2`cq>2*IA@Bz+gQv%rrAJr1;@_Lqn5{%3WcrqYK*~g6G3BzM8Ps1 zG&g*%f=R;v)o}{-f`Q&$cDn5XDEs__%K3UIDV_fd2 z>AMSCxq7*rJU{i~;-GDcQhRAYI`<3BYYwbT?9n|NN&%LyZ?>0&QUmugxFJ9L&kk45 z?`w^<#G8slg`wVX-I#}~ochAnhSx;M`**LRQihVQ8DNL!fNz`v_>R7AU_Z|JQf@8% z*i9Q#$J|*ZNpR~MYwy65d~oQgTh~|l_>iB@HJ)SF7sm#DfZs$ej;+n9``KRgt2E=6l0lhdQnce29;+SDmD~JPB+7Cy^_qNVJZ=A(#Vg@nZAqht z&7EL|z7J6xEc(mA;4VBUKnFZq-x9WDkJpSH_#omk6?Sms|rGT2}_fyDjvY;Uu+6C)ASQNFYj0gSU>5MQ(?3qsGusqcv z*Lv{X_o@3giZ>NzFGG144zGXK9pYj6vXJ~viwQuOHn!*L>Ua*BJ!2$?fD?1bi;DV zr~lUQ?N*7yj+e?Co)58igP0}v*2_rZ3&Uop!=$;B-Ud8?eOMHqz8K5L-BpFwy^Qgc zi+bd?eg-Mo!-I^bA!&P=LuWc0XvoAF`39QnM42J5YVUQ>?^&L}?l>8uM~Bjzxu|Vu z2(VT5wz0Q7PE1ocBJjrnc?0wE0(1M^tkX8QNNSp&PiVR>Le*xhKZQ|hzh_HYZ zacoT8>MB?mx*yiD5^4YkFR65`!lff0dSSDH?Nbjr#9Vh20d54UgWC|?hR$_kCD30G z`M?``aki)zu~#A(j%{ctxG4Ani0sAlgw?%5J{ymfV8EMTWoSsN;Gxy&Bj_EeBsKLL z+^@Up3ydxxzvQCupqqXcOT9a_jj?~w8A#NFvCGH)+sbFhKoJQfW8#|GX473JylBB7d5c>%IVS&jv$H2Vg z;Vqe~w!N3OVQw2y=zR@&?Xv(?I6GAiBv7j}D{WMPg^kk1UW=(1_(NH;bE|T(Aq#9XXBs?aeCp^42oBSMpB8g)x?6!@uKw>((jV_>z za2=SO%xl&L?^EyyxDXsKI1W{Af^Wgcp(@4aKb6MzH*qmP7e_iD9 za78%yRlyZxCv$6kFb%v?{#VFBDx%+)gg@kN>{c8d;Yb#Db)qu&?gb>jWNMbkDciX* zC+r42V1f6Xx+fi_>g)g!VHElT*bR9~5?g++a~6KH7k+<5;1 zGNbMCsZZO=8^8g9-F7&|A>oh8q;!@(3HuGlVMRl{=c_K`sm-TtPC7Vagipad$iU_R z3XIE3V4sD%Cyd-EMuajP(+Q5+KEr|Fkw0#S!O$gu8c;w>@gPqWVudKc`R+v+R4MY< z1J#go%^oljW>-dFmxD0snOhJrvw&d_H^GC+7fg?Eruxe)di*o{nhM{g3CFu`K)(t_ zDmI&chO*z^7tl^SeS9fLh@I$NamP^f^N+?)U|f4ty`CA1Cu+wmIX@vCcQ5{Y zN)uslMwxm$ybZ zIUDdGvN5j|Ve3bq-!@0KG_Jee5Lk(KQFo-UUV#ih3}A<_ZGe{nYwg~V>BKx>k#0gP z|269h4R94?X^eg)6OcE-Fy=AzL+4M{b-$nx^=r^&nkwZ<)+wMY%GFU_l!8mAFTUuK@@Q$>Xe_P06ahgqj4$Z9$V`L9BBt? z-bIH=euHV=MO!oIXdTQp`saw`>fk(C4TmH@9XXa2L^l8~w#Col+!b2BItYL0^JF32 z;&1`boj-Xv8fbgIU^nCt4{Bpt>`cC3Nrk?BdFdy(q*7J81N6>ihf=G>EcwZ&h0lO! z*=0o`>1-AK;~@r&4uB=nWYQN)G>0l z_d*3d1XD;b>^;FC7F>GX^p7r2S?vTWVAml>&?y+Cudgc_v1cAE^i}*%w4cV=D(<$> zzglq0WC?KfHLwy765-0m5&2&sI&rSar4ZZ8P8}`Geb^10J>Y;^eO7vL;PcL->?=Ew z_lM|bm`n$7{Jz3*U}2C>EqVW0)}?Sad4C59;xjZDo8NHbEa$(tS*kA-p(;7Brv39l z=7lN3lO38f3SU>j+`_cdAF|DvS06&Z{^O88Wn^9`Xr~&EYhV~o7bC%dLXh|3LGcP( z^fz0kAw%W&z|N2*WupRg0pzgJs-6b%1BK{-U)=K*RKQR!P6m;mL`zkk0j&W8AHkHE&Z zX>WS_Kjeq2xa%^>V0d?hXEgqs}ut(4$v|j*83E) zN`8u1EMF+VSmNr@r_w-+;K|#$@nMbgz#e+XC`nX5H4iNV0)JpD`wG3S6e7C;n z-}<&NIc<&ye=7>=U>@W`qfDuC3QR5lH9{;NzzP7x|1sDJ>kWL2*#<^iUdWQ$9aD=K z=(77qw>}bj-73)C4DdMoNaN}QjtBY-(k-|{a*>Bs1qLld5qKr}ln|qbUd70t`nC;s z1i%)7M+%>$ z=<;tmRBp87=tA`u=vOYaPsZx^lohyP-q0hJD>8I}(Q=IfpF#zvN-Z!u?U z7$Lw1{`>PmpIoG%{~iXs4!HBbf?ICzTN#BM?6@Ss)_bmsXtJje@&0wbXd!Pr0O z-%#L4oFDl)DWEXAU3M9V*o zkHntd-7ZtmRMoWf<>%%46ixLRr1vhs_>Woyk;*M{V#$PS{cCIA<29j)N0*`liEH$G zn4+!KuEG(|oz;ztHo?eM9FFQMU9CXP&D&I<+BbYp5ADNm8b`#@J`>FmS^5Sa#1xE& zUpwh!aC|N#|0$ONXDnRP7eW;AHQwkNdplL%O{1rxV9rpx!akDw83G!itYVidUQ8Aj z(U}+ICVY@X@I_)KIvO~@WDEs{t*(8@55JiiJP62l^CNyhSAh6cmcI=8H@CP1IWlnp zYLwMqkYk?DVn}d&PB=nf7rq`?i~z(n`=5Gcco0AiXgEOc2nFbC5dgjMB0$gY@_*1r zn*6`gTU@k&ftv3i?a-COzf5&6;X%Z}!b&@i3|I#W#?a#gNiGC2=H!R}kk*F0C+WoM z&{2onJt5^F`rTmfcF*8dOhYlPxnSA>+qosp4FR21doo?pt*G}mP68(8KeoMknSEQ7 zCP%c1h{r*9OU~)$c`E38&Zu9}+G--bn*4}v@y*{gKU{c2;L}o>M(kt_!o)|E`S8%q zoj{%ztd632P{E!V?!hiI@IbW{91K`L0Z?r5O{@-%2nU1@*P!}ws=l>KvK6NcxZzV7JP6r|`4vU$fI_F{((gI!z$%;tsn5$1 z{lJ043c!Wy599VAKlLwDMV?&9k*idIn>}zkSJ6=0s|@J5B|uc@hltGb@r}Pg!)POZrH1x-J6;GmoL;z~RV$n)>B-P!K2`Cq|qQ+Xc_?5h75`ewy<7#% zeLTn&(s^43WtDu}Ol2-sVXzGz`KK)g_GFm#wGB#;y36Okt;r%DzAtxO?fmdsMt4Z$ z?(U`M#4!~cRc;CEJNxa6hH+wA(O0C0*Yi?GGqgqD)NoL-Q!0#a8jt3wP{oPHB`mLR z9P;T7{~jN^O0RDoy!(x-@Cd42INbl+>bYAIxC^nUa5a--{MkUu&)-h}qE%;Z+m}uj zEG(pSJq6+#^Z8~t}r-ERoTRQ8e!ac&knzCpuF zp8MTL2W~o#S@ED?u~~tIc{}+5hun!=H3k|I0u_BKTKKKFtDL75%q)*)bHDA_fraQm zM&Z5BZzZL|WnQS4NvYg{>87gUROm|8ZXRz3EusgpoB#avL0f>~lpHW?Uvj`F`2Kwb zu=XryamRzZ#9%ZP;(}dALk|RJu}{&^q8P+@`-7oxW0&2~qIERnLvBFO<{iM@Izui* z8Y)=qar8ZKh4TxDHDtcv5Za`H{S9pf4;py`*nsb0(Co<5O9-dbi#sm+P)R@` z5w?di6UFcy^jB#$+#dYGtOv2EQ6L;eteHoyJy*+Ncp>|&{_=0XSOov=Gwd$**y14e z0kpBkc>}`lo3R+#XjIqIy~z`o)edOu#qkraYAU)S*L!YLxF#KxQ;A zF=Ddx0jY(aJITmNp6<08kZ-Lf$20XHhDt$+Zy1K>i4&xwWjBN)Xi&+624SSfx3a%V zwtY+tZ~)*0?Z^ctV}XB*OoSF~7?nYSk#~=KKDO`zlOf0g_@WoxY3!R~kb8)7|LNSf z!CTV_cqb+ZQrzg^x)#JHBrzg`pb$MHj~QKyGGqU!q$T;N=nW~zfYi-{gRjGoj~x$k zE1gr-OAX@Zj@-7osIp?PER%_p*OOY|V!v#3rzsP4-FlbIl9@hBzV@jYH`{#ktQbP_ z;P^)~{5WU_Qqw7Av<$n-EP!E1v>i3~aPWXbrUk(tc<+}% zaNLKe3S(cpm4rE_1P70}lmNc9fy9SEh)z!$VgoGey>uTaVkec)**>03bm;bVEU$Gf zS5;C^AQ=2;*Wsb=%X^=*sYsKD+3n7~AO|5{3WIBQz%E`l-~@?xZy`Pe3jLJpK*d;| z(MN@)kde%GALnRR@w~}1cvnPCxgD7=Jcbr%=*JOme3>-Felqx$tEL?v6a7Z5+M**kV0w%l&kV)_icEs8#oZ>#Qm|0jhj)KY*AeMQlVZT%E873RlARk4NUyxR z#vH|f-aw1~=R2u38hiBSsr$zdS#p}(rrEGyLyjUHN}Y{$)90gQGz=jaU})~WxRbH( zfg>wDzYYm*q&vT-!SRUq*qVseP;r8r)N5@Jx8$C-R>ZD$S6O!~d}5f2lYsm4hu`3X zG2H6yfNkM#sJ$9ibxwSiY);%IW6JLwo z;&kk|W4|!;kRGMGM+X&+t&{eyMlMec3(>{AgI7SK99)T|z`<9qlGYE@ zx+R|CEDmT@4OMhPbqwuD7Y7ydCDL0H1y=HPPd8zx?*Ba~a2*xS8pA^m63r7~zA=85 zJ2vBHOqMR7?;D7H?O--xP?hH+HSl@eV0hOu+i}5PT+}sx@T${1Pd>kOb62oFtH6YB z(Ari`k-(b_p6~P%xNlbcjNYgCFthCIzUD~yy<4j9UaCDwWZbmE*_hSk`93Z>CtT)w z3Ly^#F#%sBUhn_<#aZC}Ji}<+LQ(~;?8|ytv``{c@+`zI>`c^^KC*$O$wMDVg| z*0Igt))y(=BW5MO?u-(8gT?-+Y(Ju~sz>urgB+w#vf252&lJu3w|~YBL_TrOcr#y! zbpxutv9D|;-JtkuC1aB`+=t^E98O5&_LCF7guJ^Mse?F6T1ZnDs4JYKJ8NOZqt7uu z<;$g@`-Q)V3tW^re?9rttmt0t;Mbp7ajqw96O!^dn}?9$?a8#dL)Js2kUMm$gh}7$ zV?{W@b0#M~xbj;$nwbc_zdg|ZJuj>;?yYG&f9GvQT$Ce)`CoUz-S0GiIq8BMC zk#xw~I9(tPkl0fUVIXL9L^HFG6S8O8bntwsa4k?hM73t+j$QO7r~LLaGvsPD*-k&h zEMz(kqbvlIbtDcUlPf7}O_1)oy-#V8vleL{a#Ja$)DE(Z^{2E-niyAcxh0y%+kO>x z?>{T_M&OA_e|WrUKQ)`JNvi?>>V7R zKTCb7`ay>aCbdEXoK_bFS^gPW7I zL&jg~J~;35c(q3yWi3@1m-4_clmj7Py)d6*m*-*>QQTvEQBu%C;z^Jnzuw>~?f^Oz z!wiK_fo`&$pw%ZH)VgBm(7CXF}Jv|TeK)-8=PfCKxZYD5XxT_)C;$E|bbHLnFy zDC&}jgM}0>y@`IcL~`3}f^DSblQ3OBw_*6j08?i9VyC2OfiBr;@eMMJaeWDlKZ~-B zxZm1qYwU{CnFSl|P^Y+zG)2<%j zm9DA-nU8dBfAO$s!;XaNH1~GDe|$#4D9b%$L~B^6T4ym1W}xgJkICa+`;@Xen9d76_ySAok9iY`~By%?allmldc7K&)d${M2j zlH+PMj=HLCK*I9npRkOdW5pG|BD>Ld%}kZd|mJx47Pg7(~XiiA*s}OutRKdUGqaVcB>Sc#12*$RMQTEKnAtqnJ@EFQs`%- zCxoqlDbnSjj8UzF>W{dK-n?<2uAyF*haSh6RuvAfCW*NFSPEh8* z<5|{s1g#Dj4+E!>(@~%day*RUb@rgP+q(4zk#Yp}G$B)7I*F?MzjD90^Va!vKeVpp zjuo$_Y>J4_&a*UCM|5ZfMvrN4UG#LMaQ7nZbE6N%U$@A4(wc~vUeERoF%jV&pt?_Q zt=)KI-XSyd$;!T*cI7Ngs;G}SM&X@36|Gln?_s>rbo2f`ZI5D0qvy4AXT;xxH0-&z z`EmV-HkBl^_wTTau6zthG=#76Xl13{s){^yyRYun^T*!{^GdQ5isG&tx-D9L`RVx| zZV_Uik@r#RqV_dS+-01{bKH&!Nh&Lu=aZ)QD|BDTjoonUf^gGH#~TGkdLdn89hk^Y zri-Oo3w6_9 z;mySzJ^fZ+Orj*mR`_lGs{s1>E`wvIEyay4xw6VSsdA}NWv(3n^F8h)lY>9E-ZsOXy2*Ss}LjX zbbm+_$#&?P$fdoZ)j2TH_F2I6q*&tl7JGn8t0-i= z`Bq_G=GI?WU3g(&OJjy167mZ)3$WlK!5*qaOtjMUV_8EiZ|mIllhF^1h0hx^17?}Z zpqeiTjZg$ixQ{?E>NxNc;>3C(TY*`>e~0Z0|MPd^|2^r`zmtX$(~aKH>8^Sk1tzBX zhcY74wh?vrPMtMH_(2cwT*K*#@7QTS$Xs*t$gZ(^gnXVCSh;AkNni>PXI7TSnv8Xt znV}AxoeWh?tkqGr#+zNu7dxym4a0-|bJ4o=%MriApd9?qKCoHjJI~nE5tG}Z%mIj@>H)ohh3N`4}wUbJO=Kue&eX_P56UtTRirxa z=YNogknPG0Nc0yFF~VS_uI4|mRJ`wC|K!;RgmDt?SpZElZD_c2DZzgI8ct`c(Twz_ z*pwoZ8~zWGXh3dc|M_@hW{9FOM0VS!`QOCm()6QP11xVX0I{=QQ@fKDPIb;aVN&+X zGCDM1h5p)}C#o76!hQiEe9YF@4vsIPklid-riJ3(fPu|Vex}l`P!Yp6;}h0y3LOa{FauS^Iy+eFBJOL$m`ltD5CRSHGe-YUo>=-^P?JO zEdb}(RlF|#6&!K0)(fbBW)m|lgPP+X&$?HX~h7yUTudr9yu&faqdKI&2nh-*ui(L^bG@o0MyiV8})KF2#6)tEr zDv7WR?-WK(h;KbP2m>w$KSw&h$XQYojOIKX+{!9xk<2so?T#H-L(GX*c|KAz9z`v98ATN;$4yJ-r|NR9DE638Hh07WE-2yyy zpKFS8*BxOKg3fwWin;arfjC!G#R53WNX5=IxZf7ZLUi-E2T4~w8?MVoC0$G(F)9IP z%@UIHC6DEr4HujCsrKE}RJU0)(Bn)9YchuY z>&Yn^=Qjw5aY8yXWTRHmKrF?7xQ6FnFot}*1(&{4=n71P5mDPMeI@&F&q{a4re=h` zHQiQ4dv73v5*6=gD3TFB;9u2P*dY0^obV&Ipw3_kK0PAD7C%S@09fLRL>uLrN`K?|I&EZ)A=@UX*-Lw(YO5ynQi=KcN{>(VPipVIO~pd0u?0?5c5g zZsGgcvCjMM-@6oXZM8|Kx^C}N4aHDbfF`$Svlv9UUapO$@jG;n%i0qQIsCXd37DDu zxatYCJo}9!0d0wXG>=|W7gqy#g0jbSs#zTQ442g8_CAbKqx%MOEz}N$hOi#*jkJAg51W$ znz_=1zJ1Qkf){=UiGR%C3rBP{wTm4}WOsJU|3`6V83(}w$6Xn=XwP!8oBR51MTZY@ z{F*ufMuWUSHOl(4N*&MP##UxLWY?j8&Kj{r)-YM{1F9+-H}X}QgsXlPyoj116=cR0 zqzSq$jsPy3?~AjKh#qp?8A@cnSpz1*Y5KL0iX4D~_%vJ1KTwuaGuIEU@*vlXySMhe z1geHuZ!;$!9A=K84Va8`4OOSCY>XYLa5A(keT^p+*(8{P=qhRSLp;cb=o+pdd<+>r z1ECpuOhgsFc?F6TU$FlBm5+vxSx>Q`mwz+b$TFr*7B9=L01ZJdIf0E2;Y@c~0z^C{ z&>CgVGEtkkOoz&IB;UjZOs&xhrZ+h;Cm2X5d;qQ)@6_X{*L+#{Z$JBYchgz;E=a|n zV5WVc85k7l*gZP1`-R#17baE}G71hbj(Z@45S^W)BJ=hNhcsfdX7tD3sMm(hr1bW5*g@-90VeV0AY%_p-5gxO1wwE;2fDDhfn|j4K$?H_!kZ8L z0n8z&9{E34EE!Hh=)CNXYPdgy&L2XAe{fqgFO=$^GbCtsSO#y7>Oi$xPRM9L$l|~x z09_3oV3Lo;@bV8aJJgS;okx8Up1?55k-s3mz{EZRIGLnxJO*|kA=kwbFiF~EJwlSm z_QQ<)ONcSBPl1`3HcKRN?Ftd-$il_saFKn2|CDT;7&SGot?QHO{C{KB_G zY>CcC*Y zP$Q5}7Y7fmBPTd%DCP$>9F2Me`P+C461fQ@*=Vqk46ddwaAOwc7(gWCNm3Dv&$Ylr zXd-0;moAg(;1#yP?wbQdZJJl(9N=TlgGl2B0doMvAO z+JKz0-%6o6^N22_b#6VHQf`{%oaFaKz~^qn1q{|dWKytvcelwl^yv1w*){ZU);z*s z*`HevTe0&@s01rSmO-*nu^XJFm^OD2AU^8H!A7&mq z<%8JePMyAd4>)gl38A^Tt(LO?o4T;FBJCHA#q(wp{y5Vt8h+^u^)EkEC zXyPv5EL4%hPARs$`#5Wm`RiczdMkZK14Tcof}EX~S%n@4avijKtN9D9jiuUo5gGDo z7#i&cijfVpKr-?q?<=T>D9)YI*{Tm?;#PbRcLTynJhKec;5vrERgYbNF#uXSg)ly4 z93^jG;_TaP(0m6?+eP!~-wLIa$*qGgTmAoPVK0HL6x$oy;l%N0QC*R-Z07ac-k%xq6R!P08XYOJghqlSpz4( zfP?X?tWhXRj&O1THSBS_9a~q??w}z4jR=k&no8EM27i7a?y|)~Geg{sH74SrF1c5D z|1}}r|L+UxmJ5UJ=ibK$J0o}9^uBLcVs?4+RzL4FN%ZnHlY2hT6S6*k>zn%Dwll~x z$jwp(h!=#|$`6D*-^j^!VAu^yhFs)1H-o>htR;G2at$D2pxQn#0vQh!?JaUqsOh4h8uVr=WaRT85o(6Ik~cpu z=rymISs6zwqa3|IV-)#@m+#@t*&&Bt_a0p0zq-&$jv>THO$tzbgGFix30z4D`qH6( zPsM59JA-b+CgtZ zs@Rhs<9rB#pv2ffL&Q_@dxFRreltQ$3UbPs$heU8+~5d&X|d`79252V*k+XP8I)cQ_VG8p6sn{`wH~_ND?Q0G(E4}4zCP4R~;lkkw z0%v;fSbh=Z#a8wM5O}@Oszu-yf_mpb-D)s2fJo9nKy88Wpv1@6W5^k4Wb-2EZ%hNe zS3g$sC7BYLN{gV>1eB>-&b=A5Yj~M2zGrRn^SQKX)T>B9U<6f+LTJ+nDC z0p*R)ubL)dDGl9MY>f(HhptQYVgyq6DhXTaW}OQ0-c9Xpsv=02$U z-){1oiJXEoF1TEAX6HT>jGP0epx;xTz(_7La|6{4S>*Rt4*>bY|0%8u>#PTcTM+z7f=@bQodDC3K#};>V<}x zz$|1I3!C@#EB8Tm;mH=zJ)w?(EC)cQ8gnu=esbu7ca5ND3s*jIf>en(rf?uU?TwsG zq{KiUmgXTEFKjVK{*jM zN35VEiayL@2iiVj5K!WXwT@L1ewiiA5Ik1P&!tQ0Fuym+U;555R5C_La~F@P(?GSN z*DeR#b$B)YG0Q%HY{<}*=tF;E+q`)-N=D&TDjAwyWDC`iz*8JAy<`qTTrvh? zTM2y66hN*)6IRG1(gquW4)CcKp5p%V!fT8ty<&s?JL0`!O9z|B2W1aAst~7Y<-W(s ze_<9UNUYYV7>3-nwm_Z3R$C3(x2N08pYMZR7IBd*za^f=m2u%=uX%)Y;oUv;KZk!K zcic|v9z9NSaprm${mw6nWOIa#6M>v?9$XJX_O6o`4PPGq0Z)%KZp?bX$R*2uv#_{^ zD}QoYO3JwR{rxiLDB~E{UzpxCBHg2hz+OY)(4wZ~8A#=kma{{T8o!htQew}p$d@9AFQ(bs47^s-tBps*1b{IzNNqL{ zJ_J=i_mB&4(4PX9bi9TP&krJ}z)Ej>@5oxSCw zTMdS3gn5z`gdresGqJ>JoZQ7X%%|>;l|Drcc?(V#O$&Y%%f^p}!h7FzLVC(o zd#rL3{HOtp{Dnbs24^s3XF8Y|2J|F8x?8pXlCr{+)UCl_HB=;fK9SpL+F4FvJu6V? z{a;vWFS2A!{B~`zriMo0fti5Iq@mO0^$7ggzHQ#&6w8a%zY#ZN|z`ost&*DYC~T z^7chre4iC%JN@a%Pt~(CpJ+JlUj4L=RE5g0E9W_HHI?BB>kBeM#UVWIaw1DJ_^qIS z6l{41?AC>%smiCCOF{l!%eLkq0lB$_4+rtPNQm92SPYHSE3hQ{W$#&ATH5thF}o@! z9u9^C*5R53C^GD0bXfJ);WesDobGJ*Ii_~6sU$ZMdCRVB$x32o^KH!;{Bv5lKsgZ> zj}yM!B8I%hoYXx*KL!60x|ee)yE}aj9~{N``%dqpZW_h=NxmOl$XW+g-rsq zk9wD*peQk-{iyK|AsV*XkpSXsV7mONEZx7bbkCXSPUf#xUQ>9_AT00>ZXurcN*`2o z=>U}=$=urU!Q7JcL!Qk%bLw#y-wWSCdVK)zV=43PWg$25EhToFTleXvp+-5JLT6$= zANDy52u&FET-L@6b?*~aG5u!n@)S+twy|A7twFT;ie%>9BbZ)Cr~LQlEf2pwa`9+C zdtN1MuHp?r#Z{YD_eeB$C_;2=e6&4J?G1&`Ye*gRS9@wRFSYMPr-H#Z#xLxMfAm2{ zDP}4!itXhB)@*PAe+kbz{};9_`xj>T7j_t+Nxt&a4Mthh@Q?-hu__sJHkohy*-LNO zExB`r4{VdX$SQ1c6DuW@_2am3#nV&Amc*MjxpcnYv%YyRNL9qY2mLAeaMp$Sos3M4 zVV{ua#VMOesCHL}1IO@tb&w>MO|FlUb#wzQie;J6amnFs+clLjb>@YgUwurj3p|mt z`+<}Ogk(-!IpEc+G3%)j23SJ%nYrS3oHz7)U$t~O+><>@D>jd|;iBp-+1pveMvwlX zX#Xg_OsiYC&na}^+(S%>N1%b`VQ20DWA`%zft=@AS$W^Tz6~~Qi+F0_bG$2)4s$3t_k-q*8rry6IduHdcnlRgR_QFek z#m&TTC5IBQ7e6<)R#b~~yHf63y5K5i*(NydIoZ9_u()zYw?|2Zcs?1kd7bSTRnFzJ z(`#l)lXtX?*yzo^nc0ql?iYIO(&8Uyx_$23`DO-`I35hJ<3BPrlc%nkj;o+o1&;K#L5SbUFqdBWe{5fd z#R@MM{;Hh91_fWyH9_(pXA z7HQtfOln#@Qcqu@#3pGaIkkrbt9ZCS&xds3i+Qb+MbD{c1)aakG+i}s$4RdKQ6G90 z8q?j*gPHhw(7q|IwZm^_xBBox%T}n8h!3MYYoqWebKH2<J&& z5i|%NJrH6Jc4^52|! zkBOA(=^kH~4pu)EjzKAFH9b?cy`zyJN6$}04jt(!%dnTnOON!+>_2^jC^?GWQXUGb;$ zFO~xer-Xl+Xdmio3M!x|Yz+k}vsh=IiKh$eoAO0_>gfTOWVyW5fewHZ)C&-XG7wTh z3X+0l{CgVkEo&$ooN`1zu9URE10?)ZFb+v!K25v+j_vLQD#MW1Sj^`5Zml*a=6n7u zItZt;;0>*m&#pj>l|5#bB0Ltd%H&^+l`sPv+Kpnes?=3OhYm^xKMcqHyx`R?+NOOi zcmNuEo#Tg>$t^N z0jY=QHt?8{B6$0#V_^3jH00(sUful%&P`f&WeJ?Syi6-(#_|KLG<*lhJ>=m;(Jq`R zPJ;r0EsbF;9SrW31>Y&Tn|%Y_h)jV^DBzL(I#P1bPLcoGg_nH2XR;6}Po+iFO5Ws4 zOc!qd?!D{EW8_-Ntw^|`wv}r0KBgkyvSQ#x(!I9&kx_%0Ze+i)ss4)nReh3?%*E(C zijGFDJJ8pI&|UkwP${n8&Xb3 zWm?Ut#w>SPh74)~*m-+cVt5Aw*?=vs;&c7<4Lp?z_g@4h*djf|7EeyxfW>$nf>dw% zxs0Wi{i{?@>*J0&&gk_2_S|MO;7*;!o=Sxx19S8LudD@AkAX_6kdR$r`h4u|7RB3Ccu*Cx1o!#|G1DTd&uF4Y*D8Y zSC{?R%QL&d)e2(!7q8s1{BY=|Tu47l;-K@A6icVq^ZlpNbUi%*B|X2G$*d4_c)~63 zQ0&=@^J~gX9K>Pr*Q_R-ZSk|`=ezgw>301&<|B9ah?m@{DoSt52)BRag6h!C{K-4| z3uENgr;0#;x)9jQ!dh=!Ak_iPqgYbSUsyB9Sx5f0ui%d1(K8gibIiM49gq1wH{gJD zj$7O_Zu>i{3kk7$S5M;(hDdfyrC$wJymuTk5j{9utK0vO%R8ysVe97gp`HlwI;XcA zuj)9S8Uz-BuRX;$e4xZ9saIcU3#b8g4~Rg>=4`vg)Q<9euA!bHIyHvs@dX+U&_m6; z*3cqVdJ%%G#6d*}I)N;$CL83+Ro2G89ldE>7p|Zo_1l5-IMJml$x z$BJy#U+*Y58L?9!+&$YN^oC8{iW9r(6pZ`%S(9z|r%h49SgbS(B=E2+FeYgWkJ5Ap zb}jeqH{OHd1qhoIa{00(a_M6hr^9Lc;e8HIY@`aC z9NT2DXm8GTq<Yk2Q z_!Q-vDkX>#iiui$dpnu*xa_S5zu6;y7NnrAaoVf$ghN{n>BJ|45!k2Lv%J8 zHbrJe=C|(n>Omy)#jbtGCvxEl}nGwvp)P- zf*Zt2tUIc=G7(P_ea9r=!`d(EH3RVAftpAUS;mb_U|9uD{}s)F z*sFf~fVR;o^RR3DWAq-b@Jo+D^1j=wF3pxjk>L_*4Y(iD@m&P8dSXqFqBw7a9D}B} z*6&Ny?wWsQ*M}pb5pl(6$f-O`@(g^4-#d0#`qB0$Jn?sHz~jOgniGZ5^cSY<_8Ao` z;A2d0VyMt_s}d+iXi3|iI~!dgyg?*V;n7d>l-F$CF3x*%MKwi|Iq^~U|B_KiGhRda zO|~6kw-dCl>Pb#eF!@B_cw4%6zBpT{kqM_i!D) zzpyzZsr;_CP>cx+0z=~Pvv1o*po&)Kdx`5%8Y?iQqGnt6C$JkQ|ip>S#V1R%TnSphEym=ua4?*2v+mgN(BpXXJfafyY8a?c1T zZ$Hh0)|<*6xlKlU4^ymUDX#RH$eQA+&$Bt-a1?J>3!ev1r@^rWZ;I>eRrtiL6UCr{ z8oE>PEB`{sTP1uB6rx;%O=9=Xai8OB56a=HU?1pBr>i%#=CDxj`ry^E8U#rZ}{lw|iYD&c-5DaUL%P@57VNEX@$dA+UaS9w6?ZH9ViK zxQ)8X2i-0Bq`m609^*^ORUdln?mQebaN%M00O|f=g-qECr)ZV%n4!pNZreYvlbDzC zm3OVguJIm&(X-OWA#!esw_E)EX+{=N1-+{1d9gR!IDngj2<=32xYv#6a9WreyWhRr z{rZ|-^5^aVizdW^5{*|s*6W2L6dyw*n4N`!ALpQgsr3K1UPziJA% zT4k=98(siXwC~GZ8bS|P(6-UQRJG(V^Wl>EaY$jd)e0U)ygqWdD`KX}aYRdr4NxlH z&*&F3*(b!%UoM;Nyr&nwsO7R=bd&farVS7bI&GwqdGQ-?-pEE=fYSA&%dF=C;p8U) zCY~JPz-~=I63kQXA8#+OeBrQaY5g|Rm=X)J^%|~%hvY+mBR~+dhKaD4Ud};ukn4iQ znfGbMKB1T)reGaW`HHMQ?6k8=5Q^{$g;^jOZ&@3snsXMp)*v*jJaY?JBZjU6ij4;_ z@OhUS(5p@LYFMelrEfdU>6A0s=3uKzRY26A%YL=rE5nRAB!695-81JJJ8{OvE#&9D{kz>?p7mI_6wym# z$P142__V|-BI(UvSPDh!Gt-!a+eE&dWrm<8?BJ-*C+Y(vEo>@!qozFrEs@-SS(%2~ zOyAIa0xe2Cx`V0$ac7H-K~AbWE%Z-t`%h2lhkmkBPyr&M_gI#!AZRfiqlIEqU{sVcY2pE7%k zRQCuZW!_piH?TUX`MY&BJW2a_*!;{pab5_i9@+wN5YYMh!5Z={c8iApk-Gt|=6yzT zcS7~33Ov2w9ShN_GbXS)y9ab;>qj>jo=(Ij_#ZuG=29 za#oM+J^58xG1By9$WJu7gxA32dcJQM?!X>C_pRei>BEnvD+pn0GUEPmIX|x!I`249 zl?Mg9enZTZ+&!G?T0sZlHNCtbu!%UN&mA-_Q^y+p5_|!pbXjQq`Ui+VEULPNg1|;= zIsnlXu}_Vb^K53sZo4e1w@wC@3sTNyZJ^uWy4#Yr0R zdgSwhj0z^uazdGA9utE=kcP>&iv4CJ5Ux6I)1 zI{FicV>BF!t|@8y8j4G&6!+lyD~p(`F{kr}MG=BXM4r^}nqa2bOh?SKOM=iAHwK)& zG29J}e-2(G21e{RNa(%ZZQe>RLD48A2#M}aW%5qwlw6bIF+bv_QsLEnGHjM6OUDXr zQ|Z_i{8#WU2$bO4S5}5yN*w?5Dzl`!5&I``Fm(ge1xqj|=|$n>$==Pb zlQ_#sf+@CQAs(?6S%|5Z%l&zN!|lqqN7A|P;DWxfzs|Y_>T8}DwA_eSmTwh&W$+NXfkg_FfXa~A4Ip^8Wj#B&n~zLoFsLDj5Q)BPfaUSr>WG&Oua*D>R&3EA$+cMvLgt)XG%OuP8=x4X5&tnTb({O$ z+DyaB1JER%`^Pr(SNSDRh#ye`^M)lhW9KZGRjFF}LdAcSU zN&d?13$S9P3yRSPoM%1!l59AX>Fxf7lh@~K41ElqJh&la7JO?W__yt)H~jIRmwy}X zoW8Ek&*JZ0UwEGz&?qTAcDT<#A?r@I|FEw0q`mj=^Tf@CppX~Z5ih9El=}|xm9v~v z5Ra1ig0|&`%i993_DPML8m;o^92~lS=)GlT#^wdSQ0;ib364o2KFjr|^xRrQi#w0m z-xH7R_J{JL%wn%f7Bsr%d@FVO3mcW!-A)+IY%uPr@)PJlW%9-+ygoOP&Hh}Yd-|HF zYmt;^Oww>kq9V<=O3lR^oB&H~5pgqoTeUo+#Zqm@=U2b>mRmsaKlp zw%YBX3k^AsbR1j#M)dXzYZ!T6!D?=qU&osKQ;4Uh6ZHCol37)sS3 z#y)ht`*6Z^2#JCz=wwZjZ=W}}bW?ve&WvQ}yN*KtQYf4e>eMz_T!II7>C)m5-3d>oV@ zcL!*3{+2PdIVSqFtc}UV3tR&PQnHBJV(P_*&#=)re8|6m-DlV%s``$IKlP z-;oa~fwPzHJpTZNs7$x>T1v!=H;*?qt-Le}<9P3_|C}jLewNt->t;3?DGERY102;CjDy=$-BLe`q2bIc>VT{ z%li%J$0hv{K1%xQk1~et%elZzA$6r{C{Ek0;HZX)>Cb!@pK^ImQyLu`F5Qq{@L+%V z*`z~VafPGoT}+wI*gj^a_zR_9q={{0z5S8QXHE~5oQ)`!&zQg*Nm zcBA~JO}o@t4I)3;`4r^-0_x@ZedGakYal9igU4(u(xVF-}QPe+lb)&Um&zYFF;B@4~ znXCRcR6_%%rSCsKf!@Wv^!_!)(Xz&za-ELNx&3*o&Lzm>aQSvpZNg#w;tx7;Ok5== z$!{k#Hb=IT%U@G-m8`Q{Gyl{+sU`3XLb)T(#E|r?e9C2PEwQ4vdTScl;H@n4%@H2Q zIJ+YnlGAP4jv;cZB1F*ZR=Q173dp!y&(sKY(5R zw?gq9yY(*E+=ba)CcYOQg~(lyB*Vv<8#jS^X8WtnmF{USl}AbWy6glkW;cP%~A?O7pGs^_NJcXDGGL{kvYGd%Wv=s0>DB&%|y0y;=El ze#ip|NXtz5su2h#Vi>^5ALlNuKeONV$guZMCbQdf+b0mr{gFkaACx1WT;72y`y{uW znw776CJj7pT z&WIuRBhiHP(@J2%S0Trxj)-fp3{)c8dL8Y^j3rC&#on8%T(*CUl7C$fFZbo^5Q1+0 ziE(~-Z}rR&v{N^2nfZ$6^z~K=m9HVTn(FM6j?C1#n(ePVV&0vhXIOd1NatC6BDJxM z$(2C$Bh~aK?+@zVk!L6Q=cgCOPdpwQDneIo+jF_ZVFf#V7NO_aiNZi8LgpUSF!)IL z)&$ykA|Bv0*t*>-lAdAQU$fmb$hwG%;C#X0+n#R{4KX}AN_?gCWSJ6s23sN2_`PzV zmy(it`T3}7l8oKhk0wuaHQvU2VQ|&w#?gh<|F<+oPXSAso$>Wdh&CHb!yc4?OhlAfE+6pNq2WMe#_#abQ9;5+fyN7|1I}pVJCn+ zWAYBd7PTPr>ZL~%wTXFpz48^H6mo}#%=2DG?g2-24&1$m?Ydt39NN(%BXE3$Czt^~ zU6oeiL0gZ2!ypvi^x#S7XaOOio0TkFIVPdyh6+608s57FCT+RYyS#UzlK)8dz;nS^8;>=pQIVPi z0zN>-v;e8J1WP;CB(g1Z=Z>6;|9r~#o~A-7Dg9}A@E%0nS3x#I+l=TgDA|qEGhK4H zmMObQYlu!xwQs{qXyadmj7yy2$V%+89Cu;Y&L8xHTGl)Mnjr8@b~RL6Uhru+K|$KG zZ|;5MfpCeb39uB&x_xeBkL7X+sAFCFj9BLy?q1!2?v;wp^d9Kl3yNWj%<%p``Sb2& zH zvLG`&yq~mN6~++KA#I1|u>GE0mq%S^<$dvGcZucA3+ZFpT!8n0yKETP18*u&@67u# za&{^7BP1DKWxu4q!UG;Z?UcKdKiS?U6F>QD8kvRakGN6K;@C#si+LU}WI6SkQ` z?R&vJAZDGNZAX(Ap8*bQ>>{iDq~)Y}uU0=EI@WyfyV>4B>@ZL-E5>#2K2zp%n+P}= z`lSPq&HqXbZyh$qZVEjhu$=KZ8^5Gwa;?i8U7FBE7gEO7SP9-l-olD z0$FHMWB}5S(sUPk=NG_grY5`w@QfNy&x6~@1|M#jdo17Q1}`5bUTt&uQHv+YQh;fE z50-@QZ6&VZd($4QoCWmnmy*4gHRiA`yVWe0QNRxD37NdXxZ@85v3_&M>hndJ_a|Mf0YNAhve#hoAg7%0N&%n*~EB{YTXBpJS`!(#~ z!QCae7k77er^Ovgaay31;1b;3DaDFbutEX^cWI$5Ed-~O0>KISJ^8;g@0ZLZGnr&| z@7=x6IoG*PF~*ug`gm{?y+4HjNmf3RLX%YMODPui&?i5rRkCk(f>G5s_Sv5w0&ag` zE(f;<^7WzL*V*-t^@m{0oA2hSkEu|(>m88hgRc0aX`TK};9p>N?PEJ8Yh(G)z0ViF zp`>I-zBJpfo$*MTq1yVm9x@Kne7r5b96tF$a}Vyb9iI4h#*saVp0OAi1|6!uK1MHk zUxS~20j)DXr{e&{a$U_;~^EL-qP_ zFxWR{=E1Qd+w}LtC%k;mq6n}$(gSRcRMxy7-mKz#Fog6Mq$r?wUj9qf^_(>d?0VCB zV)rs)``pd$2PS&0Cb=70IH^8W{eZmq{r%U^uu8vQ*Epd!nEXax^}`0H#isgxqZmA# z04ienfx1hp;2OEDAb$9LI`#Q-5B>uQ)HeO=TmH0W^{lgc{59HbtMTUN7r{o#MJ z7cr2)CoqN_2)qSqxi8#!p))zxMejwg1CO%lN8Jg^MV#5lnO)HOj~%lvV9h$wW;e?6 zl!^hwEqaS~c=D`|4xFX(2@1fl@p&`FD%!{+Jgrm2dyQ-A}d zXn+iTW<;T|82XX8iE?a8IIibN#Fe^sNQI?cCw{9atqPYAVLyh2RQgGSb+EQAK9cam zy+7H)rUjnmH|}NALO;O3^%UDML^2=lLbbjwnC=BG*PJ8C4l~3Gl0o?;r1vTRdVA!? z6iV0>RIasXmM2*HE~@FSnPc#(&9?J4igJjt)jnOZ-{pIKYo3fQq9HM4d{s&Kpayp;8*J~#*>fO->aq{$xNGOe~Yai!BJb#5q~0V7eY*pG-vT&d6~!J3^7cN zIgC6;vNWll$s|&H?DXU9C)U#7ze?xNPj5<34t0&_y(z90UNRN&6C$SAe|nM`=lG;=I#!ht;E zuO3sphbwj~7YEDw(jjyzC%L4u6e!=qdJ>;lqQy`uWSD=^#l>Hd{mXzGKlEMCxqQ1s za4~yL>U=8IRb6q44YbJOYonDLdB7rfA~x&BC= zG}okq^l+@n>mM`63b_?-ZNc#f8S$*K@MUW;CEJK-|5%qsBgnuWBw0F>B8}+@&@2IfdQzTT zySGXx%g6(?nz$yTnKLZe6XK9`U)sXLqOS40`C-A6A~?LMri@9B4a8=YtG{59d^`Wa2lXz2F@0HvE&*3C`Es@6R49*$N z`>4(9$|wqTshrTJ)lY8pNK(L|#%UHFR={aMbOCE#H*JlTr*Lq=ufRO$^S`%!b|rcS zJO!zZcB^B$_2L|fIr~T%Rj03)F?`U@VeKK*MTwLi>t7pbSo~8Xqe7b$Wi?y&@sM99 z`%W%Ntfb0thFglx93F{^tJ5(>-;kmh?B+dk!?H<)n|1=8;Q*x#Ri9Fa7=!PlnL)}( z)7Xa&&PzOMA+B8D5_HC~>o4Td@ol8K{tu)xZe^mlmbeWr(x0pYxaUq(xtjIc)!svx z+icE9Qfbv4!b^J6m9I0kFTiL+uUB`j#t`7>I>#N^JJ~i%#J4V*vS#GbSr_y$oreUEDFu8bW2?*=dz6Y z9;LM`W?ZnyWA7gs?&$$dKuxT^f6O0$g<4wh?ft5j%tB zh$*D{=#_^$!+5HabO2yVJ66R6^g)|~XQLD=YGKTy>$-2qWorbtD`Jn%iO`zLR z^N){&J=U7;uO&`B2wr)9VqRl=3*MCZofDxD*QUu|4WLzo2nkQ;ZQGIigq0|r8Cb^R zgEfBv%jXu!`?MALo>F+4%w)BrNvzOAWCt!l6XQ06nNKx{er+a zot>GkCw^S2hDgI|A#HO1?cliFI<|-mDQA?a) zvLdeG2`6c?(+ret;*Yi=)W+S)cS=f~=BVR;{cZ~qyMJND6t|hyg-H5twCdsaRUdpT z!-T(3-onS(DM^&&^-i0M%^zjPj5^S=QP}_D;~t+&pJ*oB03El*%Qv6hh6{8yXZ%&0 zAO=XT%|`W+Nm2MmLRG z24mcpu#G-b6mP_k;U7KudV9PK!p&UDq_k;(4QCOENB96zP&{V^w}R^t9iWV_T#(Lt zmfxCdFE*wb>%zWh_^*!hi^EeR_iHJxR}J}WXg6>ME*`D^f_}HK3rFJNT832s-L=Zf1%O z*vj|H80}9r21-m(-nbd18b4d$T+=!eEHGr!gui%t<4D0ceHPcSOmcEL(MqjpZ!?~0 za6MH34@+lksnBi4h$eJ^>C%^6N30fmb1RTHjHpY`ggIQ}$?-pBhOIyWoQf_oYjJa= ziLf+VnfOpJmGyGlS4YO zj<%}@(C{aVUF36WaCt5E{V$5n)!a-2oMBZOENZeB=1DFpO_8-`#fTTeZG&MB@js(p z_vnV)S(0c2N+jXiLS~_M*TE*Qv+46I3tBiu^V9l%iUQ_1h!nGFDHO7NM3VNNfLOrF z#EdX?GBXTcK);@;TB7%s37kMi+#I4xJJ5&GvCSNR?KE7FDP< zX=Pw)#ccUXET5&;K(-}|3=3yEQpI%ct4}Dab&q;pgnuXY+>g($A#LpTOr`pK_}nY- zO~Wy?L7joLK;^anhP*(u)(u=bj)%h3le=fjeX(ok7)wKdqS6wkJ!>(6StbmhlQ><~ z$_YF-#srfga&ONgQ0vK|1|HzCsLofKA+Vm8ipw+92R_*{(Hmqmf^+1MG3TNim!t35 zr1YefogB1;(*$MEuhvC_zohh$j#0LhX1V()TNzTby`XO|mF-WYEW)@eD13$bOmHA( zIRw$A5l1QC+CRMcZyT;Y;~!EDD68mXW9gqYdR|47&)$TjZSF z^Oq969@oJSwFBM+wt$=~d-C?`5lB|KR(audx$oEg1Lr#lZZpL6qU_a8)y-ksIuE&t9ccFxaE{H z=g8pVwf(0!y#RA=?UdBcvZkJ}b?@@CwrNvdHLX<1vfPrt=2p6%FTEq%1s~M!3I^YL ze|Zb(j?>5qOEQ;v8PuCWfdhn@SA)XX^BrZjOy;e&>}xIv1rgp?jx6Uj8Gu}d(1{nB zGLuDs6ar2y)M}nVk6aR9`=?oV~L&xxI^he2hcB4eMQYdR%3% zP0qM7Bhq%-65EdbxZe?|;HjQQO*Nwc=Zobh{Gmw&vD-=I$7+aIC^=V42isPLnu= zBb)wjg?L)A*LUen0Yjrmfvm5PDvj8kKy?DzRa>&3F+e7+UC@vgpK}D0M!;?`Gd}6E zFhbay(7trZ4&R>>Ah9@E@ucJ;mu3<;N3{KjvQF%8(&vs;Dh`bJ%*Y>`h|tqI1r zbmr`xPldrW6ajDgxwodyBcdMSysES)2GzH^x6|dSoZK&mju7Do^{&-fj#pN02D=`4 zTNOp-umDKt6VGkg=l-vZ=Qm7_>85ZJRDQS$s7%GL-5xJQ&7>)}H0m z`MAdo6Dc)Lh+*=Q%?zOn_lL>)A}-uIkKY=GcM!E}Xcd70Otw&XX#L=}$WIR#I856a z+nvvsB~Z)Sm*5CWYZkFktdS8;p-Ip_6NWEVOEoHr5Q)<6khXCeT-xi>0>ER6_A?fG zk-fiY3EO);DKm}gajka4=Mq&S2lgMDDS4L_@F?8}Z4z9A(gm~Mw`OupkZ1PgnU5P$oy^^aNz%N(P6--_e(VbJ0z&v)xLm9VT0h9fOBb z`%ZopdM%_L_p0#vn-d>@!co!4=JZby-q--o`Xo6+0{A(KUuY9S6`Qt!!22epNwhZZ zkZ?pTO?Xgp#$Okty(9uwtWd9wj2aRlqLb&(_jgDq!X&^F+4!Fo_fKhAeY|X>nT+bP zstAFBv{Un$x`hW9Lnvcjkm?yJ=+gP}Xy?TC7h9RrP`QY&`Hz^We8duuM4WL{Oo)4G zNqkXklqe$)W7qPvzh~X|!OOk#bOaSR-u~L8L48zhWfX{j&)@%*h+%iWoX^sGH&T%o z<5R&?I%12c!&ANO#MI>zw+7EeBI$@EtD0P|&;~n#skKtXgq^p8dnpk7U2{HJg?BvE zjA&ze&&>2uM6KJ0k=|Zm3MDfz6zii_)1IP7ehXLMpj>lTSojwUlQ6qBEnaf1!X{{l zh(n##+1xui)&gv7`ThDXGXO<(+|y}B)bx^(3aRrEF(&AZBiI641Jt-JcMgt6e+Wr) znML}?(}ZyIju$69I&myy{n`5vpR)9P$AnX{$*3Vz9o8t9`!KkJY$fEF%(DZSzI9=* zT8nt`@Xgt-62rEptf5~L#i-ahA1{K#M3ObOx}^6w2^88GZ?a2eTIOVe5f#}tk^0uy z;yToG7|>)ndXJpO!aM9RIE-~OTrJDr$r?m^?oqMy(Jzor@worIpjfWa-n+8q5W+Es z?~_#TPg8|^bd48G)I3A`3=de)t_X8*tcGKE9>4{I7{^{@rV#%U?oHJ{TiJIs##tkb z;!ZDG2dx1I^#fVfhk=y>d_BIa$r9&`I*SwB4$boE$`%LS*`h7YX3p)_o}wBvc_LRf zl&QyGRCHRXeRIDRx@axZx2zIa$Q_*SFwgNiNVk_sQoND|NNHpj+UV!)9(XJc%2>&a zy1P9V@xgFogmjEXukA0oWptDOzWc)H4n_dWfep=NA$C(}$q@L23{k~m*>N8{yi?nh zm}4ift`>Br&Dxei+m`!mYmdL2oNpg#y}GN~zcu3oaVgI7icKclY;P8k<>#Q%l~jB6 zQlg8IEp$7Q-Setg`CJ26iNcRu6`uI;RD%Jyb8Ceq&%j7cAZ!AsI-np+kTuu94ftyb)*t@QCmHR zCc3Is(NAo08oHjL`GYpZvW@O~wAOjP0!P>K{NnrL#IK}7d|oM;_BJ&62mK3+V1nhi zO%_SCz5Ea0dDu&i$f)WSRs!$k^oYi(lBVkEfk?O2sTRF*DXnwBW8}eVxn+0|K&Sa9 z!X{lSzVQ88T45Vj!56URTz4sDXHT;k0_k4*YUeW^Z5C)oJu!O@`r2tcuHDtOK={I$Frlm4h+MXB)^+gMAXEN;ZEv) zwGMe~RXF#EOwBQMap)hMWAgSPvuBw#yzbcF({q6Rv`^u_0^8`r7Vc=Cp>5$Qbj$)o zv3!N^$nxK%C-bN2=ezvb+(_3&Cu4Hwm;V7)7BNvq18BXQ@45qXXu0`%@G1IR;u#`LkoOR+}yoWw2lH>A{E256@G#VLG3qut* zL!*2WdX5{RrR{33xCfup{59?^>nq<>SKBMpzi3KyJ;g8xYkcu$lhwXGxx^%J)4n1_t30e$?xKd{_RCL;7JI?uJ%B|=T`LLzFfKT)&IeTT!a8$|Jct<-}~YIX=hVj62HIFd88erZ1OlZi@E zsAg-k&?Tq3PSQ@eZa*MbeeAgVe53ygB^s9Spn97An2u4uIHM6qsOd5bPDxMDC<=7` zvDaSBeQXuC>vtTW0tWRZxs8d0zRtM7J)d*;#UUyC0%WM)N;c4<=Ve~*+=U2jXzdo1 zs_)`wQ}H*Lr$=gx&D-T4audQlxENjby$FdZ0VFVplsRuz?g2T&)G|(HfW==v)WX_s z^-k1a+5={@QL}rA+tkF-P53fj;Av^>mA-%;!5-Y<&Y*r$@y3Yz2ZFy=pEjL6I~3!1 z<7aLnpC&RW{dWeXpNt_2U3jx0dE53p1gPe2up|7!+;Mc9j z6GK(hoy>iakiJ3mTTUN&oD6(Yn5|~kTTl_Z5pEHao(3$b`m(H%5Qlr&vpK_stxFCs z=toE54?T6?GveB2Yr-R;PJCz<+`Py z683w2C6`YyRXo>k)(zhkh{fhRxb}NeSQu_Wq@-^`-B*|Lzo9t8$qlL9u9T`;vABco z+C*$}bu$^E%u5qLHqTb^0LEFfE)> zUdYg2^;aq;?F3NbMnVM)H5>mM{6R3^61=Drrl$SaOoR0@d(DSr)V z$bB=%y#ypoao5%1^5_-n?W$|w`g4oaQZr?j7g!Ta&flYR=fC(+#zwsE`0k!#n`WHI z{sl31DH-k5Yb;e2er}Dt{(7~Ext&C9qwUVCBdM1vRUp2B(Jw{DqaIjM-_kN04T#!{ z2PyC=;yq^lt!QnD4tHDZ*!bH3#BN?3z}=Cv0K3l)6jYfK9bQ-=d^8#Pk^V2TzG?E; z$alqVbk4A=sdY7SAgHI*eAsdJo4$~ic@jjuy*95&{o_lfOB-!><7mI`M@B@``gOuy zrzrqj_f8}034J%~lK@58Q_yQJs@0R}sk_eM9Gve%GK;SV%-;`efo4~nSKvm7x~!4l z&_7G6&zsHViT9e|`N$gSj z2Re0rw*&vzis>pGNK=9&GWYbi!@B#&{*I!Yg6I^Wq2})vHpGC$v3z$)SA0J7!H+Ca zAQ0Ndmx)7u*fB~-gIrx|Gf2H7V^)Gv3V7c>w3Ha}=FZ;MbW%&O-$^7yRIsSZs?bwQ zr^=0%K`}|hLs?WQxK+?&fTg<-^+Z~L3U*Ga$jb*eEAA~4VYFm1VAgjit1l%BzM5ZK z9>PIjF{)8awKNIrh-GnK8e6w2@&+NIUqcQU7EK!BYA3KhIC0&p8KkY&MEp<**m^vii4w!udq%?4v7QbsXXXXLk(;E8AQ5Emxbdw!bPWTh>%+pcUUrvl3`HNBxeO}f>YA=_-Zr z_Zx>x`oZdwwqpN5Xhz8{qOp~jwGMgro?&4gA#~DUD)=AZFI*mMwejVb^Vt+Oe{sL^ zLfCkB-RpDn6md&ZQj)}k^~Ijm>C&svq{2%!K^*b*G*U!AVH%Bon%esQ<><$Mb-J7O z1mVy!itGV}<}jiV`2t)auD{z6$-u6IO*?Iz#NqzV)<#j$fnSRzz_A!Sd(eT@$+=nl zGfQY>j6X1q?epHKeyJ39-qgQz-bOR34?e4VGV~ehjMQ#w1Prt%>|bl17rYic8#~T9 z$x?Wl-P7_`RO9vACxsLHeR-5aX}#QEAGF2oI6rBNMK^?Rt;DMsze$S_??Ry09zUZ} zAP|pv?ee)VCiWO=nZH&CdZcQd>;EP9O!*f-U*6u#6ZsBuRN{E0!(hSAdDIV88UZdS zp>NpR$ot@j7K?AiR~<7*%+L?zJcXalhtX`aTGI9-wJJ6aZc+i|u}w3Gj3rE4EBpAH zNrlahUpak1F)CmMa?Ny_m4(j%<}n~Z$c{zA@iW>M;~)bTcJa6{N+Z%73Yb3zLAVMk zh%|VNm}k~>cD;_=EjW2nsf?@esF>dps!>rYIkA^i8QQ?Ehp$`?BEZL$;(CFCy!q=& z8;3?8(uJqVeBnisEN)X&ZI$wR2{_SmU$IGc;1NJ>u1&L*h-GvUCn5Dm)1BNFEY(GD zza}m&p+CD~Fl^_>$<^>+XZs!LyGXW{>QdClir-s1?P`#&b;_U@&-_X8V3%~!icZZ>U+b99|P@&tJ zMNW>xMsVzBZuvq|1bfM%5#Dw+&9-JuL=nJ9iY(u_Jh}8tjxrcSqbjg9)sjGYmCV@H zJd7q7ix@qlzk2(X>r3XzHX{GQahk=HY^vwyBUTvUA#(Ue^BXkS;u2HyRK_FrakmQILlYh|Q$@fLJT z<~#U~{`e~#5&verF8X6OcE)ux_#pG~`30sRKIJ`E&JsS-Dz$!Gy@}0QeL5nn zFIrYva_P|+b2}L3gKK2aOxd7da2-#AEqCWx)-%o_7c7gl~Ug%Gf=+x2m$^ z7-lQ1Lg8Tap#vlfdi32`;`^iX_bBQiMh5a;xXvs|S-KFXd{62#QAFVPrdttbq8&() z)y#2>zf?ojp6RKm{OMfe@Y?`z^(|HBZ5W6#rnz5e%DjX4#t=Wx@5-_^bmn$YQYSL= zN=>e3=3$6m3p=gTj4?)|n)Z|4^=8xso6jXS2pDBCqtlQa$~s5Hp#>ma4xrcti@BEEe)3r!qXEqhCjfA=M)@z@N5Kfp$%G}*b zx=UD--K~4ci@CraJ<6QC_p?IKiZ@^7VN`sS+d?rje4YLL$? zpo1hExP%vqk84imA)Hdh{=Jg>5Pnr;vFxn52-Pph8Avl1(easGs~x6|%^J~!MMp`E z7b%$d`sUeyONA1TojHn1&|U+O6xIGo{(|SW+aj>=!nA+H!&UR|_8SX!q9j~}H@~Uv z-uWY&{{}hg9jB`^p?zopNONED6FyR&eh&Y}AzfLdCs`zV?E+C648znOSpwH$3$}1^ zZ1w$k{WM{SKI~Y%)J8`n1$X`~-5hG`(w1_K#rl_kfUp|wfNo2kwIYC)gNpHbPX1A& z^#hg&``1P-_C6PkAGHElG)(>|svDnR zat=nAyEO@uidV8Hwvn90CuFMf4j6or-wmBMIKD#~6(6Y{UpwDMb>0o{tyM!JaUQHf z`APVovgLbjwl1?B!)vylsRuH?eNdm=+B=CRB`HkTV}}X2%$8`1!~2{!rs*xu{e}r8 z%@d*V{PNVU= zTcv?6L8}B(VaVX1t?z^cqjV%dllkXgr`?;1$P?Z;quVirxAWOQbXA7eF9y;0z6GAI zHA-~<0S^CRfxhR^MI0wT_Z1vG=0~uc0>=d_gwt$^Qi;5lr`IEdD_>h1QbgOQOn>-) z2gbQv#yxMGG)r1T)rt`p?Pyd;a^)UJt5_WObFq^^$27V9wKK74-p^c8=#}*v$nw1MCyBUmFSwbQUWE&bmuZeNIV5^>?g7*^?SCS zskBHi4bBQ*_MKKr4TfT!{$bcNKeRs8FMZn_Ei`lBVqRX%$29q;BX>ivD$GfmjwIgm zG_{6thFH~ei%~zHghk(p`{$isJy|-UFf)`@DXP0(m+R+W!S|oiw7x?r$){)pLUaHl zF3JlSOmnw0vxPw#Jg?2k=?s_O>O5--4sM7LDm+B@&*Ys=2mh!F7)=u(?3xEJtn{D? zyTw3X8sA`yKN)#l=x{xIG~b$p9TbVU~ZGB`k+;&J~Q27rd|^EkovYa^RZZS`IGbv4z(G)G6t#DhTE~ zkn}FwR%i?zrNDt{{ZgM>%S>Q5hW2l_@RPN3e~3(?{ga2aq8tyeY(oG z7&rgcY(WTS*9)3+i2>7a8<92W3FKiLbhHMB9GipyX%9G|Ckw4nr4gi|G$o7ueqS ztsgYloB~Q_vOV$mXH^Pr&A5>+N{fR$x_Oldh0NQ&fG!wZsX!gRp_f4n04FqU$3+pj|0x^Ml>mVRk7C3mR_YOA;52O z$rTovpcje>h#nTe>jmpnZnHx^#KPd=qLxmmIh7Wm7Wve0ouXRhcX-j$IM5RpIWE9p zM^tR&+jr$`f=U6ZGk2Cu9F(u!(keb7mvyvpFpA*(VAUJ#R`B$n3`8sKp@6%Za&yJj> z$wZr*X_kZI<5G8E7}=#*!ttBVm&45TMB6$r7NHtP5mE(XH=o z_Q|5qzQoM7x*}9ITDs>=Kd4Clp>&8iRr9SzMvgn;-xRj<)-mV~w+yN2weC0x&{6EP z3PGin_6zWoIaxh$#nc>ys4G?D9?$ta|>*6NLKIh*?dE^aNngtz4KpTD(KLq3H?aBx2Zwfb~RPa z-YVWyCx$Y&aRp|l*Ar|zyDtcU$Lxs{9Ap}yhY4vkEtjzx+sbopcJk3Pm?tqE z_{g)z7_$|bCdP|Hf{79f{_6Xvfm1Q&Eza&|AK6Ftc5BME8f&ZndZ>YO-GI{3(~S3Z zy#(U)>myCZ2uml`c|82Mx3 z<+m)(8ETp54%Xz-MV*arHviSNVI(rK6lllkk%0m>A$GHGmX80Ho4Y^tf32ByjYfS# zM;y94@l@RM*r@5-l|b05daj}({oIWqujceQMlgtQ{}g*$@<^z!w1Sa)RiXNb-P*03SBPu0v< zHE2zmg4HX`x_3Bi@I?zO`Lwu38KbQ=>1xbo~XkiF-^+0TeKm&S^%*@L|~z+vDOcQ#OCw0NnW@jVDehxGNhs!okf}I(L=3&;ZRlZoGZhF4t$otu|{KlUJkBv05&`x~|2H zvPwR&BlYY|XW{afL5s?EN z*Lirj7isaDf&SlOb74Wjx<@Tp61RcA+*SfN>M@p?@qlCn;cpy%Tv{aX0LIfOs^U$a5>`1aM*F{0XoN)1i>y2A7)Qy61~!kD1kM@$ppeEA-4@ zYkM;ddegl~r*P4wBrrT^q4yND%|%D`($#vNVcm;RM)ZfqqaXUnZ5cKoE~RuVTNR5_ zW!$x9KsI$nH<<(tlg_~!s`t6IC~cR3=XWifL6yhSxX)37PeN5E{{yrx?OS7WH+-@m z1&cp(lC!J>XgXyOM^Qa$A&J2bKK%ruq_SQP$7jM8kdQi+ z1qhE835G9Kcg=0Zc*A?0;UzC;W^Cnll!k9Y3<{*50jufUnML~(+>Ne+DEQ!^L;+K% zyTLJ43=;Pw$A^F0CquyP2o@rmbiKWp0d5L4N^qG27uEQo7<)L(gX_9Y@8;1;GjTY5 z%3H08Rk@vCFb`DDB^F-*64QO(H-w;63FFq6CR>W?@Clp7hVAF3+t(E{`t%j_mU>WW zjdq{pQ&gbLTg6L>WQ>mLSn3h|=Uc62ogQO<#xSm*0DvF2Lo-A+N4aX~Pwc7WNH&Y)9_x$MQ1G_(C6?%lva+A|In7GAybds2Y&6 zTV1e?AJ_K+yqFPbt=U~lr`}U#vS2I^C6x8k9}xX z_A5(Cu_uYgO_gkZ29*R~Fh5fBr7)ExSc+H5dnzP?ig$wZ9kIz_ysJzlY`2xN;AYwVF_2xyXk%=wM5z-^o zUOwlz8v&ytuRGDQp!fq|b9 zTfzr=C0udnH$n=ORVhQ{&$T=riH>Yqz+}(GKu!0Rf4a0c=ls$%aePL2gkPM)X&qm# zOR=xk2&1mm#0Z*1;(~FDMsD>=bDjfR!NAZOqQR1RsrfDZV`^^Z7)8iB-aZH(9N_kt zeReiD(Xm~>S96_&?Tq@0&%%D|7liRVNI(s9FS)zwo9=4}UhrL*Q`W^Km{NO0TjXF$ zxC%@Vj@y6^kczr7pWqPFm>4)|;MJ2xHfdXwCzguSJ|wT5T&VVtLfDp>*FIRjpK9)* z=QLE3TktQZkVySV{}J=jyEb-W#`PM;-r89TA(e z&)HE{mCnc`vJ#IfVowIJE@_nJZP;kI>3iwqd%{DOx3fPIGyu#-U^K^!S~F}5ncpRt~!a6CU&CqLv}q62!moj#x6fJS=}%NQF(JcV;T#G~ZS%gQc(oQO`p4dH$iy!(WB?r)y~RotA-0I1>X8c+exO}=vwdt zNEsp?mlgOL$CK-!ZANzeym(srBa>QJL9#9JypcU!_C0!4=0;)?W8xpxHw>^`>io0V z#+n&oJEp;Fp|W6DO=;*oagB`X)(ghRr2#z;qqxhD9A z-h31ELDv*z-$SB*s&|SZ@*q_wt3c%v-op6bIP@93%1b0xIL}FEi77CeoR2xFNZhUE(n~a<6N{7*%!+9R1%a}xTv)3 zg5Ls?&IDwc{x=>zzv_IrefSI54=IXSOh5I%?B4cbl}1E&m_qbjFd^c90EV9rA;C0Z z+10zl11LkZ_cTT!bw0eWjA - * Here are the models that can be used for instance segmentation. - *

    - * mask_rcnn_inception_resnet_v2_atrous_coco 771 36 Masks - * mask_rcnn_inception_v2_coco 79 25 Masks - * mask_rcnn_resnet101_atrous_coco 470 33 Masks - * mask_rcnn_resnet50_atrous_coco 343 29 Masks - * - * @author Christian Tzolov - */ -public class ExampleInstanceSegmentation { - - public static void main(String[] args) throws IOException { - - ResourceLoader resourceLoader = new DefaultResourceLoader(); - - // You can download pre-trained models directly from the zoo: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md - // Just use the notation # - // For performance reasons you may consider downloading the model locally and use the file:/ URI instead! - String model = "https://download.tensorflow.org/models/object_detection/mask_rcnn_inception_resnet_v2_atrous_coco_2018_01_28.tar.gz#frozen_inference_graph.pb"; - - // All labels for the pre-trained models are available at: - // https://github.com/tensorflow/models/tree/master/research/object_detection/data - // Use the labels applicable for the model. - // Also, for performance reasons you may consider to download the labels and load them from file: instead. - String labels = "https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/mscoco_label_map.pbtxt"; - - // You can cache the TF model on the local file system to improve the bootstrap performance on consecutive runs! - boolean CACHE_TF_MODEL = true; - - // For the pre-trained models fromMemory mask you can set the INSTANCE_SEGMENTATION to enable object instance segmentation as well - boolean INSTANCE_SEGMENTATION = true; - - // Only object fromMemory confidence above the threshold are returned - float CONFIDENCE_THRESHOLD = 0.4f; - - ObjectDetectionService detectionService = - new ObjectDetectionService(model, labels, CONFIDENCE_THRESHOLD, INSTANCE_SEGMENTATION, CACHE_TF_MODEL); - - // You can use file:, http: or classpath: to provide the path to the input image. - byte[] image = GraphicsUtils.loadAsByteArray("classpath:/images/object-detection.jpg"); - - // Returns a list ObjectDetection domain classes to allow programmatic accesses to the detected objects's metadata - List detectedObjects = detectionService.detect(image); - - // Get JSON representation of the detected objects - String jsonObjectDetections = new JsonMapperFunction().apply(detectedObjects); - System.out.println(jsonObjectDetections); - - // Draw the detected object metadata on top of the original image and store the result - byte[] annotatedImage = new ObjectDetectionImageAugmenter(INSTANCE_SEGMENTATION).apply(image, detectedObjects); - File projectDir = new File("functions/function/object-detection-function"); - File output = new File(projectDir, "target/object-detection-segmentation-augmented.jpg"); - IOUtils.write(annotatedImage, new FileOutputStream(output)); - System.out.println("Created:" + output.getPath()); - } -} diff --git a/functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/ExampleObjectDetection.java b/functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/ExampleObjectDetection.java deleted file mode 100644 index 7a8899e1..00000000 --- a/functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/ExampleObjectDetection.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.object.detection.examples; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - -import org.apache.commons.io.IOUtils; - -import org.springframework.cloud.fn.common.tensorflow.deprecated.JsonMapperFunction; -import org.springframework.cloud.fn.object.detection.ObjectDetectionImageAugmenter; -import org.springframework.cloud.fn.object.detection.ObjectDetectionService; -import org.springframework.cloud.fn.object.detection.domain.ObjectDetection; -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.util.StreamUtils; - -/** - * @author Christian Tzolov - */ -public class ExampleObjectDetection { - - public static void main(String[] args) throws IOException { - - // You can download pre-trained models directly from the zoo: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md - // Just use the notation # - // For performance reasons you may consider downloading the model locally and use the file:/ URI instead! - String model = "https://download.tensorflow.org/models/object_detection/faster_rcnn_nas_coco_2018_01_28.tar.gz#frozen_inference_graph.pb"; - //Resource model = resourceLoader.getResource("https://download.tensorflow.org/models/object_detection/faster_rcnn_resnet101_fgvc_2018_07_19.tar.gz#frozen_inference_graph.pb"); - //Resource model = resourceLoader.getResource("https://download.tensorflow.org/models/object_detection/faster_rcnn_resnet50_fgvc_2018_07_19.tar.gz#frozen_inference_graph.pb"); - - // All labels for the pre-trained models are available at: - // https://github.com/tensorflow/models/tree/master/research/object_detection/data - // Use the labels applicable for the model. - // Also, for performance reasons you may consider to download the labels and load them from file: instead. - String labels = "https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/mscoco_label_map.pbtxt"; - //Resource labels = resourceLoader.getResource("https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/fgvc_2854_classes_label_map.pbtxt"); - - // You can cache the TF model on the local file system to improve the bootstrap performance on consecutive runs! - boolean CACHE_TF_MODEL = true; - - // For the pre-trained models fromMemory mask you can set the INSTANCE_SEGMENTATION to enable object instance segmentation as well - boolean NO_INSTANCE_SEGMENTATION = false; - - // Only object fromMemory confidence above the threshold are returned - float CONFIDENCE_THRESHOLD = 0.4f; - - ObjectDetectionService detectionService = - new ObjectDetectionService(model, labels, CONFIDENCE_THRESHOLD, NO_INSTANCE_SEGMENTATION, CACHE_TF_MODEL); - - // You can use file:, http: or classpath: to provide the path to the input image. - String inputImageUri = "classpath:/images/object-detection.jpg"; - try (InputStream is = new DefaultResourceLoader().getResource(inputImageUri).getInputStream()) { - - byte[] image = StreamUtils.copyToByteArray(is); - - // Returns a list ObjectDetection domain classes to allow programmatic accesses to the detected objects's metadata - List detectedObjects = detectionService.detect(image); - - // Get JSON representation of the detected objects - String jsonObjectDetections = new JsonMapperFunction().apply(detectedObjects); - System.out.println(jsonObjectDetections); - - // Draw the detected object metadata on top of the original image and store the result - byte[] annotatedImage = new ObjectDetectionImageAugmenter(NO_INSTANCE_SEGMENTATION).apply(image, detectedObjects); - IOUtils.write(annotatedImage, new FileOutputStream("./object-detection-function/target/object-detection-augmented.jpg")); - } - } -} diff --git a/functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/SimpleExample.java b/functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/SimpleExample.java deleted file mode 100644 index 039cd8dc..00000000 --- a/functions/function/object-detection-function/src/test/java/org/springframework/cloud/fn/object/detection/examples/SimpleExample.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.object.detection.examples; - - -import java.util.List; - -import org.springframework.cloud.fn.object.detection.ObjectDetectionService; -import org.springframework.cloud.fn.object.detection.domain.ObjectDetection; - -/** - * @author Christian Tzolov - */ -public class SimpleExample { - - public static void main(String[] args) { - // Select a pre-trained model from the model zoo: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md - // Just use the notation # - String model = "https://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_ppn_shared_box_predictor_300x300_coco14_sync_2018_07_03.tar.gz#frozen_inference_graph.pb"; - - // All labels for the pre-trained models are available at: https://github.com/tensorflow/models/tree/master/research/object_detection/data - String labels = "https://raw.githubusercontent.com/tensorflow/models/master/research/object_detection/data/mscoco_label_map.pbtxt"; - - ObjectDetectionService detectionService = new ObjectDetectionService(model, labels, - 0.4f, // Only object fromMemory confidence above the threshold are returned. Confidence range is [0, 1]. - false, // No instance segmentation - true); // cache the TF model locally - - // You can use file:, http: or classpath: to provide the path to the input image. - List detectedObjects = detectionService.detect("classpath:/images/object-detection.jpg"); - detectedObjects.stream().map(o -> o.toString()).forEach(System.out::println); - } -} diff --git a/functions/function/payload-converter-function/pom.xml b/functions/function/payload-converter-function/pom.xml deleted file mode 100644 index 8ca745b7..00000000 --- a/functions/function/payload-converter-function/pom.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - payload-converter-function - payload-converter-function - Utility message conversion functions - - diff --git a/functions/function/payload-converter-function/src/main/java/functions/ByteArrayTextToString.java b/functions/function/payload-converter-function/src/main/java/functions/ByteArrayTextToString.java deleted file mode 100644 index d087db26..00000000 --- a/functions/function/payload-converter-function/src/main/java/functions/ByteArrayTextToString.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package functions; - -import java.util.function.Function; - -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.util.MimeTypeUtils; - -/** - * - * @author Christian Tzolov - */ -public class ByteArrayTextToString implements Function, Message> { - - @Override - public Message apply(Message message) { - - if (message.getPayload() instanceof byte[]) { - final MessageHeaders headers = message.getHeaders(); - String contentType = headers.containsKey(MessageHeaders.CONTENT_TYPE) - ? headers.get(MessageHeaders.CONTENT_TYPE).toString() - : MimeTypeUtils.APPLICATION_JSON_VALUE; - - if (contentType.contains("text") || contentType.contains("json") || contentType.contains("x-spring-tuple")) { - message = MessageBuilder.withPayload(new String(((byte[]) message.getPayload()))) - .copyHeaders(message.getHeaders()) - .build(); - } - } - - return message; - } -} - diff --git a/functions/function/payload-converter-function/src/main/java/functions/JsonBytesToMap.java b/functions/function/payload-converter-function/src/main/java/functions/JsonBytesToMap.java deleted file mode 100644 index a1bdc9df..00000000 --- a/functions/function/payload-converter-function/src/main/java/functions/JsonBytesToMap.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package functions; - -import java.io.IOException; -import java.util.Map; -import java.util.function.Function; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import org.springframework.core.log.LogAccessor; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.util.MimeTypeUtils; - -/** - * The {@link Function} to deserialize {@code byte[]} payload into a Map - * if {@link MessageHeaders#CONTENT_TYPE} header is JSON. - * Otherwise, the message is returned as is. - * - * @author Artem Bilan - * - * @since 4.0 - */ -public class JsonBytesToMap implements Function, Message> { - - private static final LogAccessor logger = new LogAccessor(JsonBytesToMap.class); - - private final ObjectMapper objectMapper; - - public JsonBytesToMap(ObjectMapper objectMapper) { - this.objectMapper = objectMapper; - } - - @Override - public Message apply(Message message) { - if (message.getPayload() instanceof byte[] payload) { - MessageHeaders headers = message.getHeaders(); - String contentType = - headers.containsKey(MessageHeaders.CONTENT_TYPE) - ? headers.get(MessageHeaders.CONTENT_TYPE).toString() - : MimeTypeUtils.APPLICATION_JSON_VALUE; - - if (contentType.contains("json")) { - message = MessageBuilder.withPayload(payloadToMapIfCan(payload)) - .copyHeaders(message.getHeaders()) - .build(); - } - } - - return message; - } - - private Object payloadToMapIfCan(byte[] payload) { - try { - return this.objectMapper.readValue(payload, Map.class); - } - catch (IOException ex) { - logger.trace(ex, "Cannot deserialize to Map"); - // Was not able to construct the map from byte[] -- returning as is - return payload; - } - } - -} diff --git a/functions/function/payload-converter-function/src/test/java/functions/ByteArrayTextToStringTests.java b/functions/function/payload-converter-function/src/test/java/functions/ByteArrayTextToStringTests.java deleted file mode 100644 index f6492f0e..00000000 --- a/functions/function/payload-converter-function/src/test/java/functions/ByteArrayTextToStringTests.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package functions; - -import java.util.Collections; -import java.util.function.Function; - -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.util.MimeTypeUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -public class ByteArrayTextToStringTests { - - private static final String MESSAGE = "hello world"; - private static Function, Message> converter; - - @BeforeAll - static void before() { - converter = new ByteArrayTextToString(); - } - - @Test - public void testDefaultNoContentType() { - Message converted = converter.apply(new GenericMessage<>(MESSAGE.getBytes())); - assertThat(converted).isNotNull().extracting(Message::getPayload).isEqualTo(MESSAGE); - - converted = converter.apply(new GenericMessage<>(MESSAGE)); // String - assertThat(converted).isNotNull().extracting(Message::getPayload).isEqualTo(MESSAGE); - } - - @Test - public void testApplicationJsonContentType() { - Message converted = converter.apply(new GenericMessage<>(MESSAGE.getBytes(), - Collections.singletonMap(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE))); - assertThat(converted).isNotNull().extracting(Message::getPayload).isEqualTo("hello world"); - } - - @Test - public void testPlainTextContentType() { - Message converted = converter.apply(new GenericMessage<>(MESSAGE.getBytes(), - Collections.singletonMap(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.TEXT_PLAIN_VALUE))); - assertThat(converted).isNotNull().extracting(Message::getPayload).isEqualTo(MESSAGE); - } - - @Test - public void testOctetContentType() { - Message converted = converter.apply(new GenericMessage<>(MESSAGE.getBytes(), - Collections.singletonMap(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_OCTET_STREAM_VALUE))); - assertThat(converted).isNotNull().extracting(Message::getPayload).isEqualTo(MESSAGE.getBytes()); - } - - @Test - public void testRandomNonTextContentType() { - Message converted = converter.apply(new GenericMessage<>(MESSAGE.getBytes(), - Collections.singletonMap(MessageHeaders.CONTENT_TYPE, "Random Content Type"))); - assertThat(converted).isNotNull().extracting(Message::getPayload).isEqualTo(MESSAGE.getBytes()); - } - -} diff --git a/functions/function/pom.xml b/functions/function/pom.xml deleted file mode 100644 index fd8e67de..00000000 --- a/functions/function/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud.fn - java-functions-function - 5.0.0-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/functions/function/semantic-segmentation-function/README.adoc b/functions/function/semantic-segmentation-function/README.adoc deleted file mode 100644 index 6876b5a6..00000000 --- a/functions/function/semantic-segmentation-function/README.adoc +++ /dev/null @@ -1,104 +0,0 @@ -:images-asciidoc: https://raw.githubusercontent.com/spring-cloud/stream-applications/master/functions/function/semantic-segmentation-function/src/main/resources/images/ -# Semantic Segmentation - -[.lead] -Image Semantic Segmentation based on the state-of-art https://github.com/tensorflow/models/tree/master/research/deeplab[DeepLab] Tensorflow model. - -[cols="1,2", frame=none, grid=none] -|=== -| image:{images-asciidoc}/VikiMaxiAdi-all.png[width=100%] -|Semantic Segmentation is the process of associating each pixel of an image with a class label, (such as flower, person, road, sky, ocean, or car). -Unlike the `Instance Segmentation`, which produces instance-aware region masks, the `Semantic Segmentation` produces class-aware masks. -For implementing `Instance Segmentation` consult the https://github.com/spring-cloud/stream-applications/tree/master/functions/function/object-detection-function[Object Detection Service] instead. -|=== - -The https://github.com/spring-cloud/stream-applications/blob/master/functions/common/tensorflow-common/src/main/java/org/springframework/cloud/fn/common/tensorflow/deprecated/JsonMapperFunction.java[JsonMapperFunction] permits -converting the `List` into JSON objects, and the -https://github.com/spring-cloud/stream-applications/blob/master/functions/function/object-detection-function/src/main/java/org/springframework/cloud/fn/object/detection/ObjectDetectionImageAugmenter.java[ObjectDetectionImageAugmenter] -allow to augment the input image with the detected bounding boxes and segmentation masks. - -## Usage - -Add the `semantic-segmentation` dependency to your pom (_use the latest version available_): - -[source,xml] ----- - - org.springframework.cloud.fn - semantic-segmentation-function - ${revision} - - - - org.springframework.cloud.fn - object-detection-function - ${revision} - ----- - -Following snippet demos how to use the PASCAL VOC model to apply mask to an input image - -[source,java,linenums] ----- - -SemanticSegmentation segmentationService = new SemanticSegmentation( - "https://download.tensorflow.org/models/deeplabv3_mnv2_pascal_trainval_2018_01_29.tar.gz#frozen_inference_graph.pb", // <1> - true); // <2> - -byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/VikiMaxiAdi.jpg"); // <3> - -byte[] imageMask = segmentationService.masksAsImage(inputImage); // <4> -BufferedImage bi = ImageIO.read(new ByteArrayInputStream(imageMask)); -ImageIO.write(bi, "png", new FileOutputStream("./semantic-segmentation-function/target/VikiMaxiAdi_masks.png")); - -byte[] augmentedImage = segmentationService.augment(inputImage); // <5> -IOUtils.write(augmentedImage, new FileOutputStream("./semantic-segmentation-function/target/VikiMaxiAdi_augmented.jpg")); ----- -<1> Download the PASCAL 2012 trained model directly from the web. The `frozen_inference_graph.pb` is the name of the model -file inside the `tar.gz` archive. -<2> Cache the downloaded model locally -<3> Load the input image as byte array -<4> Read get the segmentation mask as separate image -<5> Blend the segmentation mask on top of the original image - -## Models - -Based on the training datasets, three groups of pre-trained models provided: - -[cols="1,2", frame=none, grid=none] -|=== -| image:{images-asciidoc}/VikiMaxiAdi-all.png[width=100%] -| https://github.com/tensorflow/models/blob/master/research/deeplab/g3doc/model_zoo.md#deeplab-models-trained-on-pascal-voc-2012[DeepLab models trained on PASCAL VOC 2012] - -| image:{images-asciidoc}/cityscape-all-small.png[width=100%] -| https://github.com/tensorflow/models/blob/master/research/deeplab/g3doc/model_zoo.md#deeplab-models-trained-on-cityscapes[DeepLab models trained on Cityscapes] - -| image:{images-asciidoc}/ADE20K-all-small.png[width=100%] -| https://github.com/tensorflow/models/blob/master/research/deeplab/g3doc/model_zoo.md#deeplab-models-trained-on-ade20k[DeepLab models trained on ADE20K] -|=== - -Select the model you want to use, copy its archive download Url and add a `#frozen_inference_graph.pb` fragment to it. -Later fragment is the frozen model's file name inside the archive - -TIP: Download the archive and uncompress the `frozen_inference_graph.pb` for required model. Then use the `file://` URI schema. - -Also, convenience there are a couple of models, extracted from the archive and uploaded to bintray: - -[cols=2*,, frame=none, grid=none] -|=== -|PASCAL VOC 2012 (default) -|https://dl.bintray.com/big-data/generic/deeplabv3_mnv2_pascal_train_aug_frozen_inference_graph.pb - -|CITYSCAPE -|https://dl.bintray.com/big-data/generic/deeplabv3_mnv2_cityscapes_train_2018_02_05_frozen_inference_graph.pb - -|ADE20K -|https://dl.bintray.com/big-data/generic/deeplabv3_xception_ade20k_train_2018_05_29_frozen_inference_graph.pb -|=== - -## References: -[.small] -* https://ai.googleblog.com/2018/03/semantic-image-segmentation-with.html[Semantic Image Segmentation with DeepLab in TensorFlow] -* https://github.com/tensorflow/models/tree/master/research/deeplab[DeepLab Project] -* https://medium.freecodecamp.org/how-to-use-deeplab-in-tensorflow-for-object-segmentation-using-deep-learning-a5777290ab6b[How to re-train DeepLab Segmentation models using Transfer Learning] - diff --git a/functions/function/semantic-segmentation-function/pom.xml b/functions/function/semantic-segmentation-function/pom.xml deleted file mode 100644 index 3cad6758..00000000 --- a/functions/function/semantic-segmentation-function/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/NativeImageUtils.java b/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/NativeImageUtils.java deleted file mode 100644 index b9ba1eeb..00000000 --- a/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/NativeImageUtils.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.semantic.segmentation; - -import java.util.Arrays; - -import org.tensorflow.Operand; -import org.tensorflow.op.Ops; -import org.tensorflow.op.core.Concat; -import org.tensorflow.op.core.ExpandDims; -import org.tensorflow.op.core.Gather; -import org.tensorflow.op.core.Range; -import org.tensorflow.op.core.ReduceMax; -import org.tensorflow.op.core.Tile; -import org.tensorflow.op.math.Add; -import org.tensorflow.op.math.Mul; -import org.tensorflow.op.math.Sub; - -/** - * @author Christian Tzolov - */ -public final class NativeImageUtils { - - private NativeImageUtils() { - } - - /** - * grayscaleToRgb. - * https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/python/ops/image_ops_impl.py#L1536 - */ - public static Operand grayscaleToRgb(Ops tf, Operand images) { - ExpandDims rank_1 = tf.expandDims( - tf.math.sub(tf.rank(images), tf.constant(1)), - tf.constant(0)); - // Create once 1D vector of the shape defined by the rank_1. - // E.g. for rank [2] will produce matrix [1, 1]. For [3] rank will produce a cube [1, 1, 1] - Add ones = tf.math.add(tf.zeros(rank_1, Integer.class), tf.constant(1)); - // Convert scalar 3 into 1D array [3] - ExpandDims channelsAs1D = tf.expandDims(tf.constant(3), tf.constant(0)); - Concat shapeList = tf.concat(Arrays.asList(ones, channelsAs1D), tf.constant(0)); - Tile tile = tf.withName("grayscaleToRgb").tile(images, shapeList); - return tile; - } - - public static Operand normalizeMask(Ops tf, Operand mask, float newValue) { - // generate array representing the axis indexes. - // For example of tensor of rank K the axisRange is {0, 1, 2 ...K} - Range axisRange = tf.range(tf.constant(0), // from - tf.dtypes.cast(tf.rank(mask), Integer.class), // to - tf.constant(1)); // step - - ReduceMax max = tf.reduceMax(mask, axisRange); - //Mul input2Float1 = tf.math.mul(tf.math.div(input2Float, max), tf.constant(1f)); - Mul normalizedMask = tf.math.mul(tf.math.div(mask, max), tf.constant(newValue)); - - return normalizedMask; - } - - /** - * Alpha Blending . - * https://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending - */ - public static Operand alphaBlending(Ops tf, Operand srcRgb, Operand dstRgb, Operand srcAlpha) { - Sub alpha = tf.math.sub(tf.onesLike(srcRgb), srcAlpha); - Mul src = tf.math.mul(srcRgb, alpha); - Mul dst = tf.math.mul(dstRgb, tf.math.sub(tf.constant(1.0f), alpha)); - Add out = tf.math.add(dst, src); - - //Mul out = tf.math.mul(srcRgbNormalized, dstRgb); - //Squeeze squeeze = tf.withName("squeeze").squeeze(out, Squeeze.axis(Arrays.asList(0L))); - - return out; - } - - /** - * The mask can contain label values larger than the list of colors provided in the color map. - * To avoid out-of-index errors we will "normalize" the label values in the mask to MOD max-color-table-value. - * @param tf - tensorflow - * @param colorTable Color map of shape [n, 3]. n is the count of label entries and 3 is the RGB color assigned - * to that label. - * @param mask Mask of shape [h, w] containing label vales. - * @return Mask of shape [h, w] fromMemory values normalized between [0, n] - */ - public static Operand normalizeMaskLabels(Ops tf, Operand colorTable, Operand mask) { - // The mask can contain label values larger than the list of colors provided in the color map. - // To avoid out-of-index errors we will "normalize" the label values in the mask to MOD max-color-table-value. - Sub colorTableShape = tf.math.sub(tf.shape(colorTable, Long.class), tf.constant(1L)); - // Color tables have shape [N, 3], where N is the count of label entries. Therefore the max label id is (N - 1). - Gather colorTableSize = tf.gather(colorTableShape, tf.constant(new int[] { 0 }), tf.constant(0)); - // Normalize the label values in the mask so they don't exceed the max value in the color map. - return tf.math.mod(mask, colorTableSize); - } -} diff --git a/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/SegmentationColorMap.java b/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/SegmentationColorMap.java deleted file mode 100644 index 7c42e179..00000000 --- a/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/SegmentationColorMap.java +++ /dev/null @@ -1,363 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.semantic.segmentation; - -import java.io.InputStream; -import java.util.Arrays; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import org.springframework.core.io.DefaultResourceLoader; - -/** - * - * Visualizes the segmentation results via specified color map. - * Color maps helping to visualize the semantic segmentation results for the different datasets. - * - * Supported colormaps are: - * - ADE20K (http://groups.csail.mit.edu/vision/datasets/ADE20K/). - * - Cityscapes dataset (https://www.cityscapes-dataset.com). - * - Mapillary Vistas (https://research.mapillary.com). - * - PASCAL VOC 2012 (http://host.robots.ox.ac.uk/pascal/VOC/). - * - * Based on: https://github.com/tensorflow/models/blob/master/research/deeplab/utils/get_dataset_colormap.py - * - * @author Christian Tzolov - */ -public final class SegmentationColorMap { - - private SegmentationColorMap() { - - } - - /** MAPILLARY_COLORMAP . */ - public static final int[][] MAPILLARY_COLORMAP = new int[][] { - { 165, 42, 42 }, - { 0, 192, 0 }, - { 196, 196, 196 }, - { 190, 153, 153 }, - { 180, 165, 180 }, - { 102, 102, 156 }, - { 102, 102, 156 }, - { 128, 64, 255 }, - { 140, 140, 200 }, - { 170, 170, 170 }, - { 250, 170, 160 }, - { 96, 96, 96 }, - { 230, 150, 140 }, - { 128, 64, 128 }, - { 110, 110, 110 }, - { 244, 35, 232 }, - { 150, 100, 100 }, - { 70, 70, 70 }, - { 150, 120, 90 }, - { 220, 20, 60 }, - { 255, 0, 0 }, - { 255, 0, 0 }, - { 255, 0, 0 }, - { 200, 128, 128 }, - { 255, 255, 255 }, - { 64, 170, 64 }, - { 128, 64, 64 }, - { 70, 130, 180 }, - { 255, 255, 255 }, - { 152, 251, 152 }, - { 107, 142, 35 }, - { 0, 170, 30 }, - { 255, 255, 128 }, - { 250, 0, 30 }, - { 0, 0, 0 }, - { 220, 220, 220 }, - { 170, 170, 170 }, - { 222, 40, 40 }, - { 100, 170, 30 }, - { 40, 40, 40 }, - { 33, 33, 33 }, - { 170, 170, 170 }, - { 0, 0, 142 }, - { 170, 170, 170 }, - { 210, 170, 100 }, - { 153, 153, 153 }, - { 128, 128, 128 }, - { 0, 0, 142 }, - { 250, 170, 30 }, - { 192, 192, 192 }, - { 220, 220, 0 }, - { 180, 165, 180 }, - { 119, 11, 32 }, - { 0, 0, 142 }, - { 0, 60, 100 }, - { 0, 0, 142 }, - { 0, 0, 90 }, - { 0, 0, 230 }, - { 0, 80, 100 }, - { 128, 64, 64 }, - { 0, 0, 110 }, - { 0, 0, 70 }, - { 0, 0, 192 }, - { 32, 32, 32 }, - { 0, 0, 0 }, - { 0, 0, 0 }, - }; - - /** - * Label colormap used in ADE20K segmentation benchmark. - */ - public static final int[][] ADE20K_COLORMAP = new int[][] { - { 0, 0, 0 }, - { 120, 120, 120 }, - { 180, 120, 120 }, - { 6, 230, 230 }, - { 80, 50, 50 }, - { 4, 200, 3 }, - { 120, 120, 80 }, - { 140, 140, 140 }, - { 204, 5, 255 }, - { 230, 230, 230 }, - { 4, 250, 7 }, - { 224, 5, 255 }, - { 235, 255, 7 }, - { 150, 5, 61 }, - { 120, 120, 70 }, - { 8, 255, 51 }, - { 255, 6, 82 }, - { 143, 255, 140 }, - { 204, 255, 4 }, - { 255, 51, 7 }, - { 204, 70, 3 }, - { 0, 102, 200 }, - { 61, 230, 250 }, - { 255, 6, 51 }, - { 11, 102, 255 }, - { 255, 7, 71 }, - { 255, 9, 224 }, - { 9, 7, 230 }, - { 220, 220, 220 }, - { 255, 9, 92 }, - { 112, 9, 255 }, - { 8, 255, 214 }, - { 7, 255, 224 }, - { 255, 184, 6 }, - { 10, 255, 71 }, - { 255, 41, 10 }, - { 7, 255, 255 }, - { 224, 255, 8 }, - { 102, 8, 255 }, - { 255, 61, 6 }, - { 255, 194, 7 }, - { 255, 122, 8 }, - { 0, 255, 20 }, - { 255, 8, 41 }, - { 255, 5, 153 }, - { 6, 51, 255 }, - { 235, 12, 255 }, - { 160, 150, 20 }, - { 0, 163, 255 }, - { 140, 140, 140 }, - { 250, 10, 15 }, - { 20, 255, 0 }, - { 31, 255, 0 }, - { 255, 31, 0 }, - { 255, 224, 0 }, - { 153, 255, 0 }, - { 0, 0, 255 }, - { 255, 71, 0 }, - { 0, 235, 255 }, - { 0, 173, 255 }, - { 31, 0, 255 }, - { 11, 200, 200 }, - { 255, 82, 0 }, - { 0, 255, 245 }, - { 0, 61, 255 }, - { 0, 255, 112 }, - { 0, 255, 133 }, - { 255, 0, 0 }, - { 255, 163, 0 }, - { 255, 102, 0 }, - { 194, 255, 0 }, - { 0, 143, 255 }, - { 51, 255, 0 }, - { 0, 82, 255 }, - { 0, 255, 41 }, - { 0, 255, 173 }, - { 10, 0, 255 }, - { 173, 255, 0 }, - { 0, 255, 153 }, - { 255, 92, 0 }, - { 255, 0, 255 }, - { 255, 0, 245 }, - { 255, 0, 102 }, - { 255, 173, 0 }, - { 255, 0, 20 }, - { 255, 184, 184 }, - { 0, 31, 255 }, - { 0, 255, 61 }, - { 0, 71, 255 }, - { 255, 0, 204 }, - { 0, 255, 194 }, - { 0, 255, 82 }, - { 0, 10, 255 }, - { 0, 112, 255 }, - { 51, 0, 255 }, - { 0, 194, 255 }, - { 0, 122, 255 }, - { 0, 255, 163 }, - { 255, 153, 0 }, - { 0, 255, 10 }, - { 255, 112, 0 }, - { 143, 255, 0 }, - { 82, 0, 255 }, - { 163, 255, 0 }, - { 255, 235, 0 }, - { 8, 184, 170 }, - { 133, 0, 255 }, - { 0, 255, 92 }, - { 184, 0, 255 }, - { 255, 0, 31 }, - { 0, 184, 255 }, - { 0, 214, 255 }, - { 255, 0, 112 }, - { 92, 255, 0 }, - { 0, 224, 255 }, - { 112, 224, 255 }, - { 70, 184, 160 }, - { 163, 0, 255 }, - { 153, 0, 255 }, - { 71, 255, 0 }, - { 255, 0, 163 }, - { 255, 204, 0 }, - { 255, 0, 143 }, - { 0, 255, 235 }, - { 133, 255, 0 }, - { 255, 0, 235 }, - { 245, 0, 255 }, - { 255, 0, 122 }, - { 255, 245, 0 }, - { 10, 190, 212 }, - { 214, 255, 0 }, - { 0, 204, 255 }, - { 20, 0, 255 }, - { 255, 255, 0 }, - { 0, 153, 255 }, - { 0, 41, 255 }, - { 0, 255, 204 }, - { 41, 0, 255 }, - { 41, 255, 0 }, - { 173, 0, 255 }, - { 0, 245, 255 }, - { 71, 0, 255 }, - { 122, 0, 255 }, - { 0, 255, 184 }, - { 0, 92, 255 }, - { 184, 255, 0 }, - { 0, 133, 255 }, - { 255, 214, 0 }, - { 25, 194, 194 }, - { 102, 255, 0 }, - { 92, 0, 255 }, - }; - - /** BLACK_WHITE_COLORMAP . */ - public static int[][] BLACK_WHITE_COLORMAP = new int[][] { - { 0, 0, 0 }, - { 127, 127, 127 }, - { 255, 255, 255 }, - }; - - /** CITYMAP_COLORMAP . */ - public static final int[][] CITYMAP_COLORMAP = new int[255][3]; - - static { - - // Initialize citymap - int[][] _CITYMAP_COLORMAP = new int[][] { - { 128, 64, 128 }, - { 244, 35, 232 }, - { 70, 70, 70 }, - { 102, 102, 156 }, - { 190, 153, 153 }, - { 153, 153, 153 }, - { 250, 170, 30 }, - { 220, 220, 0 }, - { 107, 142, 35 }, - { 152, 251, 152 }, - { 70, 130, 180 }, - { 220, 20, 60 }, - { 255, 0, 0 }, - { 0, 0, 142 }, - { 0, 0, 70 }, - { 0, 60, 100 }, - { 0, 80, 100 }, - { 0, 0, 230 }, - { 119, 11, 32 } - }; - - for (int i = 0; i < _CITYMAP_COLORMAP.length; i++) { - System.arraycopy(_CITYMAP_COLORMAP[i], 0, CITYMAP_COLORMAP[i], 0, _CITYMAP_COLORMAP[i].length); - } - } - - public static int[][] loadColorMap(String resourceUri) { - try { - InputStream colorMapIs = new DefaultResourceLoader().getResource(resourceUri).getInputStream(); - ColorMap colorMap = new ObjectMapper().readValue(colorMapIs, ColorMap.class); - return colorMap.getColormap(); - } - catch (Exception exception) { - throw new RuntimeException(exception); - } - } - - public static class ColorMap { - private String name; - private String info; - private int[][] colormap; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getInfo() { - return info; - } - - public void setInfo(String info) { - this.info = info; - } - - public int[][] getColormap() { - return colormap; - } - - public void setColormap(int[][] colormap) { - this.colormap = colormap; - } - - @Override - public String toString() { - return "ColorMap{" + - "name='" + name + '\'' + - "info='" + info + '\'' + - ", colormap=" + Arrays.deepToString(colormap) + - '}'; - } - } -} diff --git a/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/SemanticSegmentation.java b/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/SemanticSegmentation.java deleted file mode 100644 index 35171889..00000000 --- a/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/SemanticSegmentation.java +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.semantic.segmentation; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; -import java.util.Arrays; -import java.util.Collections; -import java.util.Map; - -import javax.imageio.ImageIO; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.tensorflow.Operand; -import org.tensorflow.Tensor; -import org.tensorflow.op.Ops; -import org.tensorflow.op.core.Gather; -import org.tensorflow.op.core.Placeholder; -import org.tensorflow.op.core.Squeeze; -import org.tensorflow.op.core.ZerosLike; -import org.tensorflow.op.dtypes.Cast; -import org.tensorflow.op.image.DecodeJpeg; -import org.tensorflow.op.image.ExtractJpegShape; -import org.tensorflow.op.math.Add; -import org.tensorflow.op.math.Div; -import org.tensorflow.op.math.Equal; -import org.tensorflow.types.UInt8; - -import org.springframework.cloud.fn.common.tensorflow.Functions; -import org.springframework.cloud.fn.common.tensorflow.GraphRunner; -import org.springframework.cloud.fn.common.tensorflow.GraphRunnerMemory; -import org.springframework.cloud.fn.common.tensorflow.ProtoBufGraphDefinition; -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; -import org.springframework.core.io.DefaultResourceLoader; - -/** - * @author Christian Tzolov - */ -public class SemanticSegmentation implements AutoCloseable { - - private static final long CHANNELS = 3; - private static final float REQUIRED_INPUT_IMAGE_SIZE = 513f; - private final GraphRunner imageNormalization; - private final GraphRunner semanticSegmentation; - private final GraphRunner maskImageEncoding; - private final GraphRunner alphaBlending; - private final Tensor colorMapTensor; - private final Tensor maskTransparencyTensor; - - @Override - public void close() { - this.imageNormalization.close(); - this.semanticSegmentation.close(); - this.maskImageEncoding.close(); - this.alphaBlending.close(); - - this.colorMapTensor.close(); - this.maskTransparencyTensor.close(); - } - - public SemanticSegmentation(String modelUrl, int[][] colorMap, long[] labelFilter, float maskTransparency) { - - this.imageNormalization = new GraphRunner("input_image", "resized_image") - .withGraphDefinition(tf -> { - Placeholder input = tf.withName("input_image").placeholder(String.class); - ExtractJpegShape imageShapeAndChannel = tf.image.extractJpegShape(input); - Gather imageShape = tf.gather(imageShapeAndChannel, tf.constant(new int[] { 0, 1 }), tf.constant(0)); - - Cast maxSize = tf.dtypes.cast(tf.max(imageShape, tf.constant(0)), Float.class); - Div scale = tf.math.div(tf.constant(REQUIRED_INPUT_IMAGE_SIZE), maxSize); - Cast newSize = tf.dtypes.cast(tf.math.mul(scale, tf.dtypes.cast(imageShape, Float.class)), Integer.class); - - final Operand decodedImage = - tf.dtypes.cast(tf.image.decodeJpeg(input, DecodeJpeg.channels(CHANNELS)), Float.class); - - final Operand resizedImageFloat = - tf.image.resizeBilinear(tf.expandDims(decodedImage, tf.constant(0)), newSize); - - tf.withName("resized_image").dtypes.cast(resizedImageFloat, UInt8.class); - }); - - this.semanticSegmentation = new GraphRunner("ImageTensor:0", "SemanticPredictions:0") - .withGraphDefinition(new ProtoBufGraphDefinition(new DefaultResourceLoader().getResource(modelUrl), true)); - - this.colorMapTensor = Tensor.create(colorMap).expect(Integer.class); - - this.maskImageEncoding = new GraphRunner(Arrays.asList("color_map", "mask_pixels"), Arrays.asList("mask_png", "mask_rgb")) - .withGraphDefinition(tf -> { - Placeholder colorTable = tf.withName("color_map").placeholder(Integer.class); - - Placeholder batchedMask = tf.withName("mask_pixels").placeholder(Long.class); - // Remove batch dimension - Squeeze mask = tf.squeeze(batchedMask, Squeeze.axis(Arrays.asList(0L))); - - Operand filteredMask = labelFilter(tf, mask, labelFilter); - - // The mask can contain label values larger than the list of colors provided in the color map. - // To avoid out-of-index errors we will "normalize" the label values in the mask to MOD max-color-table-value. - Operand mask3 = NativeImageUtils.normalizeMaskLabels(tf, colorTable, filteredMask); - - Gather maskRgb = tf.withName("mask_rgb").gather(colorTable, mask3, tf.constant(0)); - - Operand png = tf.withName("mask_png").image.encodePng(tf.dtypes.cast(maskRgb, UInt8.class)); - - }); - - this.maskTransparencyTensor = Tensor.create(maskTransparency).expect(Float.class); - - this.alphaBlending = new GraphRunner( - Arrays.asList("input_image", "mask_image", "mask_transparency"), Arrays.asList("blended_png")) - .withGraphDefinition(tf -> { - // Input image [B, H, W, 3] - Cast inputImageRgb = tf.dtypes.cast(tf.withName("input_image").placeholder(UInt8.class), Float.class); - - Placeholder a = tf.withName("mask_image").placeholder(Integer.class); - Cast maskRgb = tf.dtypes.cast(a, Float.class); - - Squeeze inputImageRgb2 = tf.squeeze(inputImageRgb, Squeeze.axis(Arrays.asList(0L))); - - Placeholder maskTransparencyHolder = tf.withName("mask_transparency").placeholder(Float.class); - - // Blend the transparent maskImage on top of the input image. - Operand blended = NativeImageUtils.alphaBlending(tf, maskRgb, inputImageRgb2, maskTransparencyHolder); - - // Cut - //Operand condition = tf.math.equal(a, tf.zerosLike(a)); - //Operand blended = tf.where3(condition, tf.zerosLike(maskRgb), inputImageRgb2); - - // Encode PNG - tf.withName("blended_png").image.encodePng(tf.dtypes.cast(blended, UInt8.class)); - - }); - } - - public byte[] blendMask(byte[] image) { - try (Tensor inputTensor = Tensor.create(image); GraphRunnerMemory memory = new GraphRunnerMemory()) { - - Map> blendedTensors = - this.imageNormalization.andThen(memory) // (input_image) -> (resized_image) and memorize (resized_image) - .andThen(this.semanticSegmentation).andThen(memory) // (ImageTensor:0) -> (SemanticPredictions:0) and memorize (SemanticPredictions:0) - .andThen(Functions.rename("SemanticPredictions:0", "mask_pixels")) // (SemanticPredictions:0) -> (mask_pixels) - .andThen(Functions.enrichWith("color_map", this.colorMapTensor)) // (mask_pixels) -> (mask_pixels, color_map) - .andThen(this.maskImageEncoding).andThen(memory) // (color_map, mask_pixels) -> (mask_png, mask_rgb) and memorize (mask_png, mask_rgb) - .andThen(Functions.enrichFromMemory( - memory, "resized_image")) // (mask_png, mask_rgb) -> (mask_png, mask_rgb, resized_image), e.g. join the normalizedImageTensor - .andThen(Functions.rename( - "resized_image", "input_image", - "mask_rgb", "mask_image")) // (mask_png, mask_rgb, resized_image) -> (mask_image, input_image) - .andThen(Functions.enrichWith("mask_transparency", this.maskTransparencyTensor)) // (mask_image, input_image) -> (mask_image, input_image, mask_transparency) - .andThen(this.alphaBlending).andThen(memory) // (mask_image, input_image, mask_transparency) -> (blended_png) - .apply(Collections.singletonMap("input_image", inputTensor)); // () -> (input_image) - - byte[] blendedImage = blendedTensors.get("blended_png").bytesValue(); - - memory.getTensorMap().entrySet().stream().forEach(e -> System.out.println(e)); - - return blendedImage; - } - } - - public long[][] maskPixels(byte[] image) { - try (Tensor inputTensor = Tensor.create(image); GraphRunnerMemory memory = new GraphRunnerMemory()) { - - return this.imageNormalization.andThen(memory) // (input_image) -> (resized_image) and memorize (resized_image) - .andThen(this.semanticSegmentation).andThen(memory) // (ImageTensor:0) -> (SemanticPredictions:0) and memorize (SemanticPredictions:0) - .andThen(tensorMap -> { - Tensor maskTensor = tensorMap.get("SemanticPredictions:0"); - int width = (int) maskTensor.shape()[1]; - int height = (int) maskTensor.shape()[2]; - return maskTensor.copyTo(new long[1][width][height])[0]; // 1 == batch size - }) - .apply(Collections.singletonMap("input_image", inputTensor)); // () -> (input_image) - } - } - - public byte[] maskImage(byte[] image) { - - try (Tensor inputTensor = Tensor.create(image); GraphRunnerMemory memory = new GraphRunnerMemory()) { - - return this.imageNormalization.andThen(memory) // (input_image) -> (resized_image) and memorize (resized_image) - .andThen(this.semanticSegmentation).andThen(memory) // (ImageTensor:0) -> (SemanticPredictions:0) and memorize (SemanticPredictions:0) - .andThen(Functions.rename("SemanticPredictions:0", "mask_pixels")) // (SemanticPredictions:0) -> (mask_pixels) - .andThen(Functions.enrichWith("color_map", this.colorMapTensor)) // (mask_pixels) -> (mask_pixels, color_map) - .andThen(this.maskImageEncoding).andThen(memory) // (color_map, mask_pixels) -> (mask_png, mask_rgb) and memorize (mask_png, mask_rgb) - .andThen(tensorMap -> tensorMap.get("mask_png").bytesValue()) - .apply(Collections.singletonMap("input_image", inputTensor)); // () -> (input_image) - } - } - - private Operand labelFilter(Ops tf, Operand mask, long[] labels) { - - if (labels == null || labels.length == 0) { - return mask; - } - - ZerosLike zeroMask = tf.zerosLike(mask); - Operand result = zeroMask; - for (long label : labels) { - Add labelMask = tf.math.add(tf.zerosLike(mask), tf.constant(label)); - Equal condition = tf.math.equal(mask, labelMask); - result = tf.math.add(result, tf.where3(condition, labelMask, zeroMask)); - } - return result; - } - - public static void main(String[] args) throws IOException { - - try (SemanticSegmentation segmentationService = new SemanticSegmentation( - "https://download.tensorflow.org/models/deeplabv3_mnv2_cityscapes_train_2018_02_05.tar.gz#frozen_inference_graph.pb", - SegmentationColorMap.loadColorMap("classpath:/colormap/citymap_colormap.json"), null, 0.45f) - ) { - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/amsterdam-cityscape1.jpg"); - - // 1. Mask pixels - long[][] maskPixels = segmentationService.maskPixels(inputImage); - - String json = new ObjectMapper().writeValueAsString(maskPixels); - - // 2. Alpha Blending - byte[] blended = segmentationService.blendMask(inputImage); - ImageIO.write(ImageIO.read(new ByteArrayInputStream(blended)), "png", - new File("./functions/function/semantic-segmentation-function/target/blendedImage.png")); - - // 3. Mask Image - byte[] maskImage = segmentationService.maskImage(inputImage); - ImageIO.write(ImageIO.read(new ByteArrayInputStream(maskImage)), "png", - new File("./functions/function/semantic-segmentation-function/target/maskImage.png")); - } - - try (SemanticSegmentation segmentationService = new SemanticSegmentation( - "https://download.tensorflow.org/models/deeplabv3_xception_ade20k_train_2018_05_29.tar.gz#frozen_inference_graph.pb", - SegmentationColorMap.loadColorMap("classpath:/colormap/ade20k_colormap.json"), null, 0.45f) - ) { - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/interior.jpg"); - - // 1. Mask pixels - long[][] maskPixels = segmentationService.maskPixels(inputImage); - - // 2. Alpha Blending - byte[] blended = segmentationService.blendMask(inputImage); - ImageIO.write(ImageIO.read(new ByteArrayInputStream(blended)), "png", - new File("./functions/function/semantic-segmentation-function/target/inventory-blendedImage.png")); - - // 3. Mask Image - byte[] maskImage = segmentationService.maskImage(inputImage); - ImageIO.write(ImageIO.read(new ByteArrayInputStream(maskImage)), "png", - new File("./functions/function/semantic-segmentation-function/target/inventory-MaskImage.png")); - } - - try (SemanticSegmentation segmentationService = new SemanticSegmentation( - "https://download.tensorflow.org/models/deeplabv3_mnv2_pascal_trainval_2018_01_29.tar.gz#frozen_inference_graph.pb", - SegmentationColorMap.loadColorMap("classpath:/colormap/black_white_colormap.json"), null, 0.45f) - ) { - byte[] inputImage = GraphicsUtils.loadAsByteArray("classpath:/images/VikiMaxiAdi.jpg"); - - // 1. Mask pixels - long[][] maskPixels = segmentationService.maskPixels(inputImage); - - // 2. Alpha Blending - byte[] blended = segmentationService.blendMask(inputImage); - ImageIO.write(ImageIO.read(new ByteArrayInputStream(blended)), "png", - new File("./functions/function/semantic-segmentation-function/target/pascal-blendedImage.png")); - - // 3. Mask Image - byte[] maskImage = segmentationService.maskImage(inputImage); - ImageIO.write(ImageIO.read(new ByteArrayInputStream(maskImage)), "png", - new File("./functions/function/semantic-segmentation-function/target/pascal-MaskImage.png")); - } - - } -} diff --git a/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/attic/SemanticSegmentationUtils.java b/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/attic/SemanticSegmentationUtils.java deleted file mode 100644 index ee6c1ef6..00000000 --- a/functions/function/semantic-segmentation-function/src/main/java/org/springframework/cloud/fn/semantic/segmentation/attic/SemanticSegmentationUtils.java +++ /dev/null @@ -1,289 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.semantic.segmentation.attic; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferByte; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.Arrays; -import java.util.Base64; -import java.util.Collections; -import java.util.Map; - -import javax.imageio.ImageIO; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.tensorflow.Tensor; -import org.tensorflow.types.UInt8; - -import org.springframework.cloud.fn.common.tensorflow.deprecated.GraphicsUtils; -import org.springframework.cloud.fn.common.tensorflow.deprecated.TensorFlowService; -import org.springframework.core.io.DefaultResourceLoader; - -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 - * every pixel in an image. - * - * https://ai.googleblog.com/2018/03/semantic-image-segmentation-with.html - * https://github.com/tensorflow/models/blob/master/research/deeplab/g3doc/model_zoo.md - * https://github.com/tensorflow/models/tree/master/research/deeplab - * https://github.com/tensorflow/models/blob/master/research/deeplab/deeplab_demo.ipynb - * http://presentations.cocodataset.org/Places17-GMRI.pdf - * - * http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html - * https://www.cityscapes-dataset.com/dataset-overview/#class-definitions - * http://groups.csail.mit.edu/vision/datasets/ADE20K/ - * - * https://github.com/mapillary/inplace_abn - * - * @author Christian Tzolov - */ -public class SemanticSegmentationUtils { - - /** INPUT_TENSOR_NAME . */ - public static final String INPUT_TENSOR_NAME = "ImageTensor:0"; - /** OUTPUT_TENSOR_NAME . */ - public static final String OUTPUT_TENSOR_NAME = "SemanticPredictions:0"; - - private static final int BATCH_SIZE = 1; - private static final long CHANNELS = 3; - private static final int REQUIRED_INPUT_IMAGE_SIZE = 513; - - public static BufferedImage scaledImage(String imagePath) { - try { - return scaledImage(ImageIO.read(new DefaultResourceLoader().getResource(imagePath).getInputStream())); - } - catch (IOException e) { - throw new IllegalStateException("Failed to load Image from: " + imagePath, e); - } - } - - public static BufferedImage scaledImage(byte[] image) { - try { - return scaledImage(ImageIO.read(new ByteArrayInputStream(image))); - } - catch (IOException e) { - throw new IllegalStateException("Failed to load Image from byte array", e); - } - } - - public static BufferedImage scaledImage(BufferedImage image) { - double scaleRatio = 1.0 * REQUIRED_INPUT_IMAGE_SIZE / Math.max(image.getWidth(), image.getHeight()); - return scale(image, scaleRatio); - } - - private static BufferedImage scale(BufferedImage originalImage, double scale) { - int newWidth = (int) (originalImage.getWidth() * scale); - int newHeight = (int) (originalImage.getHeight() * scale); - - Image tmpImage = originalImage.getScaledInstance(newWidth, newHeight, Image.SCALE_DEFAULT); - //BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, TYPE_INT_BGR); - BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, TYPE_3BYTE_BGR); - //BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, originalImage.getType()); - - Graphics2D g2d = resizedImage.createGraphics(); - g2d.drawImage(tmpImage, 0, 0, null); - g2d.dispose(); - - return resizedImage; - } - - public static BufferedImage blendMask(BufferedImage mask, BufferedImage background) { - GraphicsUtils.overlayImages(background, mask, 0, 0); - return background; - } - - public static Tensor createInputTensor(BufferedImage scaledImage) { - if (scaledImage.getType() != TYPE_3BYTE_BGR) { - throw new IllegalArgumentException( - String.format("Expected 3-byte BGR encoding in BufferedImage, found %d", scaledImage.getType())); - } - - // ImageIO.read produces BGR-encoded images, while the model expects RGB. - byte[] data = bgrToRgb(toBytes(scaledImage)); - - // Expand dimensions since the model expects images to have shape: [1, None, None, 3] - long[] shape = new long[] { BATCH_SIZE, scaledImage.getHeight(), scaledImage.getWidth(), CHANNELS }; - - return Tensor.create(UInt8.class, shape, ByteBuffer.wrap(data)); - } - - private static byte[] bgrToRgb(byte[] brgImage) { - byte[] rgbImage = new byte[brgImage.length]; - for (int i = 0; i < brgImage.length; i += 3) { - rgbImage[i] = brgImage[i + 2]; - rgbImage[i + 1] = brgImage[i + 1]; - rgbImage[i + 2] = brgImage[i]; - } - return rgbImage; - } - - private static byte[] toBytes(BufferedImage bufferedImage) { - return ((DataBufferByte) bufferedImage.getRaster().getDataBuffer()).getData(); - } - - public static BufferedImage createMaskImage(int[][] maskPixels, int width, int height, double transparency) { - - maskPixels = rotate(maskPixels); - - int maskWidth = maskPixels.length; - int maskHeight = maskPixels[0].length; - - int[] maskArray = new int[maskWidth * maskHeight]; - int k = 0; - for (int i = 0; i < maskHeight; i++) { - for (int j = 0; j < maskWidth; j++) { - Color c = (maskPixels[j][i] == 0) ? Color.BLACK : GraphicsUtils.getClassColor(maskPixels[j][i]); - int t = (int) (255 * (1 - transparency)); - maskArray[k++] = new Color(c.getRed(), c.getGreen(), c.getBlue(), t).getRGB(); - } - } - - // Turn the pixel array into image; - BufferedImage maskImage = new BufferedImage(maskWidth, maskHeight, BufferedImage.TYPE_INT_ARGB); - maskImage.setRGB(0, 0, maskWidth, maskHeight, maskArray, 0, maskWidth); - - // Stretch the image to fit the target box width and height! - return GraphicsUtils.toBufferedImage(maskImage.getScaledInstance(width, height, Image.SCALE_SMOOTH)); - } - - /** - * rotate clockwise in 90 degree. - * @param input The 2D matrix to be rotated - * @return The input matrix rotated clockwise in 90 degrees - */ - private static int[][] rotate(int[][] input) { - - int w = input.length; - int h = input[0].length; - - int[][] output = new int[h][w]; - for (int y = 0; y < h; y++) { - for (int x = w - 1; x >= 0; x--) { - output[y][x] = input[x][y]; - } - } - return output; - } - - public static int[][] toIntArray(long[][] longArray) { - int[][] intArray = new int[longArray.length][longArray[0].length]; - for (int i = 0; i < longArray.length; i++) { - for (int j = 0; j < longArray[0].length; j++) { - intArray[i][j] = (int) longArray[i][j]; - } - } - return intArray; - } - - public String serializeToJson(int[][] pixels) { - String masksBase64 = Base64.getEncoder().encodeToString(toBytes(pixels)); - return String.format("{ \"columns\":%d, \"rows\":%d, \"masks\":\"%s\"}", pixels.length, pixels[0].length, masksBase64); - } - - public int[][] deserializeToMasks(String json) throws IOException { - Map map = new ObjectMapper().readValue(json, Map.class); - int cols = (int) map.get("columns"); - int rows = (int) map.get("rows"); - String masksBase64 = (String) map.get("masks"); - byte[] masks = Base64.getDecoder().decode(masksBase64); - return toInts(masks, cols, rows); - } - - private byte[] toBytes(int[][] pixels) { - byte[] b = new byte[pixels.length * pixels[0].length * 4]; - int bi = 0; - for (int i = 0; i < pixels.length; i++) { - for (int j = 0; j < pixels[0].length; j++) { - b[bi + 0] = (byte) (i >> 24); - b[bi + 1] = (byte) (i >> 16); - b[bi + 2] = (byte) (i >> 8); - b[bi + 3] = (byte) (i /*>> 0*/); - bi = bi + 4; - } - } - return b; - } - - private int[][] toInts(byte[] b, int ic, int jc) { - int[][] intResult = new int[ic][jc]; - int bi = 0; - for (int i = 0; i < ic; i++) { - for (int j = 0; j < jc; j++) { - intResult[i][j] = (b[bi] << 24) + - (b[bi + 1] << 16) + - (b[bi + 2] << 8) + - b[bi + 3]; - bi = bi + 4; - } - } - return intResult; - } - - public static void main(String[] args) throws IOException { - - // PASCAL VOC 2012 - //String tensorflowModelLocation = "file:/Users/ctzolov/Downloads/deeplabv3_mnv2_pascal_train_aug/frozen_inference_graph.pb"; - //String imagePath = "classpath:/images/VikiMaxiAdi.jpg"; - - // CITYSCAPE - //String tensorflowModelLocation = "file:/Users/ctzolov/Downloads/deeplabv3_mnv2_cityscapes_train/frozen_inference_graph.pb"; - //String imagePath = "classpath:/images/amsterdam-cityscape1.jpg"; - //String imagePath = "classpath:/images/amsterdam-channel.jpg"; - //String imagePath = "classpath:/images/landsmeer.png"; - - // ADE20K - String tensorflowModelLocation = "file:/Users/ctzolov/Downloads/deeplabv3_xception_ade20k_train/frozen_inference_graph.pb"; - String imagePath = "classpath:/images/interior.jpg"; - - BufferedImage inputImage = ImageIO.read(new DefaultResourceLoader().getResource(imagePath).getInputStream()); - - TensorFlowService tf = new TensorFlowService(new DefaultResourceLoader().getResource(tensorflowModelLocation), Arrays.asList(OUTPUT_TENSOR_NAME)); - - SemanticSegmentationUtils segmentationService = new SemanticSegmentationUtils(); - - BufferedImage scaledImage = segmentationService.scaledImage(inputImage); - - Tensor inTensor = segmentationService.createInputTensor(scaledImage); - - Map> output = tf.apply(Collections.singletonMap(INPUT_TENSOR_NAME, inTensor)); - - Tensor maskPixelsTensor = output.get(OUTPUT_TENSOR_NAME); - - int height = (int) maskPixelsTensor.shape()[1]; - int width = (int) maskPixelsTensor.shape()[2]; - long[][] maskPixels = maskPixelsTensor.copyTo(new long[BATCH_SIZE][height][width])[0]; // take 0 because the batch size is 1. - - int[][] maskPixelsInt = segmentationService.toIntArray(maskPixels); - - BufferedImage maskImage = segmentationService.createMaskImage(maskPixelsInt, scaledImage.getWidth(), scaledImage.getHeight(), 0.35); - - BufferedImage blended = segmentationService.blendMask(maskImage, scaledImage); - - ImageIO.write(maskImage, "png", new File("./semantic-segmentation/target/java2Dmask.jpg")); - ImageIO.write(blended, "png", new File("./semantic-segmentation/target/java2Dblended.jpg")); - } -} diff --git a/functions/function/semantic-segmentation-function/src/main/resources/colormap/ade20k_colormap.json b/functions/function/semantic-segmentation-function/src/main/resources/colormap/ade20k_colormap.json deleted file mode 100644 index 51648f4e..00000000 --- a/functions/function/semantic-segmentation-function/src/main/resources/colormap/ade20k_colormap.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "name" : "ade20k", - "info" : "ADE20K (http://groups.csail.mit.edu/vision/datasets/ADE20K/)", - "colormap" :[ - [ 0, 0, 0 ], - [ 120, 120, 120 ], - [ 180, 120, 120 ], - [ 6, 230, 230 ], - [ 80, 50, 50 ], - [ 4, 200, 3 ], - [ 120, 120, 80 ], - [ 140, 140, 140 ], - [ 204, 5, 255 ], - [ 230, 230, 230 ], - [ 4, 250, 7 ], - [ 224, 5, 255 ], - [ 235, 255, 7 ], - [ 150, 5, 61 ], - [ 120, 120, 70 ], - [ 8, 255, 51 ], - [ 255, 6, 82 ], - [ 143, 255, 140 ], - [ 204, 255, 4 ], - [ 255, 51, 7 ], - [ 204, 70, 3 ], - [ 0, 102, 200 ], - [ 61, 230, 250 ], - [ 255, 6, 51 ], - [ 11, 102, 255 ], - [ 255, 7, 71 ], - [ 255, 9, 224 ], - [ 9, 7, 230 ], - [ 220, 220, 220 ], - [ 255, 9, 92 ], - [ 112, 9, 255 ], - [ 8, 255, 214 ], - [ 7, 255, 224 ], - [ 255, 184, 6 ], - [ 10, 255, 71 ], - [ 255, 41, 10 ], - [ 7, 255, 255 ], - [ 224, 255, 8 ], - [ 102, 8, 255 ], - [ 255, 61, 6 ], - [ 255, 194, 7 ], - [ 255, 122, 8 ], - [ 0, 255, 20 ], - [ 255, 8, 41 ], - [ 255, 5, 153 ], - [ 6, 51, 255 ], - [ 235, 12, 255 ], - [ 160, 150, 20 ], - [ 0, 163, 255 ], - [ 140, 140, 140 ], - [ 250, 10, 15 ], - [ 20, 255, 0 ], - [ 31, 255, 0 ], - [ 255, 31, 0 ], - [ 255, 224, 0 ], - [ 153, 255, 0 ], - [ 0, 0, 255 ], - [ 255, 71, 0 ], - [ 0, 235, 255 ], - [ 0, 173, 255 ], - [ 31, 0, 255 ], - [ 11, 200, 200 ], - [ 255, 82, 0 ], - [ 0, 255, 245 ], - [ 0, 61, 255 ], - [ 0, 255, 112 ], - [ 0, 255, 133 ], - [ 255, 0, 0 ], - [ 255, 163, 0 ], - [ 255, 102, 0 ], - [ 194, 255, 0 ], - [ 0, 143, 255 ], - [ 51, 255, 0 ], - [ 0, 82, 255 ], - [ 0, 255, 41 ], - [ 0, 255, 173 ], - [ 10, 0, 255 ], - [ 173, 255, 0 ], - [ 0, 255, 153 ], - [ 255, 92, 0 ], - [ 255, 0, 255 ], - [ 255, 0, 245 ], - [ 255, 0, 102 ], - [ 255, 173, 0 ], - [ 255, 0, 20 ], - [ 255, 184, 184 ], - [ 0, 31, 255 ], - [ 0, 255, 61 ], - [ 0, 71, 255 ], - [ 255, 0, 204 ], - [ 0, 255, 194 ], - [ 0, 255, 82 ], - [ 0, 10, 255 ], - [ 0, 112, 255 ], - [ 51, 0, 255 ], - [ 0, 194, 255 ], - [ 0, 122, 255 ], - [ 0, 255, 163 ], - [ 255, 153, 0 ], - [ 0, 255, 10 ], - [ 255, 112, 0 ], - [ 143, 255, 0 ], - [ 82, 0, 255 ], - [ 163, 255, 0 ], - [ 255, 235, 0 ], - [ 8, 184, 170 ], - [ 133, 0, 255 ], - [ 0, 255, 92 ], - [ 184, 0, 255 ], - [ 255, 0, 31 ], - [ 0, 184, 255 ], - [ 0, 214, 255 ], - [ 255, 0, 112 ], - [ 92, 255, 0 ], - [ 0, 224, 255 ], - [ 112, 224, 255 ], - [ 70, 184, 160 ], - [ 163, 0, 255 ], - [ 153, 0, 255 ], - [ 71, 255, 0 ], - [ 255, 0, 163 ], - [ 255, 204, 0 ], - [ 255, 0, 143 ], - [ 0, 255, 235 ], - [ 133, 255, 0 ], - [ 255, 0, 235 ], - [ 245, 0, 255 ], - [ 255, 0, 122 ], - [ 255, 245, 0 ], - [ 10, 190, 212 ], - [ 214, 255, 0 ], - [ 0, 204, 255 ], - [ 20, 0, 255 ], - [ 255, 255, 0 ], - [ 0, 153, 255 ], - [ 0, 41, 255 ], - [ 0, 255, 204 ], - [ 41, 0, 255 ], - [ 41, 255, 0 ], - [ 173, 0, 255 ], - [ 0, 245, 255 ], - [ 71, 0, 255 ], - [ 122, 0, 255 ], - [ 0, 255, 184 ], - [ 0, 92, 255 ], - [ 184, 255, 0 ], - [ 0, 133, 255 ], - [ 255, 214, 0 ], - [ 25, 194, 194 ], - [ 102, 255, 0 ], - [ 92, 0, 255 ]] -} diff --git a/functions/function/semantic-segmentation-function/src/main/resources/colormap/black_white_colormap.json b/functions/function/semantic-segmentation-function/src/main/resources/colormap/black_white_colormap.json deleted file mode 100644 index ca1c33ea..00000000 --- a/functions/function/semantic-segmentation-function/src/main/resources/colormap/black_white_colormap.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name" : "black_white", - "info" : "Black and white color map", - "colormap" :[ - [ 0, 0, 0 ], - [ 127, 127, 127 ], - [ 255, 255, 255 ]] -} diff --git a/functions/function/semantic-segmentation-function/src/main/resources/colormap/citymap_colormap.json b/functions/function/semantic-segmentation-function/src/main/resources/colormap/citymap_colormap.json deleted file mode 100644 index dbd1ef2c..00000000 --- a/functions/function/semantic-segmentation-function/src/main/resources/colormap/citymap_colormap.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name" : "citymap", - "info" : "Cityscapes dataset (https://www.cityscapes-dataset.com).", - "colormap" :[ - [ 128, 64, 128 ], - [ 244, 35, 232 ], - [ 70, 70, 70 ], - [ 102, 102, 156 ], - [ 190, 153, 153 ], - [ 153, 153, 153 ], - [ 250, 170, 30 ], - [ 220, 220, 0 ], - [ 107, 142, 35 ], - [ 152, 251, 152 ], - [ 70, 130, 180 ], - [ 220, 20, 60 ], - [ 255, 0, 0 ], - [ 0, 0, 142 ], - [ 0, 0, 70 ], - [ 0, 60, 100 ], - [ 0, 80, 100 ], - [ 0, 0, 230 ], - [ 119, 11, 32 ]] -} diff --git a/functions/function/semantic-segmentation-function/src/main/resources/colormap/mapillary_colormap.json b/functions/function/semantic-segmentation-function/src/main/resources/colormap/mapillary_colormap.json deleted file mode 100644 index f089268b..00000000 --- a/functions/function/semantic-segmentation-function/src/main/resources/colormap/mapillary_colormap.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name" : "mapillary", - "info" : "Mapillary Vistas (https://research.mapillary.com).", - "colormap" :[ - [ 165, 42, 42 ], - [ 0, 192, 0 ], - [ 196, 196, 196 ], - [ 190, 153, 153 ], - [ 180, 165, 180 ], - [ 102, 102, 156 ], - [ 102, 102, 156 ], - [ 128, 64, 255 ], - [ 140, 140, 200 ], - [ 170, 170, 170 ], - [ 250, 170, 160 ], - [ 96, 96, 96 ], - [ 230, 150, 140 ], - [ 128, 64, 128 ], - [ 110, 110, 110 ], - [ 244, 35, 232 ], - [ 150, 100, 100 ], - [ 70, 70, 70 ], - [ 150, 120, 90 ], - [ 220, 20, 60 ], - [ 255, 0, 0 ], - [ 255, 0, 0 ], - [ 255, 0, 0 ], - [ 200, 128, 128 ], - [ 255, 255, 255 ], - [ 64, 170, 64 ], - [ 128, 64, 64 ], - [ 70, 130, 180 ], - [ 255, 255, 255 ], - [ 152, 251, 152 ], - [ 107, 142, 35 ], - [ 0, 170, 30 ], - [ 255, 255, 128 ], - [ 250, 0, 30 ], - [ 0, 0, 0 ], - [ 220, 220, 220 ], - [ 170, 170, 170 ], - [ 222, 40, 40 ], - [ 100, 170, 30 ], - [ 40, 40, 40 ], - [ 33, 33, 33 ], - [ 170, 170, 170 ], - [ 0, 0, 142 ], - [ 170, 170, 170 ], - [ 210, 170, 100 ], - [ 153, 153, 153 ], - [ 128, 128, 128 ], - [ 0, 0, 142 ], - [ 250, 170, 30 ], - [ 192, 192, 192 ], - [ 220, 220, 0 ], - [ 180, 165, 180 ], - [ 119, 11, 32 ], - [ 0, 0, 142 ], - [ 0, 60, 100 ], - [ 0, 0, 142 ], - [ 0, 0, 90 ], - [ 0, 0, 230 ], - [ 0, 80, 100 ], - [ 128, 64, 64 ], - [ 0, 0, 110 ], - [ 0, 0, 70 ], - [ 0, 0, 192 ], - [ 32, 32, 32 ], - [ 0, 0, 0 ], - [ 0, 0, 0 ]] -} diff --git a/functions/function/semantic-segmentation-function/src/main/resources/images/ADE20K-all-small.png b/functions/function/semantic-segmentation-function/src/main/resources/images/ADE20K-all-small.png deleted file mode 100644 index bede9db42c24395e8a861712aeb1471d392da5cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188155 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 JPDHLkV1j(%jcEV? diff --git a/functions/function/semantic-segmentation-function/src/main/resources/images/VikiMaxiAdi-all.png b/functions/function/semantic-segmentation-function/src/main/resources/images/VikiMaxiAdi-all.png deleted file mode 100644 index 719814e1fa6292146b40a0dfe9f36966fc300bb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248787 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

    60K(KdQJ^c6Dm-vB@jTTP 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 diff --git a/functions/function/semantic-segmentation-function/src/main/resources/images/VikiMaxiAdi.jpg b/functions/function/semantic-segmentation-function/src/main/resources/images/VikiMaxiAdi.jpg deleted file mode 100644 index 5d901702fd68d2bfbb412b7d3ee2708dae754a73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80161 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 MsO9_LodAFT*(z)Ax&QzG diff --git a/functions/function/semantic-segmentation-function/src/main/resources/images/amsterdam-cityscape1.jpg b/functions/function/semantic-segmentation-function/src/main/resources/images/amsterdam-cityscape1.jpg deleted file mode 100644 index d77cae4064c8dc042c7930cf771bd8a3c69bbae9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104966 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 z zoO@UE2GH5QW(|Aa`7K@|ed2t;cw=VjjjPd*XsqORfF83n2Qr1)9rGzUCV;#7si^bL zKd7!l(1_m1kDp0iGDTVrP9x<^u{7+m@SVFkWOl)7< znN>d0zwG^@&yZ&JQ?q3Fe(>J+EoqEmx0DC5X7gV~!0w|J)uUFRt?n^T`LU*tz7(ii=vPb6OE{$cTeIQ>*4`!N(k)u7{{TUP8$H^Zbq77aC^`JSIF!?A~LpA&%mKQf31*DvXo z_IZZ;{@bZbx20XjSN^{fE^)~VJUC)rRX=HWt;3#9(uXEIknmdqpTbb&-weMY%4OJL9UX76j!|49=D}s8=HT=@MW5Ww~VsdIi048NGZYu)3;_$d&Qw7bzPTHmzx51DtEtK`QzFz*KOZ`yjb zGuf{){O7b@*1Wl!!91DwaDPIdDrzCE`u$IQPkXuY4@ z@Z0N&U9stzUhkYh?!BeixU3;;I4)&O}dm8%$)_M-$Q<)KSQ5Q z#Up6KMN+%L%)k8i8VYZqtm%Ckeu(s1E-TQgqi(k>JpeqyHt6)6%a23o2)ftNbZ@5- zii4(6;R^o%@*PZwvEpz`%q`4gIKVJ|tA*Z$T?DR&&q;1?9dz5JeIHJnMEVe7UslrU zGsGb^2SKS<9*~-Jq^JH1=~XsNAXaCXID*v1S3yDyzN$AiKwZq`LI}ML%a_o&&AKnq zwduD|ZJWWz*PV9>T{LuJHbr@q)EqxvvBueXT@SPtV2yqvT(Uaz2nfqgWnzut()uhQ zf|VF=uKgLb*P~9GN3H0(hebVU&}l8)Qtng$LE2z>#bl>%wknDp9QX5B5Oy*G^8pqggcT}bq}RJ{0$FT^hziy=&DEP*kV3Vxvm zddI3msXHL%Aj|0O%f>a(xt^C6qizA!Vg-?Yjpg)ZSdY@ShT}KrqG9?3s8SIk=t_Yw z>u3J}70OXB(NJ900WL>f3de+blt^_hZd744zKqV59)ubCXomV8jpp4q=obm8T^0{Q zHacl>xoC7AsbBn7k6j=hq0zh|j*Z3XQ(Z0ubI_Lvy#}$Hx-d^shh9i?({8t;^eTr? z=w%L<&q))YE&6OzpgI^*pjQJzMIqF4(!fGlmrMFx<~j#ZK_8;Z=p!Z_ z7M&=V$E~_0RN86MiRlm0YE*8agvvE8RrE1Y=u-kw0#pb}=;mXLNLLc###CigtA@~H zrm&R@ESNI-2ptZ$s!EJpdLA(8S3=U$P+^453}2$10y5zVQEEL1#0Uhj=?qX{CCOJR zaVU#$CG}Jei>`(Yb?qJW0L9F>Jr-Tcsi#ZN*L@gT3h12!2q_+k59y|olEvv#<@#<^ z$^kAZ7N$%k#GBk@bjk#c48WR%Vnd}u7lt}t z>0eSn`VoT`q7!?I(SCvsl?W#t8XrO$gfNF)rqFsY>bPUBhgND_sDfqCHx#*UmEs>l zp-z+ZmDIAj2VIQJRCCh0=j$A{7R2hf!c=-~(NXAh*XSB268b$Dbc;6#32>~+B&Fz1 zge6ObV~imB_tLs*S4;Gk2hx)I5l|r$5Fyh3k?P;CPo;WvgnC@Qk46zom2vtKX>yU2 zWwAQNIExeY+#&S1N3NyxRJc7xUrUS`a^>}|gnB#b*QWh!(reXUNf

    4z<*gCJYCl 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

    CW4FKe?v>xY?)R8aS)?hE5IBwTO^Q@$l5}w?A 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 z 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 diff --git a/functions/function/semantic-segmentation-function/src/main/resources/images/giant_panda_in_beijing_zoo_1.jpg b/functions/function/semantic-segmentation-function/src/main/resources/images/giant_panda_in_beijing_zoo_1.jpg deleted file mode 100644 index e7a44cae2c2b091095ba6b5f7ce659cce55651ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116068 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≫lF z5EnTa&Q)>Lnzqtcp7X(uY(_@rcHk%-{{XEs@D-sq`hd7GNb$6gpaL`ba)W_cjYDhS z$mlQ_5mNYj_=Gmb*<~=KpOBOP0BrkJ)+%Q`Xl4DGw7e2{z=n%- zgFF`X{`53gx@bFZ8FnBahN^!t^vCu!%Oz~+Qlu@s)onF9ss8}z*52k5wN_QfL5$Zl zc`Wq%3FUVXT$ACcV~-4fxO$VC6b{Mj6vuaSo2kc#B1ez=smNYABz4Am`%rqj&m$Xg zcjLp8!2G9~^epp&M}s_1a6QR3npv@D|nMaD{>eCDmTNk)vTbf(@$f|Bp~PJ0vA2Nb=V!ieKN<*A1HOIaNe zf&+0TKxHSVr!>ObS-F-$^H@if&iL6u1C9=R3RtXTSv^`AC%ufq+nrCDl!fEdimO*h z*`SzA6~;>|F6;m~A5)q{+*54K#$Q|AER8kPyOSqlV>lj_q#)0twD&$c811)gQ;!p{ zA6#OLWTm2mX;y*@Nv}Rlmtr%dF1yJX_oCp_?{D;rdxe}e!2$dROm*Z89=)oP-5CH| z>QhN~1TIWB5h)D82H+17BtwddhG!Wcb?^nz3 z+E=IEm+C0&$vkXM)8!uHALLT8S@yeIzaLMxxF7y#RFAj^6coBmwe6Ma+uOwj&CE?3 zvZw^H^~b$)wPK$<(X{CGT~_AW;hNg*Rhdfis>}I-AL5C%eLh`2;@?rYGD&MIEG(Oe zRr?N^^{K@>G;m$=ehjMC(+jxQ3`(vUN4oX<&_;O;$zK$z$me+kaqRu|2uEOS6s zWXXtRFxcOwZieSt{gvQH`jt4aNPLL|lC(J`Ms*y&RZtvVxmUppQx%rD&w=4W`s=D>N<+)vT3t45=Lf`Ws#znAb^2-d-6SaroRyBa$o3Haob!or-}-A z!vasufKO)RishCwp=cJHqPCr+ODw7X08!!y+?US5#~A+r9<`L!?h@|chQ?X4Sr>y; z<95k%E~G4!MFim-IBb4p_x}Ji(&jsc(*)6N#&$?R{Kx(pX$ck?{{T-iSi3Ps3Q}N$ zu;_E@bBcsZvOA+@+X;*!yN$$UfXDTzJ1H8lxb2)IAS<2thFMgVVBKzvPP~TV6Ct~g8Qd3cPI^#n2nTez+{=;MH1LfYa_mH7c3W#>p(iv?mE$~n zOE+j|5&{4t2Y00u?E$J}FM+q81Y|duWbwDIXp2Z< zdnab%V}hthQCd!rQqYN!bNfd`7+uiF$%!0mLhn-Je|23rqWiG3=G0j#p-kH#=9@)D%XO zEtgk{*HemnUlQS?<;=&1C%rq;b(l4c68UZS z?DT8d%xnbTh2hKQ$FDu>KJhxlRuGe}50x7XtM{oS`&$+14KCW=2}IX0w1H6VMsF^C zPpvs!LU}AFMt66C0gX&SSD)n-X3P^|I-NK8g`|K>YD>>-`Q46(70p9fGhG(93N79- zwUl{*BdYX)bN%Ee++S*8^)z3FLFfVbq$O zpz7jjO{YZewRuge!#%~csUouo<4+TNXVayGX-L2KU_Hi=@ zVmN6&zTVZ-27v4VkIK3fKpB((+Xg=TPz_-B*8yWf%-JNGqGB+JH0gB&RD#sATPX(} zPdOz1^u1eb&4u$XTv1ZCB%TE6%o|mKToNRHRClX&V-nfN^1*@`8OD9~{{V1kN&Zv? z;q<)%LqEcrV`T9Xu1EgUkL^sY-);1WMhlJVdSrCPMfxF&__o1xJ!)-I7ZJ7D2&%XM z5-`M%ddS;2S%~4c#$)vv?faV1TVq7@5^|3)J}Q1zLyfqm+Ds5V#Mk#yp)le>8=hr< zxX% z^`h@>Qs+ldQ)I0{4K_3dR-LoB2x;PBWa0_N^V1x0g{#V|5yQoTNz$wl=GSoa5=# z)FjbpgM2{^_LrqcYX^fhs!8KW%1cNNPwmpOy4|EOTuXCp9A*o=8-9GljK3boiX3j3 zCM~vkb~lxSDajvfQ~OCSzlOTR42cm|IT-6#kszrp=S?*(WQ4MZ^8`67nuUeUyb?XT zTFCBH;QIP~>OT#snq5Y9)wG9>#@lR?4Xo!QJ4QLj(y}IR1vVp+#BFj@7(So*p%++M zUKHLtK`@dhEh2z;IW<*-e5{YLuw@4f2O+x*nyNWu6t{^MzP=_MCWmaMLAde+L{!59@-|}jM%}zEE2LO^t^`Tga zU~Qy_^`H>_JjrVjoHir_0Qw)&toflO;AtBqDyal^9CxL9@N`{rP(>H!V64i!o1&gY z5oY;g;R*l32iUq!JVJC)e7vybM62yOR7wi0W~a=iK|!``DTblN&H%y}`(%4?!R) zTXsDt-8gNyhn}t~#J-hY4YzY9bB8>Stph$boPP9IhJJyc>rNp9!5)~!2F#1?h9n?% z6w=ghaJl5Kdgqs?M0_4-7>iQNW1w6Qy?VLj>3H}cg&Oj9^C~DiOSeq(kF8sEG+Is2 z$&PKO00+-LwbbQqj%2A=9mc*IVKv(cSR8m@_N%1Vto0ok?c{(#JZuaGK5)IkKJ*_O z_#~za3Y9!?4tvuZTQwGn!2TnGS2QPxmFQ{JXG=pK$QZ`qFzPbgbmrIFlErp`mmpbsM=0yEEF-nU!~OFkmhE_EB<1~d3Ds_l&MxxnPr{{Rf% zJ(j2+P_~*|b_^L2zb_mbPa5FnLdiV0XdNX$t> zxj(OJRys`{_`6cKpG|_!2$$wwMdT(jxa<1!SP3{1|L+{wq_>o!}X1C7B51qsI zJt^SZ!gEwce~22{Ry{I51c=CabC#1m{Rdi7k}R?10Nzg|3}&wsbGCCy-EFHwaWL}2 z=0d+gRZn()US(oDuB?mgPbjOiDSSSQ@Fn<@;Yd~3jh9asPhU6ptxRMF^I#QjE1q70 z%qRMs(6!~ijOWV@T9;{R!(=@>~S;|I% zkfv}K1B$Z2(z2V0&B@&UQ;vfJ?^TI|N3~RWj&qJ^Fr-qJ%+61STb$t0R?{r9lrl#V zQJ*~kg_t}@$J{bk|BT{Tk^N-$LU$EJw8`R zm-vmmj{qg&DmLxx#2>#;YIwAfr54_S>N*w8rHkD}(p*Bv5ze{8k8$b`dhVBRCFF9e zhJtV9&q7CIPu|dyg)yd&cEKgn=YI{Z8B{Y5$^qvdwQ|9m+k{CJi)SB*KbRAON9&VG zbQ-XkC7(%x0X@`Ym;65ra6!ogj`d8hZ*k%TvfC>S+k>18o_IBrPf*nBMc1}duxW^a zRv-ay%EWy;(#w}<8CDXq0^5~=?s%$2obyy!djm4W>Vt4lrIhs`(K16Mx_FGC{M(K@ zQ3MHE#1_s(-mz^V)PK12{`5t>5Z&Cbi2eZBcSzjjsNEGrZETh1ZLPouZg}V@drOqu zGNDG}kwqFrgN(312qgBRk+wv5Oyf8wr7<#>okM_!chaFG<7ZPuAk51ogciZZY6e}4 z=FhbTWJe-TIqlHUk}k>D%Y_`A^*>5bj$yxN(F_YH@EP(Efc?EGe8r+$xZOI5|J1 z8^AD&s3Wv6crwW$a9Oy<2S7i)F7YQ!v=ch18yv55??o8oFtKf@<8}!OGo01e(6`D! z>lun{9q8T1sG^NRgCicibn9B*gKc7xJKaX)4+73J+jdy+zr9jegpRX0a_8pd&I4~C z?XWdXd`I~43NCmQb}6`v6Uv9Gs+O7AtTF_Jn|`(&9Q>vpp6)3g;IH`K2+J4 zv|iRPV>n4&3$$wFFFSMC`_UHeQS~e!0P7QjaFG`_3 zq!HUe^FlKkw?|+xjC=Q_capNRI-VHhan38LEjgs}h0i<5kaL5@UlJ(C=4L%`II4Jv zGf`!yB*+AF#~FojD=TG$tBC@XvaI4;<*FK6Ovvx zZ{<+^=+*>nd#WVMX}T7T{5-Mh4h}!HcH>-D-4X%1L5@07DA_^=C0#!1MtNg(KoLOQ zxc>lQ??RQ9=Fw$%*t@pOhVPI5sNcZV4eX}1k6ya@sHJdOQ85>Yxflm^Q>|RhYjHAL z*{o5#q;D#61_l7lMfx?;vi%{D#3a9DQcvNcb^Fjd)a!Mot3wEB18&}1zosc*oSBsH zD^OQ?{CSyw78vsA0AO+0^&I+Fv>4(Vkhn9XuWW}g-EtUuuc;XCSE>!zt68_ak{fVI za7OmP!7Rr=(*x~6L?pLt%BLXlxk%=#9|V)rQ>5KRsn|SDNRf)GK0hLi6(m8AwkrW&nCKJu!AqN=4WE0gP_}sHSR@ckn9fl2C%D1qH4lij z2l-giSfY|RF*JrH7?L*_IrZu)aeGBxnX6mIu%E(4noCIAA{H0{NY6^q4Hg@lQ+HuE zn1i)gbjtDiAMH;i^qgPD1+EKgPlPSj<~^5Flx7IsN3XHxr4whQLphB?xG4r&WPGU3 zcI0~TidLUfWzogdzJA<9>);p%gt<&IdUfrJ7F(!dnVwmO()lbw_3J_^f!If_+?nTf zhXNvTjAwVgdwS3?BP^j@VD$u7Qt;)Mq09JkTdR@)$vOVDIpuiBD8$5nF$cG5G-$Bv zbbI|K@?;_=wvAkK!R&vfELj+C-doGm`qHmTzYF5H#DQIaSM{okESE+#7{?g{tx!_g z+*`I75C>81Rmpc7h6pj+J?j7%JFMD=QRGOEAXK^rCOAA%{)0ypeav>SB=_%e8>(_ZXnqYY9nYWwN!J-qDsh zqb>$>$okSrM9BP%ws1hAngc;rek7Lx0%YKwsyR3u{?z*3DIVH5pe)wTp~(xJV}f!2 z06NsU7-CH>Eni53Pfx>UVzLxCQn}+f?mHRw7 zjgH(_gW6zzShhr27#Cdnnr-mTuO@}5#?ay7nYK?9gUZNp`_-kWoN?G@t?=E7{7M=o zXVb3%k|$TePf?S>$L~)xjRMC<`DyI04aAQjDLU|-2bIC;-nlts`cOF?vKqu~b$Wap zMuE%iINR3>1{-3OfoCcq^z!(fq zOjKN#pg@<9-5Vxo)HDd#U>7Aw?t9{v#c>LiXSRw`dL8UPp{9hCkj+ycK{cGVs*_vn zlp*l{01%LQJYtuwkoVToO$;p?M)_jjln(SRnCuO1{#9i%%G=1>v(ygXO19SX$5f4! z!h{zK~A7yA)6V?=mjy1PkjWVmG|QR9;h9y{Z>?M!aMQ;eT|V1VctxR&RzEwVF;~DmkJF#EM^leS)Bak@5M+Nhi6S>&f48*=CWgcz zypW@#-7ENJB8h{HfZ6`^PLrrut-x)pk_0=MlsHfaUrwIgtD!4Gw@e#U_>~_1389)s zbIAh$XFLzmtzU@6^B84>%PDR+1n0j`YNv=6m}a-D!)0k_YYavU!kH|KfHTPbu~g`n z*9{}Q?(B{VoyQ;_QAzN7pm33_ttHeFPa}}1tk@Xt^(kUoMVBd28?7D9cufVRY+r!HE_}~ z!ET0-uoNin>L1E8&VOobVt5))4o#R%uEUVo=M>BUMMCNFz^|R`3BmQCK3%+hq%kG2 zgH07eOG2Wxn%_4Ok%c8rdE>omtZr?eO|`d41H6(fje!8xKqn)NStCS+1bC513GoE03)&x|-%| zMv3KL4nHm(dBtd@WTx5zRT98Ak}MqnBLsgZ8B+LdH z>&-Z&*LR}sQu0KgkO3cR3FZ*VmOM8>SPUymxP|p-O~NdYGi`mxZZqFMS}u4RDW{7G zgmbaO1Cc{)DyXRxlq;T3JW!AUB<>xtfyU|v3YA*Q*52iE9pr7KXP^uH&1qP*@52_? zfn)`4m0!dFjF3iuVM`*2^fM-<4~J&#?o65Lfk~;GGLxa^dq%Plo#;M__&;-N56NG zIpiGCdYm$8Ht!VbV>@;X4E53Jb{_xU9hqo6*%W3&;$EWn$6sk>LzLA5=!d3n;6ajp%l9r;-WUoz87%0SVO4T{iyK$}N(oj-3!q=Q-+1_n&6Jar8*`izdk@;Kg7W=!1c&A1dnAxFpbX@9&$cOFqe%hk`fJ;3 zt#BeYJ|l00M7xz#la1c^p;F3AtxC>YwKi~go7}RTDdgaeyoz@4lUiyu1~K^W5RD?Z zViCp$@#{q=-S2k^_ zYC)iAzF;qvNx;W%YFNA|&g!}*sXm7Uvv_DNS);~$%uOVXe}*CPX5BQ&=1`f+`~B+h zkgZ;n+v$<&JIr?w!zwP}8=bqpnc|;lnlaOnuP)FlNIZpP9#A@;xj3erjT99h!Z+H? z?=;gQWwO32oaVa!00`V^ml0h#46%@8+T^1jL&jkFyp}7G^91q?ZG}^w zg1vin4a13S<0=~r^2wrHtm$|57eJZoA!rm4X4Api`~oNNUP)!CR(+ArALauD5J%RS z+}O(k1@Xh}^Df?W4cyq7h~?ejyA;QUzdy zNjoYiB}rmI1as1anb9p@#6!6LRu}+%YY*@iKvN#$wRs6EgX#LwFk;=LFn}SA-M^Wa zJXKS;nF|P2Ksm@2f&lF7a2R^wg)q9giIUz(krB)}kSXAt<29QCJq*pi%v;PjAW?%v zxxaXl}HK^-D`#R_<1_jP8bVv7OQ|BD zA-nx3PF+wTn0raE(>0r0y)NE1gH^XfEI^<8*ysFl@AatsA#xV*QHMCCXLom;Xr-DiJthMydad(%-M-<#@^hrwa zHrYv3@5V9yDlf(~^TU02c?h|cuKY+;#wBEc@D+!bgWI6{RzB|geT)k#cydal z?oVPyD~bx3c$#Rc8>Tu;R_)A5AvisFWZVpk8V}p`GrdRjc z)r1eIS{8=ZSwtr)4!}A9PpI!nCZftHc0~fhD6Kwj?rC#5%xvKK`+@cSskBJio%}LH z&VmTf=tr1-l&#*Bj6MKrx(YgEXSSq`s2s-R|0HVw3Xhjq%gIJu!;x6Eu2cH#5&Hj%1J`?#}Fi$3Fpn^!6Sk8rL&|GTck5a@}lGwR>wZSS}|0KzeBC(jdaNE;$YIk zxZcCe6#oD%QqU79DykSJ8Nufxnnbjs9%>TYMezRs&)Xf|0|4OT%nk=i$KT#*_tq}6 zOl|J~!k-Kje?h>=tsMu2T27woMcw3UC7Er2r*`1u_pK+x23>DndwoVF@ZtrnRfm%U zK2m?@N@@7ayfw?MM-1<7ma)q$OjN5lRT%1WX(prbn|~Eptz(4|NZzZ+B!0%YW5;hy z*_+kXZe%h;3&!#}B=yhObfs4kn1p*Ah6|0j!St^~jx>q34rC32>JEF=(W<^S_UDSI z1IEDXwB$E>B47k1f^s>+_4`sbGC)Z)GrYJvfE>44AYadQGnZiQPVyBqk8_G2=txWT>)WSlNhXTIn1aUc`R?%}i4_j!N5IZH^yameCM)Pqq(z-&e60(IRhJq zyn(bcB@ni2i-Jz#xioZp5y-fVmdoq>>doMn*#Cu0L85 zJ1J6Ec8%8#e=x`OH1VWCmz_OB_=F9|w@`lcB(bXbvY?m10eGsWDLW@o9I@nKA15?J zGVX1ppZ+F^fSyM)d4!qIO{CSc*j!IKFUy|{072{5n$}e&%Ued&7=azDoN>~aS$sWr z11#4upa`wy`td=^f}{I7{{RPF2oa%@JORme#ST6nx{X3G6BEwZ*q`l7+-{)K=#fQj z;>?nwmOf@UT>4Q-9-jrWwd7MJj46FI(U)+N-L_5;Be2|~JqbOil#Uy1Ox%V^;*lkR%x#>F zxGne1P2kp9rrFx)i@Q-^&@^5oW+lon;9!qzkG)f8tVya*EwscKrUod<17f)Rm>s=7 z^)%d>qv?|VD|4oNRr9vP!kQTXC_7_@9R2C<#W%M166w?0#?Z?nwaWrA!DEbi_Y~5P z=$qEc_3Nh8W@%-Q!j)B7;~eq;=Rc(gZlP!$;>jh?1$f0#csj%kt-qDpFnK)FJr?uj zH5FeGQKkh3Msi5U+pQ#+s8@A$By2|fGO+|_^`sK>IUsdCs@z@^kWA7txC@*BGgH&; zp7QQ1bs)Tq6CU~h0Pe2ZGFCqL>T{@T5!zY;ZFJ~_5vXkQ-2VX2O3Z1~8+-Vha6!B& zEVkbqbPND4mi^( zjlT_X+|wIG1MwJetPTk3X=HT7+~~7Q5k!_S%6U@D%5pk;b6%*j$jDyVeBG6%(ojMf zGueiBe|ir|(Hl_J#8ESm7%c91L<6}s(4~hOi)?dg9gG)#43SGFSPeKYqssb1Mf1@Jdc_+|*%lG55w9pzvP1Dtmw^r?Jazy5`@-)if5(V-G39#|){V3}dP+V>fnLVV$y2~ez8-^L(>GZ0t?PHaI zGb~`fRhV?gU+wzU5~L+t9cvnWyi;09YaS3mn zc7CR)ak6$$tid~)UX&s)hSFId5;oLj=OFa@)zWB|FsG4RoN<<_Cql7p&W;%iqX46z z&ol{Fv?byUSPq17ifb|tv0s@3fsxaicVliEO|qjp5Jm=bNjF2GI=s@{Vnq@K7+tH5 zJ?qk38#ty|;~pb`yV0;f=PU1?D}I7eWdqyA9P>o$32!kfcK)KY{{RSlHEFNv5~bR_ zP?4Bf1~c@}Tx3v`s3}=)sqhu{kvqi`iPwi9f;jFu;;69F4#l^MbVD-#0NmPk0y)Mz zoDQ`Y$!K*I9Syy?v4$VOTWhJLP;MPT!w@@qXWFx}Ype6n+#NbNk}e%%%J_rd)})(W zv1cvAM{j#;eFunQWVe+`Xh99Mj-7a*5;GKQaUR=s2ZGCvPe3ZF=(Kzchfgy`L+ybN z4RIrlx%T3Kc9PoN#1}G{gR1f{%t+7I6jN=PqN|pM3;QVT%TA1QF=3Vm9N_vOy zY0)*3b+{_-SeY=&PgOitg=}G4V3R_uu>h(VV?5_MrIz?NAG%j7Lp6%qzmWr#0P~J$ zZBEiXIij|dmx#x?9h8owikR|P2wHEIirN4foP|)FoKfp+EumFeU&h_$R~W$cp*L8F zy#>6roaxBQlKAZ)JCyKO{MQ|AZXtKoV|QRUk~aZ>#{ko&GL9V6E>W~dmUzDm5;uZ* z9f_s7z2XQ0B7i(Wf=&feELMp432!kBKuOaDvyq;onw7GMu9q#5w=By}Ee@@3tRga- zg_X>R5aW(N%~kXER?;A~ymFhrB#1n}y(Zbvogvk|+{QIzl}TN(n+*-zK1FVQN<%B_u)Yu25GIYLY0JBXqsh}v!wTOOE3X*Y@x7y0VgJp zgW-3)g#=E~BOVs!FsyxWbI;PJDL+k#U{<^F4Yrt{FQ<5{>x*M=E1wJuV><`t>HE@q z8<1pshLSkU4vpZb+rOT|f=-0JJ*!__-$x{fjS@tq8)@JYLHkmD7GIN@%#9%^*+o)M zoOG&1el%v^g zAm|l}bK8(AGE586UBqZ-ef!b390sMy8J6u)a7khPYpajKZ_t})JZq4wz#JaEIOeum zGwAYM$*M;O}oOducj7DwppG`o$SS!`kLf-`ywjv$0$5` zlau!!Z`P^sPr5wUG<`nG{?gHAjw_h$m84AM7Ci0GX2GDfHE3gSPl%_GyO$*T;=NOp zUExTvoxYIw){Q&>2zHrpTLcVwhuiv9D{l?HoLWh?i^T>&zsi8|&$%>P+9wrcAzK@H z%$G7c`Fy9}wG(r2kwX-AsNXV@tgA1e9R(^>njNjsX$Qk~YjUiOZuatm!3=~IOpe{_w|aa_1Iak?9yJK9obKa_PDyoE7vPTa z8+$7sGt3>hV~j`i2iB;VDp|uEPa-H%cVjuK!(y2xM<{HD29;Trn&EBk0D+M0CmbKvs|l%mCpglvtU5ic zN+Yz>S8fw*-e??Ot*rp5O&S;Z^(EYZUuFB)=4_UlkdOo}88 zj0_M#&M3uTAEmI~KGM6hf!2;iHvy#~ipRGs2=}6Dv)5$;kO1r3(yNC=@m2RT79bT~ zaC6XS){;`BHymy0#nalt>0^62?L!=XDe6zyaZF!Tw}Wb1gO!Zu%sQUDk9^WaxveQQ zlfe^&bBN?v&N;^<)lt~ZH<>M_l0DmeMM6eTrykW_$}2>xH9rd%u-_%*VCm|ac^Wd{ zH%+|sH7jjt@AbwuHxC;qA|*l>!%uV2)E>&wWT|M=UHGcwjg@7xu>^60kf3+^QI_KFCPlc7$!5y$;0m%yA>!D^ZAS7l6}*gHa6<3%1qaj8 zg1C}$Ri0hA=W2=+idafn!+8u#D3TXB9wtc#?dm}f7QOsLL5{{YQZd8A*s5frx;5yo2FK+|#_Si=#Hqa7-Zb>+CS zmgG+~s~f2#x8(fM#UsS(4WopqS^?rqK)q0hs6(#%hCAgMHyL6I%`6nF=cNG+grl#(4#Mu zuccuAC7KCuHe1H=Y$Uod$Wxwzsm8>ed-7E_-Z;c7rxMyiUUs^^0 ztqW6|<{E38nHn(b5K_mhXPkY%dfH8mIvc4JmXNmHk5@jrFYi zrIHe%q#*JM&M-YXb3?t0-P?^hlqZQJIc>yc!6R`UI%A4SNwzg443S}(p}bpJHz_Wx0vz>P_LZd@y<|ft;Xn_W&pF8$1K+JZ&??HcC{}x!3MoVx z+aFzX|Kapw(qJ7i_8m4Kl+IVMp!Q)e&hlA)fm4)md^WF)TGpAj6)R8(ubA2 zHNhu=p1*2obMoHX+U zS4WtDn@NZ&gqSeMQbtBP@qtU)*(l*VuZFB_EUvFFUE6n-1!mf0^x~0QUfjgeptnNO zrozR)AoizHWaQP4Gzd~VReR?t3vO84wn$(<^F>E2@ZHaB@|Q(kS$a6F8Cca|bKJ-Q zXys_obWC(3p``Lo(8|)yA_0)hyH5A})jFmv2Hku^ZL7l3ww|J1aU^esA8Mg4*4h&! zvX=~)C0Bv<_oSB{;6(bSw+!lz``R_i?L7(Xaa1+){@ie`B=rW_+D@cEW;f$=|SSAJXV3)T|5^pG;$N;xbmo~`=2`tUJNj8#I zo1pZ^Am+5O;1cX9zS3vYu1pUxE`top+!O7^B$^4;h-pb3#sD=)$ud%n4s?5aO;bmf z#M?aA&}L}aSwRc$oOkRqL)*$CLN=Cc^k8WdcF?7`->cN&)f=ECFFNHhl-H+F|!ZDQ^4bzzZ_{APT0M7B#u1Z zQ-FPGrIx*OV`|p$<7vwhdWtiOlAtF+x=+M55p)!N_LyG+m9~!nZR{ z?v{#O8*_F`XWjoUX z`i1S<#OTi^NFH94trUp+P5%H-Z?Dnb`|#IykPfD`Hoxipyiq7%3n<2DRg9esQ{c-L zQMxr^1~O{H@OGX+9tsR}!qDm-%p80RVaYKo9OpY|Tfg+~##l}J{OFs5aNutC^YKh68RtUrLPK9Xw##?0_U~ z8QU@g8!Sg3m%rRrCslwZq(rMCh8a0LntnWJSK(j-1_5D-RsQrV&+;Dek2inW-!IGeC+eJG~5xEgV_XJG(s z;Sc-0eQI){k}vpf1ARQUrOOFxMaC&Vxd??dA&0o(4J2DOr&{QW)&@>%12$BA3FR3b@XC(z~nA#6be> zRa_|RpX*N_1(2%bNiUe70CP}|Hu-jyFcWY_&%Zy~s+|*LV^G8b2hh_uo!?K2(cFk) zB;y?o7OV+{=x~icTZT)B8cTW5tcqjY2qUlST4mC-R=b-|hSEfaMERLza6-faoN?6i zlh?gNl2q_2%+|f8__7^Rd#?+`Ky9qdY^PuwLFC{AjQ#0;uHs8ADNk$P8 zWg(h52^b_~ys8^+I_K7rdSN7{JBx)t1~JGL$4K&H0UL4iupHv7nKpY$ zne<&$Ooww00-m3Ge?9%ypi6ki6LR7%nfe+MN&00bicDS*3eCB*fX+GQs)99JX$J)E z$lNJb2EnC!Hf{1-qq6yX@!p7sS!0-^63FL(H(kT1_N8RfsR;F3p9kV$6@JEQyk-# z#&|t)a%qylJYjRZWRU{0s^ETX_8I-^q~M%j6V5F*xWl0j!aV zo$n<_-F}G&!KpvFVJHH=K5iC)X812C1XSFES zSEpzfx{w|Mw=cB085Q*n7yUK0vX6Dp@tLr8w?+C>SX4q`_(llzDdwG1!vq-A4*ktG zx3#s3Qo&O@y5fhX8m-J=af<1@Ui^J4Pzam&x#WH7X>=Q*qGI7P_04nU7b6C-j)_r* z8He7a$rCRst&{0P(*s;+Hdm-tTYQ3Z(va(4>7}Nn2}q@u08Z=ykWFU`H*bbYfAp7D zxA7ykxP{Td8Ek@UFMaS{y`n}M=E=eaz-06B_MxlMTrW{xm8sn67c$G>hLMKV4loy< zxUWm`4b{x7W;m1v3RIsd^~Fw6Qk8~1qKvJbBD-r`sHa&WU9eDStJsR1|>93*Go!4-+IWeGL4N4w_3etQw z@ao!oUR}fl#!?gyF92gdT3IDlQX{=zz|_7PxP~?oP8def=a50paqq=u;E~3fyO^E= zuqQi5p{_1|PM!?(8vY2qKdqTybd=-bzYeZ8s=^fF&`3pQ$H`?Bk1%hG;>hN`8DQt4d`C zFaXAPa1XaQH1kcjj@lWenVDx*z(qWc$0n@s$fDtm+|j}|Dzf0Y@`V}i>s>bSSzVar znP#-Tjguq!IXG{z0R1yU!dcOsD(4-9m)5k;(09gI?3h);{${BA8IR2 z^20SPR(std%Tl*+lfZsb;9z5clsLzsBkfDArI%EA<3%1YIRqSW*C*PVK2Rm47Z+uv zdv^02>@2wC{b<+ICbH3($s`*k$CJcXWp3R)l=tsU*%mH}CW?GWHtpK+{D&tQ=rj6MH0@5}^H-n2X$v~G#GXb#7Z}F}>rm@#rX`~1 z)HMaUo))@wws@JAHh&RRj*I5c86)+jx}=RHcBPS2_yw|~f;S%BsHBjwFSy#8MU)3_ z=0=$J#!>odEN4jWlEz8RwW|>sk$WEJ_pethqov~{kY)Yc z%V80SZ3wvsV9zy|xte>aL6Ez!@~<7Lv~kW~4F|)25l?P|OuL!Z-MERI5+gt2nNO*~ zZEq*a#p24x0o?F0)QZYCfrRK?G_v1aCB(|0s_n?@wx=J2B8dTzFCYx|BOltTl_Bo* z9T0de7~qdPoMo}tSCaZ`dtI^2;A160z;4+zTCgWUI&I2a+eBwmAP!PT91^%B53Lin z31nqdk~s6U?mlDJts_+Md%-QqM)JjsFO(G+Kl!OzX^|LJQ*c*f<(=zhPgHG!i+f2zl+Ka7@9Td@BCxw1|e`r?2$OVJiH?0Z%MWQi9D z&m#sZ0_OwlDzz%4c(Mrla=Z#OW2OsxgXEEAD&OtL=|#iy2?OHm!dTAztmhwL(vn3J z7G2r3(?=pP+&J&jyA`aeyCim8jDoac@K(#CwSoj;8@pt33GY>8M=2NtdizruGn&dO z;%L|y=1|M+frIOm59#nUhTa08ec%((1!fk_i*? zg;L``rfEFdU6i*n$!V-Xa3ni`FtltAdvVQ5d~KT0&TS&@`JlLp)b3djxQPzmE;+&P zijJlJo=J15yZ->yt4%velNXa|BvVVlsiQ@% zT%VL!rIL9P)lndM69v$Wu=^hLJ&vWQ7~L%;jy#MuKp7+Z)Rk77y%p)RYFb>fwY*+5 zvMD*_;QIY(`bnrmZyd-i)Xfmz8=xGHGxg%Rx%i{W^xfUMtXw{eoC}-q_eeCWvBXZxBd7mz>jUO-wtPr-$a6<2%9NhR$*@ zD@hqJ+gI>4DP^9;q_<+;5-twj2plju>q6bw7vb>;BPa+11NHr>2U-!R2wvPzAz3H4 ziZpY(C6MqKFQ$|DGWcU{Xe_J#5miz5m<)3LSfTOvl7WWW~ON&=hJVLSu zEzp2R_dl&VdPYm>@4{PYq?>Ugg(9H^z(gfDBcbn3-U@>5B#_y}l1N>90>76h)|dRi zw~A=hnPgsLbw8~n9fi9)Yp7gmMn<1wGUE-5b@lzI$+Y>9+xXv*s{xb7GEeuRJPdt3 zsNMen)cA4i2^3)g11G0HximhV33;TI%VH%h?pXBw&1C8&AESuutrI|+?)Fs^1DK)* zkT}V&S39 zD#(yBrv0R-#(iq2W3kELFd!}s4LIE_k`+`gbA_zYn<}_=5#VR0aheP6%T>4EyZdu+eFeN)#uo=MH%avJN}jRkA}VtwX#K&m3JUy6dZl)GaIW*Sfc}K zsQL;xC>@0@2FYMo8Z>Xrp#4P<0pDnvcB3B4%Nu#e{`kSH?x+5i{57a27Jn$?qe9sI zj&n%hn96MlwXgKG=hE(Cx40K_ylRmd#@0X%Mh##tejK{cu2$Oi*`Q(o1oUI-4RcBk z9(XfqLD7g3bdSSD>{} zc}@@m$mi)*$frlY`F&RRA_XlRDA`#UbCP=wp7prXY<2#b_tqtQ&k}ZN8Jh$igX!of zw$*^PFo@#ti|-(gbM~&!5g9!w)VvvV$fvfsNZDHwMBPuOJ+WRh+kffg+mWcGgsB*-0CS9w_YnRfiyCy;&XEhzB~ zEH!v7^`)Ou-SYCpBangor;bN)@9jhC+BCXt;0q!$O1Xka`beFR_NT^}Xq2%WS)YW06B!hKJb&ARX8*X_?+yivSPAa`NAuOZDK2*Ut#WcJTA-RdPU&(ixeOL!#SL14{{TvPD>4L!bd1@{9OsTWrZ6XmVvz14Nv6s5RRfRIpW1|;6pGR}@hnn00!|x~ z{j1cL$7t1QxAylj@h-;hjlrugE|LprT?)v^I6&O7>yOf%DmW(w*ox}$wHPC0KP;>~ z%OaeENwqtXV2k0(l1g~|r;2Y_(Txz(_0@5U)?(n`749jr-ry1uf)Rj8qSY2hwC#OY zR)*LvV2KiJdKklL)=mEG24vw>6$FoQzQ=3?%GK_ z3|DV7iEiJ-D)E9j1J;nllS_^mz;MTorD(YA!Hr^!=V;t;4F)`D)%-K?>q!*fG8tiT ztOz(HgIlX(1(%su4eDs57WCx$$N=piQt7oOnYnH%i3r&rn~pK(U}`@*6CNmvMeZYI z{KAu5KjNHpqGI@ERs*$ONXA17C=7^mp0zOiW4#a@E1u@37Y7`g#tB1?wQ9@7GC*wb ze4b5A&w)%S?;9YK`}VA-#NQu9r7^a!+brGWC(1p(wT!g+uA{76-`p8zkg+E`nh4Bu z*FEVOL`TGCYAVthCYNkr6X;C?A4~WrMwP9@hle4&!*3(+Ur^Kk00uQyJ*Y6D%rYp& z6T8xoB*#kaFb`L;SjRCy>e@Y~v1a!7kt-?a$Eu%EL94?jN5#G+(?5V}{teia#vBq? zt1fae_Qfc<)MEJw7 zM7Hk3A(znmkL^O~mb*YRPc`@8_+jRfMG>%EfBQa|ucZ7f@V)iEpKoWX+d%LjE}Pr& zP?65l&<|rqQpz8Wnzj$C{1b5(h`MCPb_wQub@$`9wI_bchl)#66wRlt#0=a<2pu|_1nEW_h)FNumh-V*m1xME)q%C({vhiU z6<2+`y#P3^70<)w+A((I$C6VNWhT9JzwsipdG^ zxhfd;>@(i0*a?YZuv0gS=MSGRYSUTB{{Snt;^1-6V<$B!Neqx2w)04LtBECJh0Zt~ z%`JObVz|gbw>bl-BA2jOZLPJLj!CXesN{YajBe-O+MxE6&$*_N5fF68E%X&s#G;QX z0UmrlJkCx{b?zc}3mK8P04N6}`qNqp9%<^(0`g@J-Jwrf^yvde%F&l&$T{e0eeL0Z zpG_$XZI&_s2PZT%7RhljjpY%RI8%zMFjdZ$@J0FKkx*n1dCf1nw7N~qW04iP%PvJ0 zWWuy)o5OYCh&eo0wRnJ;B#na>>)R9)Ft{lyOvh^H0Czu1lS*OQ!AqbR032eU(;=O# z<)IC?X(PT3832w@MZ}UXp-P11PK?Q&Dk-HN70WOq^1W*G4KCi++?$Bkc^h+%)X;s6 z8yPjiLmtTZ1EmWk>D~Fida4U5d!#>_hL-0Y8kq_T?k+q~oa- zk&m-{GY`t!s3_V}z;AN|`ZFSE!ivaDZzV#s2`R zKMTq62gBYim;&n5_=5wM9mRZpEg73mwuVP^S9UTM;3prgbMh*7UynrN z3OvAmAzn)!d)IYSaXzIZ#{rz*#kyqMz#gE3$rv>x^s7lB7QMPV^;QIr1$O8CxERho zu|URY?Bko##>nJUQNbiJ03Hn>h~QEgliPwRzKw8i?Z1P{%Cd7Mt2aV<+@9Iwk8mqW zHmt0D7POJeBM8Y1r@sUmbe|M!a6*C`)*BZ95DxFJAJ&CfJY?@b)GbL7l1^2iF)`}H zIO&XIrE7i_*RF1~c&@cc8c1EdJ82&VS)0*Mr(R75$4btgH+X?{ABN+N-fL|}2;z_z zM7YY78R?$*=~>7x*XLwO9Vdz;W!$GK#|H#{)bP_uX^liJAYmdB+>YGW(6r{exSmU^ zdC`oPh-684jzRfY9^7Lz{JtT0)wU6PrP%4_*5c0LCXV2R8%6*l`Bc_#QMHa8P4IyO zWwx;Q<`$E(~gR44wvhio>h;HnNgg^tXcM8F-Xp+OD#ecn)|p)0Sn4ku z-NHU;hSrpGpF%}Eqhh94Yi(*~F}x@wKo2|;JwO~v?ZF#f0}n) z?uV5DPDK@GY?8QJg`HCzow%-9@#$#zdKiBk%Bn)-qJnwFd-y!Jq>~mS9a|xKb5c>z zFnvzzPrABOVxrvu39$jdBfff7mT^80%s|0P`CNm^s`VG(O4(a6&xE)>Y#u6JC5?kc zIx@x_6=1_S=dA{X+d5z7?&OXltmrp@dODuq(7qy+WmXKqut+0{5L7xu?qqKP7huOy z`Kq9_81XaQkyTEN&@0>BsA(aEopY1Br|V6ubqP>`biPL%joHO!>{<(#z?MSMg-}N( zHO7AQ744jI6`4lz4g!|ok9<(@WKy#R&iiy51{9H9jKJrw~wrWKywQs2kD6a%W&BQDX$CWsFQ_0Kh*__N}5(QM3cjnm37xj&cQwVTuB z6VCHU&np&oIV9B#b4XIC_T$>539MpqjJ0gO5)PAsGlSc1LH_h(=pTpF^!7U!KcE<` z4Xc2oJW!Y-F;6xzMMSt9=A_D^^*c>ktywcsI`ujf^?I?0u*f359sZ_#J#nMzqF6VZ zXL8Ehx&zv!%l&MpAEskX)n`U(>d+z^vf9I)ZSTcu8Cq0?J)o| zk6vqy%KR$56l)qqjhrytLnOtnqVW+}f(Jb*LO~?2vM)1`aqdTIbpHTnKO$Fzo;HHr z8ttQoRv>sq{Mhx!VNpwVmR+%olir%XqIFCr#=-8<_&Mm zq#%^GfM;_LRy+arsZFRIPffRN(b%G9H-!h3E8T7T>Oh?-w|0{w@)J$QMZf{*NPwh?dxxm_Nw3lF;uZAeWcvH)`B4d z7L4XOeKF3{Q@kHD6k3ZygTruDRr22X9-02Mjn)j6>0|2`5g}OCAP)x%$@i|U+cd!? zO{&~yet7kvEJjQQ_SW86H(5;IhH}gMQmfH%Zy6~3sqb8GlSX2Az9PSl#!D1r5WaJW zl($^d2t0Mx|Jfe$~>R3qZC~$$FDVKIn-|!yq{X`cN{gl0?ZX zhHQ>0FHC}LGO#Q%w!)wG+i@87qR}BY0aRh}$x(s#G*ID+@R8x|-rc$DMcdi8%LkQq zKTwp+1vi9q@ zr8rOPc3XFr$I(xich=Ar^l;~jaf zDfO*p2fw{b8#yMC!m149^!iuG^}SwAR{lw!r$ruug9<{-=ls_j(tyX5RD}ZC>g$5C)Z;ECAF% zE58vI@|Ws;_!OSv#y^PeuC6ZUon_y=9l0sSarEpf&f;$yE6G)bGimW$*}##=(n}kK zRd(5sdlB0Q`p{Pvlj&E>9pbEPrz4z?wLGO{Cs{!H=fk%WYVOux7$(HX%-t1$I6q9| z?NhPQjh)FUa%N>ifwbc|=k%*bk#!m>%{8RDeuwbf@m)+(`bhW0pnh+0iKF25NRO!EL8OtIX_D4q=BIfh3+u7#tBy;IY&6$fBOhPk_ue zfX}*8rIZjzCj+?7J5ijSVU%gOkYaQ$RCcBrAdf% z>y)(AV0pKA1%k_gl2^YTwe}k!9NJp6NVD7AC<+Du+wc79SJBTEuS zOY^iA&tvUby9g}IpTX|jL=2u5aC-CK?O8bE@RvJtxL{|dXuwkIc}cko{_s?7$9^lZ zNSO>bWO0K|hWJ|78(3{BG1j_fSpW~lI+0nSNTdc?hYf;rnspIdc*ZgItc+1T-r#+E zRaSwfyIjWZfF0X<^#1@gn;s}8-ojgWtv7&9^Dgi*2<|?jt$Vv$%Ujbr#AQbO7F;WJ z=zAV2NwSS1yPI1`V~ygHHxedJMoPD(FAtU*PkOvtAtgfyv9men=~pk*nsg~>ZaU(l zoUo!`xL1lHThLP>Suadfzf92q-1^j6#w!@Dd1|vb&Uy;QK5_BRyw`W4)*?hvb;03{ zWEkZA=mj3n(!18MPYRGU3=w38S%UP*80QuB--VP%WT+zv$FA)C>X8ym(<|eFMZqT{ zidhCDJ6Sp4^GzU=u@wec1;@#&faZajF;c1_4_By|^+D7yA-M;FJ#$#c!+tonFlzGY zsNNTYCg6IUA57L>(|(hw#~^7oOUC9=&mH+S!5H+k%1=?GvxdguAdc!V?=~d_1CmMO z1Rgo7J~q%VudRVwXw0^Vrd4MAOddG>1#)q@Mo!G*aa1U`xAE*@Th9_XVNVYS11q2F zPbbjq?R*!r**vl^5v-EqC!GHPkF8rrge%iIt7-RomZaAbK(@|`s_^6jgFe6Fr52(z zM0-WFG8uLlq;t3v(Xq#^T}qV~aJOL>8eErYEVo7B@f;~Kw;1&vm35YY@tG7feh>i> zyiQnioM*pUk7wZSE77bl#|$tJBmpl-Cy-Rj9} zIWVh9Grl|~Jr7}y^m$8(#k)y0!rfdrj3M#`#yQ6z;;iD4%HL)g@vg0LX{N)bTHK+4 z4++AbHWYLEn$20>NRdVrh$?!o{NkDlqUet!{D!w$ZIGVC#$<7ICfOVvp$W%trF|<* zRk5;y-p#?Wjxu(;dEA0}A4-djoe_#!1E^hCd`+swZE-6_Y|Fht1QJJ54lr}bKGmMr zHT^Pqq_Vk3w6@b*%Nzn#&_`11jb5m|Z{ z;4h0L0h;DEnF;>@w)q&XUYgNQr--d&NF$O5P>kT=kJtWlQsy6wQxJQYqc>6w@G%=u zU={xWf`@%63%0t6bpGAqgtDms1IABkY6~nnqzX=C%V(Spg0G)aSA|$8Do#{`#U%v;-D{T; zN8vA zgU7vaOse@Tq#iTrL{Y7_V@#F=9+<03mpr!A$OVsV&}?LjVTjCHJ9vZ0kB!bTn&Gt6 ztuEbK=F-kUzLvD=$SOuQeilF+{{!ytP3j zp0$8joC*(Bz7|$5CRZRH81MQI201r$Bgk-s5RC3*Fh)EBUOpMVHOUTVD3_~Hg*uxy=n_Apw81GV&DuyXO z&@;iJVwWP2V)bq+VAG}}J6@s#)ygJ5b@BJYacX}PLwM6P4A5;1BP^tY+~?C3^Y4u` z%Uu}h@WtaxGbfDiARB(w#mfHxIv?1Jbe(kR7nYZyBbiao=$Lh0^}f|L)VeymC zt79142pK$&?NQ{5Y}`-avqrc?x@Wz$+bNBUysMG7Jw|xX=~0%_+u}=UB(hOxw$8}2 zi8vYOk;m7MTAU!$wsxky0e^$o{{Y+75^0GgiH)(Ju5keg;){a=G>= zr>-i^rf2>ZY7qSN9(aU+`IskDkG2n`0UTEiZzs(uw6{Q96OSr=@srnzN-;TZt>Cpt z;DFpgoRKo*y7s`w70ca1{^kvq_r}B`Zdei@3qNtvkAnmJo~vZKl+n#`65LveVRw@( ztGH*M){lpC9(m`zQaZ`c6{9(&+0UwKfmg(4Z!<6i{3-ml$A8R&nt2VVlQgJ}93dT+!r{Io>D zhA!%Gqp%0lo@>;y-$_j-%*#5k;W{2oc~``lV~rV$^v7!Myd)cO8z9;N2#OSO`u_AI zmcdoso}jN|L1~Drw@%}87hHZ;T#weYu*G3-@ZXIhL?>cYVD$v^jQ6SXd@B$1M`e2y z&dUVKHm*+OHEQb-na)a_fG`32X0t*xTGAw-wnrU}awc8bBWV8Atq8E`)MF|kj43>f zGWMY7)5Mb*5nF@D2RW>eYQZH!pt9wN8OA6pi#2n);U-e#jDj)6Geb~)qT5>8$Fws$ zoyAGU(V97+Zw*idOpLD1PCfHkm>62MvEMTQ-k9rMisJ{c1B_M(1o3!s769RnNvT6| z<|qeV*`^e>NQ^POhm*8z81<^*eSjyMjs^t*iyS$Ss=W5nB<2^+LJ`g*c_8qHOOba$oZ?#7_ zHH>#YmFmVhk4o-q7%xs6u2phIPZjl@2|wv$8%G1KY0#1%BV&rNN%~M`Mex1|#Wb~) zk~-AcR5OZGz~s{yTb^@MV}(ZCReYq&ci(5&o;)-06P~#eZnQUMY4l zARjAzeZa4YYC7Edlxnw5(i9sNn38enT->qztUaj!z;@gqZ(afW*V6tO(d~78BHC-K zslbUx34yhfrVrAm%IY?5DSk(FFNbX}?+e;q&lXtj%Wm=>*`gq}8da3`I&2|}KJmH9 z5*%`WZq?4Ydn2|n{g9sXY>yt$g;X{G*j2io$BGg=R{2RLyqK-H%aY1Mu|9*j_vVTy zTW#`_MgIUr1j~R4k=T$s^ymH>I@CjZcCgKFEV%{341vJ|>5P$D%u{`*G@5C@wU@w! zqzKW>Hj~d#dSjnT9W>Uu*QfFBCK95L$q|za)N%zIrD8cy6!v#w*7e%vMYOj~s$}DE z$N@9&*09>0+;^8T2!SzxI3NN|TZuL=B)=R(tr9scEv}@pxe(pR;vWD;T(~2#&(}Tp zp>>mIZ4?b+vB;+?<0O(tQ_sCK{=}E`u^qy+q`uNO9OA9gt=fC&(Q%SbQ-SxUejKe^ zN6_u8T02(oBZ#ktGre{Oz@*`l>JX?AzI?oY%y9s3G+Z_8bW5;K|J;8RL6YL z%F7%r9A&YPPfuFLp_Ep4(g@{=7^6N5ZOHXMwOy?5mN??J@YIFegpL8vU#=<=dxcV@ zE_-H)cDV(@fLTvdRYHvvMID@mBp#W?SFnX{d~xnk^mJ!^iTsKl;Vj;J-+lnT8At#)82_p z)-h(|Ud~#IFjOOs^g@ljd7=ZXzzlj-W^A4)n2zphKn}DFRdGJmJ^0Oh>*9NrxVR?( zV~qOHF`Vz)?OpB76A=d;E5fmfcCHgx!Mb1u?mUnNdCh%aMwM0tT(1M5H1QFQgxMT% zT@sPhllGv(f?$+^%`k#~KwOGOI%6w&jzA>SdwCBTIjOPG!5fiRA)t)Q1$vx9EIF?& zV42_b4#71af^XrIb~Xm`jGhi_;5s&kCZVX>+N&26$+Yb}f#0uiDtwF&zzdssEw5T9 z1!RTxFg=JhtI&0+q0=O{TqYYRRQmPE?_9j=w-|V`L!0}1`62ncXx>X^h&W&~wD$+^ znrWw6+v`zS&a(@9$U#>N`D7ilii9Cbj)yj+a^}uxuFb5stpk8$A~o|7-)YW8BmN%n z+zEk}^emi1D9;^_T4jjoi|lsN_gKBSmNO$-q*%g!QG@iNF10J|BIHGG729u4yN9Sh z=C@ljz+0U_Yj-gG{k-DRA>o*!B?CTAF_X_xPGo81)b1dG+E#*J!;UEdY!7N$uMT-N zdQ#FiJ_a5%>R93SynjYdr_Xr+nmj0(PMd!-wWM?lIkfNGp>MJ;s| z+cb}Kw^m1Khyq_}ATjz6t|@iQ-aNaRWCxJJ+a#Xn?_Dxz;%%iylSHtz);<}RbS3Yt z=EP+WB@ZV*y>m>{BD1)Z7`#cc5tkVW&nGoD?5rZ5nqg%ul1Jmp1RM6Ey9L3=QN>F7 z*5+%Jv5I^vC@Q!kcR4<6W4%t!fljGqJ*>{#;@@WaiO6QbZ?g2R*dqa#ac05<^OH|18rKlrUL41$DL7J7Q^ zxR-RkWJEjx??Egs?sw-bc-(mXDhb%~XD-$-q~Vz44=4i^8j^VG-nFcmPS;6E+73oJ z?_8GLw1Q2Hi?;-0fm!$?I*QxB3>~C&28gr`^Klc|yVoS!ya5LB19ds86{QIKRauJp zaw(xV5LlY#*5RZEV4?BJTn;PO4q;88Hb@+k#dXGAhD@ETqDU}$^{LFxipZGBUBf?G zqE-{qOEI~DT|q~MS@1d@mFtMvvyejL8R_?-;K40wwlKHg{W>Im!A|W^GTm3%b)%X)c$&h_PAKt$*&X*cCwI#HLnii)zM3)6n?v6;*wiBr5wkwIv zqob@?Kk@6UwheJ7ia^?YMHvI%9Eva{wZ@#=Ew|3@2E`q+}&st$Nm#5olv0q0NP?*NonMp*wvPCYi)N4}o= zNmua)l@BU|Br*H(St)|FuE=twi3b?(UYuKcN0v&E!$iEA%6B&G7D*RqC9ppAuhMOv z=H)JCe-6_*xBz2*ImgtVl*ZtY*43l9xEG9GNSXYW$6{$AT~qBlW5;Zzq(i#LWl^w5UDmu}OkWh%OW_L6S!&)|OlxWSXEa z09Cmo)~x_d_VcV)-5 z0|mz3l|BCer4tY@fI#3>1epG6#wLyQHO6C;L6{Epu?u}G=Q_iNzGWQ&tc(CU*GZyc z1oPUZM8|Vp&UiI|Uu*%Cb>Q}|r06aG07!$j26^V00io=CV3WmOtQ4E zWZ(_m^Zo026LZZ?svFRa*{^1`i${T}j+9d|?Bc#B{APz72no8Vyn6Cy6}#W*YU^s4OjDUA2Y73hUu2gou%C>b97S0vV!;&g|0I^EPC z4-3>L=^=%(@}>lsZ1wAr%{9|LGHbtrbvyg4e93POcJvv@QSVT33!N2Q$D?cdmXT#D zJQvs2>nxK&{<~8 z)Kcw}di25T@69|cPD?9fjApq%k;LN_{{ZNhQablicnnmkGOplc1b{!yW;DrT)aG{8 zjnuaD4ob0A8&9Trt^7VU9@2Ou-QfFC+oPeAX`0qJ!O3mBAIs+TtZt*K-D)5#=W33T zgMc&C*GKVxj;7q->=T_TK`_j2G+BHo#420EXD4@vK+Zj>P+kRhMm1z6s)B4HdGDZx z5<|%#RmZ8oucBS)*UxUceT>0XTzIZL#k&%H0323shv0Q(^9M-AU}0?t3vQ5{9FB5* ziRP50z0(P?lRq(wi%}hQi}evc10r1TVFdc`2|SymOrU^Gxpb zi${}vg~!Z9a5fb_U)Ho!l+t9m?rYW9awnQyrE@f zbDq8W)TZCVP^wQ3&Dm5dspo5RoZ$Yx^c0grBNmD?0pMZVbrdTgAd`MoSd8O^%?=uS zYo(6ZiKk*m0|9-FH^U*NwWa*hB9uWP8Dh!hUvg-fj1at1tWnP-d08Z6!js!*?mf*# zyBdy7s7*91tkP~{(;$F7s5^48U5S}X2(u$Abn^3$y-lzJ-RaktF}?CaShzBBMlqgv ztm_s!f;nuXA>fXOwO@*ak#KFYf4jFl(KB7zLu0bwHzyz=83*ZAUW*dRtfPG@+UHGa zCz<3Z;4VIZd;b99omg1f*~AaT4IFX+0FECthyMVO0|KWhQY{rs(OGLtWp2|$6k^o~ zUAwmAAIdOC>S#?)$~U`a)6>f?90qKYyZa0u*0|#7wmQ%mEEQA)EJ0!hdsPgp2b%4q z5f$J@qdEGTq#c4vh{t-j*B(&eQ9!{t=~dpoIPYE1SVg-N&fRiFEW7-soWj$O6E$Ks zNDI_-sv#J3d~NsYXqcOKJvN*QB8J;cSx6ZHdeL!%jQZ9wYMPL2o_f#;aL?MVPQOaX z#i-?v7^@HE;PPmgt&cda4qp|FU67*{TelvR7(j1WtPi^!^ItczNfFsu7%(H$SLo05*W%fJ zCiryCa8ykMhBy5(59w2pNE;-ZJ?MpSMNKfYNqW_w)1evSGAlXp-^2d^`j6pTn^gnG zLE^+uW*_8co6sK&w7WK~Bx=a$ygYJ$HYjaDXOb_Sfg@{3&m|X_&!c0UbJn3HLqXc2 z`(0sV(4Hc%;T!v_e~B$`6MIP$ z2+%kujAOsGeTKv1YiaI9oT(so>ib3$>r?GaJZjN|{{U33bnEN8WU;Z6#aVYrdSW0p zf0Q;k=M{Itm)5uJw(D-`GNIg9?gz2!{i*t@K$EsKZ4lXsd?~z3a@)#F$wkK_C+}Z1 zOTnbWs6dj4r!$?Z6D5~DLG4Q}H6>pKx@9S=-cMrob6qgEW(-vNj+91;r&-rUg+ABm%KmX9xIx3u_v=HJ7$SCti&;_LZ`UfKTDmAJMx@@ym?0R(%D z)cBLDWjWU1SHt&BWv|*#62@I0IFRws^Y*Q#m2n-GrVZuVH_q;LM9w)p5_@FRG*5|O z!&fR@q%h zjIJ1ioVY%f+M`a<#W&l~o1H=uI3Nz(SEO^cnu0&evBQ_(w0w!S5~{86_*%nxi2t_4CojpGD0 zh-B3+FJh9~eKc;|NRnjm_Mc*E14fqNxA?He01R6tus{8r=9zMSR5am1*4B2$2_r2y z!(w}d#?TMt0CgGls;#v9Xq}{jIZub5%;Tr8y;nqS7hdX3ZMSNX8xo3`-do(#)t=&e zxYkKPS3Y;fFb7NuUZAoU7qLKO!xm6T4vWF1zdE;8mkkjmS$6L9IsX8~PH|~jlhL-6 z*9Sy`IVD)*@fim>Vzif1(ApUckeOZua=VHV_xe>h+DKU-1$iEIg)QWfk91T0DZQ`3 z7g~cg)%1qK%0JC5#AFUV1y#z82#r?%08i3%TdOS^7nW>-Cy;_9>IqSvJ9PA`G%XwW zl+jCi7Iz@YA_myqIvn-lqc!-HdOi4?UeoQOi%GVEHAjzZ!G_j|j)4CFTFzTvEEf^V zXOYUNP%;Q0P~+jXWWVdv0!{FlOEZ2L>WS2!N=1AwT}+IiCgN~UYN!019gY70RXhsQ zo&>ZW89UGB0)@Si_j!5x*Fx|_fEgWzWZU+jZukcjP*|zk@j0s?BXAuubDE+i#wgxH zj@5K6=L_4d5C+<~%O1qhk+xSPfGC+4Al+830iY7y-lSrtohTT(G6hJsI#Dqbl5L1|m!Pkl&fkc{_cT$6FEuWrh!11dyiXKNaCEMAtOEN+ z+bGR_BjM*QYBpdBCNxnf%@VwHtSOTJ08r*Br9~MTS8hl+ApZb*`J9eRa(_w#BBR#2 z4FHov&3(iD2aToBbt22hjsQNqfAv$Jg&=)0DfUUU_Tr641aVTbg^|v=#%Psn^ruWl zi37!OW*Cp{uWka`RGb_;7%Trvo09Rh8SM>fwkW^{%BALbh!*y+>4SV^1dOK3(Tf zOn?%jBRu`hG}rGg;?-_ZipGXgVpZeIo(TT{&2Vx~Ds%|{0EcClR=%|Pdz+}tClV-= z1e|&`ErLhVFO)6j=_JS^GmV3{HAOFh>S(V1IEwd5p3K{qsJq8U4_$(#W*hK4btg}O= zTSwvkXGKt@exB4$t)#ruM{baKQ(M5kCQf&@2YOC9B&g_;?V`;x!q#H%adF_ZCv!&8 zljZJcrI+Tf9GMsfV6g$l0{Z=`u@W()Oy5gqdoKH^(i4vjdXjzUZ9+%8e8hrf9)01u zde-ZSy5(PH;gjXafkfZ+qwfonrG)<#* zdu?=7zTC)9IRk;*@kGHthoZ={l_A^mk&ZE3pK$bON@KTe%M@}mGp^`2U=h}uU*29> z+QBqyBq&b-j_j$({MqgOs5Fpc8em$AU+M`Gh=?oM3U(cl*^B*0OkSDk%wW zgylvzXVBB8P3Vs5Da`ir&k2bbWNza*s^J3i^g*>#fw-%Th41&Gm>Qy2zYm+03k}B9 zRv--a?Lyl8FLwlQ5o96G@Ko{X&2CLpO-+3qXgYi`TakMh6GbU1NX`Ki(&J5ocZQKigOk^gJtBrf0V20zag)g)P*T43Ipf}xvSnp(r!>Ch12#7(`kKZTURtCv z2JzLTWBC`b^{OJsZVm-e2*Va%PrVTwyGoPyqJS9${YW_Uqob5K9VmeWq?>;Jm14h} z+JhJ+agKUai+OmUV#u2j^IYCpxW+34vvwAuy(<{>jf@JXeE^Cz+k%#IdyI9gB%hek zLY`4l0*Q_q=W50|n&x?;0@x3jd)Lzb93gB_Vu_6uBpSb^01AF1v9{E-d7`<-;H9H) z_L}(Y$Wlg9bF||%m{DDLPzhr5U!cFyrCT3>(fEzqL=3!jSaT&2+yshG3^<(2H;nUK})!rtZ zvdpI$0=_vt+sLOapXo&}*{lJZHFc;jC{f(voI`n~!1pg{9hfuRLgGN1dgBC-=}&by zwEbYnmlIECdSqfy!@Nh&<>Q+2=ftJRQZd^yb6Q?oIVMP6FvS!o$vytn13R_W_g@K= z-~ejsIvL^}={No@#p7xan}|$5nl!;y9SOz(`{sa_##_iDTV(NO$&5y;&H&DTWBO2k zi#gn^9&HNh*G!W3;0PlJ5vz|gbLm8B`aryeJuA;sI(X%UcIQpGf>|vsUOSs*Ety>HW$ESSkF&V2 z)MSFwbY^u0_DFyLya9~$Ij!hrCOf#$FRtw3mH{*+hakTTfJYG87{l*n1V-bnH?Nb!8cP`3z+Fy0V=bBs}6juLtfw!pD4uQ|>b zj+My7(Ymat5lPMg?d$Zb#o3V7J7!yO(l$vQj|PC8AYq0i=hlemPrvvXq0a460=Q!hvz9wVl z#}pV)N=i>GK=iBgkw7G)YMy;KtP{JvYlXjB#w(e<>aD|VD+&?o(|^*i82u|8=gmew z0g_&o+|vMwYL0oLW4&r7v5O#M;s7h@9}c(u66UZC985m-e*Q67!i{d{!m^O<55_j0 z_42!v-*Crn0X---5|+0knxx=yKqa=(Jkuf|+|Jlhj;GST{{ZmJa_E{3t%SjI9DZg8 zkV((?sq!+A8A9gb`Yuijb6SLrw{G3Q9V$qnJ@Jr8W&LWzBd&O$V5rX+q#qNjqK6sA zI*!!w6`v6Q08wN&5=7;RF`c~D4V$p-#axM5>rAxEX(Vvz8!%jxiq~2L=-&%y*ScMd z+M>8wL=NbLVDLR@Mdq(I=x1q!*Aaec6y%)s=DgT7$;jF|6~;8fR`S*|lC{JG#Z0%a zJ!vQrPk!pNBCc|z)zYU-S=U@0d=;!|_S4+i>Ms&3tO_)%m2RMq?^N1eNuc~h!K8|K z@=R|V0x&_r2d}jxp{(Z*_^(yB)Zo+KPjxD>hqyb2RonS?^*F)kIvUSwKM^6)(*ekizWX3SDXfyUg7_v=})s7+yWg<{GGK5u?1yle3VjpTyj zNLAGx;~iKJDErcuCw@m5J*kY|1Y5&9+D~|-{{Yi6h9QPmap2>)$o=Vsr1IWryKY@q zV;zj+A+!B3b4t)tXr}VkJt?DIQ9`B6M{kA!bqArx_ODaMR)m$NY0jx7(iPB|ZK1SW z%Ol1WpC^xB>qY6;lck!A-v;X5XJZQN^9*o#$A9fyF=b%y0Oqo^TX&gvMSGsW`gH?k18;O8FHVJbB<*3q{91gweDl@bU_S2xMb%& zIILp1WXK)ri6q*X&omgwO{{6uF}hC#Ssx z!qKMqS4(BSOXg)T+MW2%EPHY3Tjka+wF!4Dg)%yNp7fJeJaE)}FKqH(B(u%APerYV zj3VIRgU>ZO9>AHQ`G6o*!8v0`0gy3D!WAD%uKL+-t(rCikxZDZ_&@rUqDyMd{u{6d z^DjmEj`j04UpW}7r(~L<$n7POz*yLmTQ7&Szm@CIu{R+CXSh`B6qtPVlPb6lUrHYPijLtmph2v>T9Jn;2JN5?;^ErrG#C; zZnfwfT*;){ab&rU&eD@{GIw)uue zU7=fc6+XEKKGiAT!rV!E$?3QHJn|h=RFFk-9K2DtnN*(OdRM5yw25-tmJGEAxzp}S zMKVbpcx1Xt z*(9${G18Oj7S6?C9v*f0%ZwAXsAQ zlV7629N=6@fE9*Mw>Lw8qEAJ7%;^T5 zD#+`GAC#W8ikfh;?nNl8z!>CH!C{i36RTfG2tr2EK?bVRl1Q#OLZBbbj8ozn4d!-~ za&uM3ZzRCsPCZGePDy$+Q(?B2R_b5ob0-4?x;;4iyFZa!QIZD4=(J;a(m@p@$Ft=>3TR&RB3RlKD(UHDanpQF=6XH&_ zY>l~wXatJ5E^;^(8D!^## zP&3|yLnB|LX@(e)RGvDYTGi;B^8*u$V z&00PZm!bDk9Y13HyEAR;z^GeaO!uh7JQ1s8l}y%YKS|LoRK&WXy`0icgk{;rIrOP+ zdE`jpwrE%pmR_gnO6ei!zH5U7rYYEl&jF|@WAP{22;6ue8s$;j5unoxMuD0znBbl% zW!%iSThEvpq-CLN3SgOJxXg-5gV9ek!I^E8GvT8r%eUNgr+(11eGB;K{-XFA(kT?h z8b%{7IrFXo`W`b`YkSLu+$4OFi+T~Jxvnv%K_Unq!!SN)2D!;^SOt87z zhg^*Cex376;5xs6n)Z=xJaN1e+u7;E5{Vf}Vi@o`e%0z7jdkgyzqpng_p^~Wn(`9=Y`yyzQ9izuR&&$mQ1c&tG7XlaV&+E;@jW0#4JE69wKv}TI`MU2*J?G zdgYEBdi`q#%Izn3gR>}g^!BT6H#AD{j+~4RMG6s&^tooggKV<0m*Jak4O4q-9*pt8 zie05_iBIM}iUkQpG;X8#bW5#D*;4*6g;y%fNA{|h;aMJV5_KH+T>a~sJdI!)7wQ%; z>6e=tV*5^81HD1@Xqi4c$@e z1`?}nC3)RM!mF}kc2WpsI4VXlOK&E5alarhO3?!X&pgzW^HdPHbj?R_2C;%|=i?nu zy)uShF9(cKFjNv`jl`N|8v?i#tS42rocE#~u%k2riczo)a!2Ei^a63*1o}|ILcpBX z2tDZ@A1Ak^XD&E%SpkE$H5zeGSF_I*j7K%@gNi0Phml(U0ERBrNRJ(R&}KEz&5$bH z+m{p!RUit7ic5LsbB<{wQXuhKg55gPOKmkk4pi~j)`%p=P$tFaIn5nud~H~gPCH;z zF>GlTxL<0)9&!HTN88>@GmXG6u&GF_M>d?G&Uy8t5MhNN))nI6I?y*)7#(P&1}=F# zLyYyT?x&=~CE;?Xc^MczYRO?H^vL{8V+%|pw{VvV1{Pjbhu5_!lFoQ-;5Q1Y%(**T zAoKnyT#!^w5RB>(c7i;|8;yD|n~vr=piC5DwVT)0mUTu&y0phqzMA6nE6EgK9iS*Y z{{UL7Pi+m_;uCO$20KS9>}pU-fhd6G8il2{*kchdi6|^UCnyJc zX3}bfkL0uu;k2}mR%s^NBr2>}Kl0#b{(WhW%Pqx@`^}3afRZ=_4&5tCKb4!cMv8Rp zLhDJhdwV;%5-FIpiNOW2jPvbPPj<%85}>{}6Vo{N^{0$UHWR04(rYpz2|}q|&)|b2 zC_S@|4k>=6r%R>XNpC(+I6~uVW41*O+eSpRt0?X+56pOxg&9mQ=WfD<)b!m$PE}i| z+TJj5b>|~Bpwo2=PvWg@C}U+fNTi8?@~}|5*U*l% zB#Ng+>&C169^nbIg5#;=g#_TAP%vxN8bl@Oue;L~Z1+k^OAy;8?n7XD{XW#D3!j=X z*uf%!Dc|={K)F z%G7NFI?6sEWs1X9)GRH7M|pCnRezMI+{ArOKU&Edu_*AEfO-1WxFy;)UU`8cMldPJ zVlp`#3heC?+ANI46}+s-xxw@`axH_~8*dymGHq-f#HnBNRLf;P;=)vsdgCUD#qc_+ zg_1qZkL3iMQT7h^5`~HeRqjaXT9JoSDqC8D3ahEkJCQ)y!kUJ&Z*g$U@W%NYNCY=* zgW80=F{YDSv=cOL#7w8mn|TM?gw*wKmbH>-P!&i%U z72@3SSO=B7!;wsFXWRnjiG$;l3<&h5R`Pj0C>XRb-BXfJDdbYIkwBY_RQK_k0V63J zah?ZSpR#G~9RAf41+jbil2Rv2gP^OfjT$fl=iUQ)`wrYtJlVveCoMxwY0DZ1UBC3%l zXLVK6ZcE!;+cP#d31i`u{b|R;9|Tz6SzF#+hLR)<5(nTOdhuRU<$Rou3*pxv#aTaz zf77^b?``GM(%R4}?U6R%F!kfTW3`WU`S0DlgS(Mmuv%)GX9x{2{!fLR-=fz3Na*ds-ACCsS`@7TM51D5)K ziVogIOQ5$ZaLcrUIbV8o#Awuf8+Wd0^IayDZ5;Y}8|RWig=Dl2f+HEopBiOY|%Ue5vbu<@(OqrLi!=8(d z*rX})F7F_1vw@Y322}I=8lrcj&{dpk^6Xv_h9DB`20QfcS6mioV~m6072FXHGBck} zI#n9LC7^#2$#-cLovnmQu&e=@S^7Kqx%J}|qSi5SY6Z-3EyA7}Bf-x+k6LajNNKWO z5s3{?g0BX9ezK8F>h;OO-8O3*V2PVvy5O<4;`Dkq$- z1_(TT>M?dT1gdQ+Q3EoOmpySu!{OZTwV(dP>{YS>!6$=8QlT3_H@0vhvPT&O7jM>* z+(f}PLcU|$HKQXWMjJU&BP4(>Ka@8$NtpwA5QZIcdexH)B(uopZ(-Q>qLl++@qyHn zSO8NW7UOD=pz)G%Or$GsY_a}lBcbW~(->JOX?fhBbjdiVBcI52I5wglyn4~&}W)4RE*A7DS&r1)R3v`Si{{1RCw|>ldeIVHj8ZEpcnc-gcohufRZ%9%$N7aG!!Y{sR7BZ=)TWLdVctvob|0BT zeo@;86jhJMa#;@r)JXy{!$g0kYsr@re2t^8{)r@mZT|q&6MH(x8%rA#(DZM;G1N8x z0OE@flJefn!biwyK5Pz_@m(^_^(Bd!h4w# zG;r$6jz|Q5Lthot{ux~xRGP)E1coNTBfWO;x5fCfe4bcll2cE!o5u!Nt=%S%Z}O7C zNCUAs&3dz@+a>9t)%A;wGfpzY4}|L2Qt|Rf(B`s$FrBVu{PKd^kE!;g;***JVYd2= z(q2b2+a+}Ye98|_oKqb(Gd`gN2I5pnX311NeMi!|J{e0$>blLen!MKn#yL@>$Y~O;-F?# zJTd@Aa>MUMt7KEQM^h}<2|Q{HbH%u0pgj-oNni_cEQ$t5IL;{+GorAJf_QESiDTe( zZgEyir=|Nuu{<%#qs*=4-hREh{?&M~30nL;cY3bY$X!#N#N&25FR7)nqa!j)lyyA~ zJqi(LWdx{Xx+)MJ7on;y@UP|0!N3IP6vhDu#PVc?CpG0Nj8t>aTER3rH2xpLdb;z8 zC4q3hfU_Ui8qQt1$#Ek@yHK$zJqCEBOIYu~b0aDh&H?Hwp7iKKCcU00nCPh~!QzMy zpy_`K>8bGiT9xhN%#5Mr7UUlbBY;O=YBNn=h3@UiE%MUJ#Z)}U$;SsB{eJb&-cq_O zqNozf;m@0r;a>G3cpn3D5Uit}+2^%JT_67d=2&$5X&IJvRu3X=+6e3PtobR?x~jlU zV@SEuBu|*y(a6PPbvWIFf^pV>@v=JcOr4-LM?|}aTBb=bc%mo`^t-S#+JI_wDLY$f zuWnWgXr5VLqA1BcR{KJiOwshqxvm34YkO?4$jW~aBmjm3@1N4A$@(52v*)fxlRIvU|QG)#KDI@T~X`*zS|j3q7$B!$X0x3QJ>~6nWMlPjxgD(V7rhNM_(bx$m%PR$MR#| z5`6gT>c9mY0aBLoXO9gl@x}?P(1i=A_%TR|2{JC+_Tbe~7Mb(fr4P%h9GAnwK0i{#6y5icp%eVgq#lO z>@C6G`A}7{l6z2h5xnc+Tql7%Ex0&2{{Y2r{4sT`?QJQTNUbScDJU{3T5h=|kHiq( zN)|v{4ZG0rO-;w>9Gy|CyYX)?!xB!#0T6M4NdUOe^*7WkXDKAv+=LytJx>+IK34`F z*lE5U`0G*AC$&vhNN#LrlVZ&tcSKLFdr{vPK9<_ansX6n3fPPTk&d~l!d=&e8&Zjs zm*NX3K4LpdXt6j0#C#FQ{?lHnbR?BvUblI2`cUzfIaX7>h(2NOS-8U8WkUjU&QBtm z4WuCnKLTahlY@e3mW4A}+)r_E&e(~T0==2I&)8(u9-zdk>0w)0Wqu=#3I4*9Xukt$ zdi=gHh+5jY&xKDKCtsEMUrD#6}>3SLhk^IEn46^`#LDHk~t&X1G4^1u2nn=nv z#@O0bk9^R-qj-FpYkR9VJ5^>ty;L9VOgxj@z?bpa+HV*t-f45{2XDC*SV>7(5i5N@ z2(J|&hA;z{ilQar#rWXx2?HRhRJDk;moFdOu8(@=Z!B zcw>&@YlaH0#{p0N?`oG`sj#Kl&_=(e>N-gI%lpfFh@Z-fZ218CRMyTrtu{ND?ro(e zGVLFUi5G8Cij;Xf?G)tUTyBcA+i5SYCWhS^)n)O#M_H5XqnR>StbG&k?_2B(M>srV@Ahy-@D6cgep%u-;GT^c zP)5I@OLVrfMK8@rfWmy=$_^0ndY(BRm73J_o9!a;Z7$;5J1AhGgJ(TC6)4Z(TKWg# zV32xxR2hX;2rr!FjZkUOp;|VhK9j3Kd2ZWeiNg+X4m%%X(zZIrpJg?+p{iVC!k!T= ztO&$5_x^l(XFt75lO<(%{4hqMD#(*Kc{R=`nBg_t@mRr{RAx)q#xv#|SJf@@AV7E^ z0g3<#K~}0}K;5eb&d6{%??6mg=Wiy60gvY7;;U&wowBQ&(fI+&y9GN(zeC5SmXqNQIGUB zG_{=y2Z_RU2X0U8T=Ho#(!-)Ac!?1ZQ>i&0)Ka-_Gb=7KLB$V5X`b->NQ%dR{dVI& zdb-NqM8@%eJDyDz!$V6`^0KAN$KqgNRF3%T`_%ObX4R~gNZ&pTds-m4Ax}~ddgJ6@ zl98pJ0YVXN)-2`ZJBePHqb!MvRnM4b%&Kwqu897^i_sQo(;AE47T(5_;v<=`BypTT9z=NMJY*BH=<03M-kR7Vap1#%5)-YHi zbilPOD(6YKf0U7($CRT)GNAerYt$no)uN49_G>tr!Zo_M@DU{N(aU&UhScAcE!!jYt(;de_yC=;qONxI3MiyHCux0ece$Z$!FbL%tY^n}W^F<% zIW-iuwN%|CV=T_u^c{HhtyTtR{%X?RCyvb|a>HnqKrVUdo`RH1Wh=@-ftE((u_ubG zVwTtt3(GuBwPt@Qz#f$_@<^qnB$7Il)~R7(7BCr6q!J>eSl_w%=cWf9{p&!U4vnb8 zahW8Dg`OPa@dig6a5^6KIe2A`#a9re^Gxtgzbg}Dvz??9=%n*ODl{$lZW&1DzwJT` zs-dMW&e;3mM3pW>PnC_%#Zo(C6|>W|D@D*@h45~0Rpr@?s5}Gf#szb7Cg*4>O0>;u zGRFqD4dZ3P@Q8gq1p$9{*Reaoz65UH&N=#3n`B#}{{R9Hl!`fKm=VgAUKbrlzuvR@ zluHCesbaE{%1G^0gDL72_>Hq*R>?W~{VI~%-=|M(Rl!Bc7C>+bH3ogn=Fig}m5gfP zyb=EZr*h4IzHqlOtO~#o%mZ*q?Sg+w$c;~2MurzYZ$X*cdMdafF3Itp5VQGYNn8e&TAOad^z!b)|EUlTtAO!k}Cz2 z7Vz+MmGAcHTRk>6n^n{`tvgYM_F3YS!x-~3o{B-}Jq>emDt3#-+NNVhm8oia!Gpnn znw+$RI0^5cOi(gIA_v~PN`em^DdQ{fn^Y~6>zb&VvhYKLuRZJN{{RSIOYvrtd!k-6 zXubeQ-Bf28C-%YpYJ7_a|v9P=k;w03msjj!5<<;wu;y>O}{flR&(ik4y?C1e!oQ&@XViuv?l8B$8l# z54bgQ$>~5L*8JlcG<-(_frDdmfEqFzqSyzDC=50y&%H4idq-ZIkdD5hjsC?xQ+4pR zt!*e0S;f z$i;$>e@dfL_)bQ+64Ihq~nZH3vkId;V3v6B%ZmWbTSUMvwO63QmPlvmK>G?p!cBLNs*(9;p850z$WY! zK7@8O6wq4w4{xDI464RLj@ZE@Z3NRf>?XClk{hzC5&}V7w(oj=!is||?0hI)-487i zH%`M8#dPb5)Cl9+*c*c!5uZ^*vW~GD&~~xCg7eJ*m7{!Q9E1ASuJY>2_u;`Ut&-bG z3jkzQ1a1Q)gWsid^RD$z4H#~M58{_oLG${2mh4n7jH|&P=Dl8DEdK!GF0o}4U(>qx z!t&|z#G>i0#Du8BWw;sSeJeDXifpFikIRvR`d4FJiL_{RwHNqXrj9a3caw~P>S}k) zbi0;>jjk|31B35fJaMR+#5#tnA(Xn2ka9hUu7B#=$nA_QW0wO3n>hll@MO&o!@88> zJWH`!L6ieOm)?)mG<4Kvd$vd&%3y+=oDR7^K~t9C8#B`hZ7r7J^x4)40AT2$l>6~O zUVKMrQ)G7UBfpf5xWz0}G6sK#A}S=dk(o%zEsU!k*r2bh+ABy^KrbwegcamtxUPuL z;~Ao;bheSliz39!=shTwj^g6nL%;B$%Lb9Kst;;sqKht>41~r;+rkEyJc4uEd;o0zWTOL=xj`BW!N3XH-#+c@qcjHJlnB|HT=&JG9D6-3MiB^@)< zr!^%Zmn@*;r!>GEYqv@N0HU-TG-H<%&nP~-hzIsHnUdeZ+Fh}^K?IJpBY|Xts>Vw2 zLGN5M-k(D9Ug$B&^U=q7EL?aaErZn<4r?E*17UCA z%>=PaAjmQ<0j_9&W`>i!Geq;>?@(@euAvKUEsfpOa4VuTt+W{%3-_%JwUy_=_tHx$ z$0IZ>VtAZ5&#A}sG_rpJjO@!ao30%jYq86P^6ovTV?}v}YMJ9vq65|1#tqY_ST3WH zn*cXBucg@Bc(4W?@mK-M`+UQ(s;AVQNy}&36^sb?&nM*rk9rbTma3u9=z7F+Tmp69MEAw@Z1EWVYu8u9q2HOmQ)Zl zvK^>{B>DCwBXJ(50*La;U2+IyC-mq3eQV~wlNP^{*TSA5VmMpX+zRUCANHNio%19sTNYy0%vB5wVBm=7KolhjfTTy~mn0 zIqFV0{VG1lZw&bAlAvE8 z_a60?hgF@mIqvS0z!MQ6E6BkdamQ>`l2cT~X{K`XSa!2Q1E?s#u{^&&oAl#~Cej0Y zpu-$-v+TMo6-V;z9e+bfDD{pEn|==A{xRT7x@i$@;4&z6$YKUSz&-2L$oM16`AG#i z{WC*Xo+8%*Nj!91EP!N=)kUTK#L}(Ahik5OvGUhkxK)y|^tTYpZW=%VmMx9OGEY-L zUBf8+SuR#Z#uqMgMk}re*dy63+-$1FB^>fN#S0FTab%L*&ZWRVhZ3$?z47T+h*LD$ zMa7I!1~)qxu3e>Fg-@nB)5X>F{{RPaY8H=$KmI|V-lqK+w?ot;mq@k{%8aWRUK^2) zJ$JY#kxb99u*M0`J?h;$-fL-ZwE0!l-WLT2UCZVl(uZ$@(3PXya(^-B2D-%f zN3lJrg!*XpJ7k(I3Bm?~Ej&DocpsheKYGmSw-0r2tmln@DuI9o1}H>k2#8OuO`{^5 zLO3cj_M$CalW|VC=820M5i0LMLk?JDuehPhW1MxYVwODAYZ&+RuU0W+V{-~;ZpJVV zPo)N7t(K)Sj}G5*K6eKLIK?u*w~JW#ep~CiiH+<-WN?P^H>n@ur199%{TQO8pZ(sL zuFV9H5VFSTNXQJkPCamX)olvVUqRI3n*2ShN2cE~xrgQ;k#;;~vB5oSOTeZz_?rIC z9R@8j(Lmohx*{``PsWgm*=(*-NEilBQJN?W z`iH~XoVT{2rd%=f=~_!^3Y?S2Y||lGk@&+>wSR~qX;Z|K7{J<22VBy}*Y7T%hBd@V z4+|4-ai66;yU-z(qmxZpVYj$&s?#nvQW@NXLDKh0e%Z|L_t<}O* zGOGj=lt|iWV>{S8Ni4j%_895yMa^i&#yg0k!g#qY8T9S+`cp~Jy%S}3w+nf3<397W zVNf;|GuHx((^T9uu>}=KW-8ch^yAXF<VEY! z`D?kSYgTa)0o*Yll6xQ4y4NK`y$bY#H-U5^NTE!fpvlmTN*s0^bH_nei|rJ_SR|7ED_A3f^3O6`plm7rc zC@@D4Lv$`J7rqZgZZdnpwi9!UO)`m&`|}82*G)Ntt?GtICnzg0but;77GiFh^W{^Io>pzG~@i zRb1Uf;rElvC>Y1sQm-t3rFzm^={FPGDhUL@JT4A!4QJatZRa2!J%8Y)i?w3OQyl89 z>h^Z5&*8yrh(J7fyu^R|)Vg~&Y0g#l^yGSR_M(hiBoW4d{%n3=2T!dG@i|?>1`F4B zHIosXNR~@!I~DT}+N)iv8koT_$~-_+l?n+s`hU;XfRK)(fO(=~qs?$uG2B;iSjD!$ zcz~Z;ax5j14-zyiqoEY7m@`R*?Vm5c6P{IvBp?2(N2zJovfeUilG^;0$c}Fhcm)ms z@6K`$N|c=s5NnGlj;7W(sc0@&5-hfSGiSIx*mo6A#Fndf@XYrz10=SxC`lwI#0Yrj z+cdY}&1r_m9>cvm(6pUDQL>!gUc3{A3lgG(%Ww(y&!t{Ym6J%X;yoR-%}2ry<1PU4 z6m=tve$`f^@a4vprd!=zPi`9H1z-=E06oZ{rQmvr*i>o7JzlJ1y(zAZtF?=jTw%Ry z7~NUj39Z$G2FRfA+!=97!hy@3o>rt9#LQf&G!ruuH$7@Wc=q+D0QW-pZhcf4PvO9) zmLrz>R^n3z7o$$O(6@n{gBeCmFuk|~78wY!U`A|p-aC2J4XUy*}+V)=-L%VU{ z@tjtd;EguhQojP`NY$fY%M`7FE_mzhikzfUD6?I)hSOS;_-e%7Du65K^D@}c?9VZfBN+sDQSpf5s{KuNM=Tg#y7e`Ih9!aEJl#({W z`i`EI&JM~UUAC)lW))(POk4A1cI_l!0iWw%Mw>~3*Wt@^JTZ`{tgGFL9kJe$Xf!Lh z_+4-$SWG~uz{M}{t+dwgUn*P^yn}*AZ2tgi^QQ?v26948esgme4Fkt!r-pIWyB}&+ zw^Bn9`F8yL5=D0KaXE4IehYC-vexNVCKn;(0lzjgfM~OEbK@<$%!vv&k$}$CZ$s%i%5431S(8qK%+2 zHN=UdV9v^i+mlM-Y7ViqY1=r!Jz4TIQ(axGW@zk2yayQXU>?pIF%TG29?!DBc#`Ks7f95tt)#X5RwH@cjQb3IO>c&8LG>iF)wIELG-emGW{e2A z+@zADp8aV6w~g*2j@x-Iz#w7IJq0vzP#d-ptCo)bXSihy?pP|Gah^Es+NXbUI;0Zt zQs<0Bz=B3NKKQ|{bRUCDB)HS>hs(^-^rTbGG2(;ex^fvNM$Q1> zD-5g(9+~Y zU-eH%`Mm}^=$CZXjfMld9zU)t=lTti`GV4+!2G1rwiJCMMO8@DwgRZh;*tDYa~7+7 zuxx(`SIX*tS`FZhnQMzhiZ8)jZ0>mmyqR|ji~+_l4}Yyou*yb~+y0)`9C>6=a7Q>E zwF1v@V2a{t9aVw6=kIDu|n2$hfml}kZV0iJ%x!5lDIU|}y z1hjPT3U4$^NbjVP90EuJKsu9*)pxo@!(nZR-JC8sC+k#B#&V)sMvZwL@%|$Y$bu4E z0hr^UTz5YFQ-6oGTjcnn)%66sTR5|}8<0-VDaV-g=O5CgCAvIhnm00hU!+Ej46P&X zIsX8*dU|HFn*On6a}u_ZAB8dkM~Zl6_2#81FM>EpdL)G0&!OGHD2{Q`ac_xu!I|E6cM`QX_U1N&Oco9T|vCbFs zRTH!)&`^F}RGMS3WNrtkKHk)A&xt&HBRegIND9M0dT$0oi4%A$(T7ZpwKUYzPLUa- z4Cp)7YQ<>K=%{t!;>^sDdM8u#som)VL%UasZx$J{zH!Q*N?y87PJm^%RvapW?LxJ* zf%@_9PU56PxW_^GWb1d^8f}rshI6+$9)s&$`0fol9byP95o1`Q+aiOI8$8!MqqKF! zuC`>IImzHvOxs%^;En;Ofsjl(n@0-8jp?1l6Y1$)y+xYTTt?f_oDgYNV=$UnUzy0lw6rdZ#_ zjd%~zi~}@{hx%`<*l8EHQ(wv9szsm6p5v$ML~B~7@$G)zy5gi1 zZm^_PhhN>#b7cCJw2|CIr=v%S4m!5c{JpbECBJFNi{=dCNPz(pZXEW(q=Nb^pn;%< z;?GmJ7ZI`<4&ATlde9~oc}jpzPJY$UorzRaF*3?|;CVp$RV8ulOk==;ql)1{Sj0+T z)Rj&>s~9E@8!JsMqq`woi98^2ourBn!v}e$!m4we0KCw8lnEHe0FE*5Q$Z0p8;&ab z3zxIJisCXuM%l@D5EAe(U*o{(cIqo2uGLEWIk+>>;l&JgFlM#_TRB4Pv^{-Yj;nuxC z#G`VJkmJ{M`^3Vwr{$!YN;$RmuYeBc6cnwtq=)n9W!BoSbh z^MCb22&JFIDmSWf&5=s{5rV_vc)>OJvhIX0f%6LdP2tGNBM0)LH;HjyHoYBgaMQ z)};*53;2{0;GC8tj-Iq=v`X(4?;uGTk>bfJ52@ptYooy$*`$*xjxg8+G4kS;PYT95 z7b+zFW&B19yUWlIQ&c7D+XYt1&pAAr5%5X-L6+LIQgTaqPik*#aTyP_BxPZSstvH0_wei=D4Sf4Y>m(cNOCQ0R2dQYDM@lQB?6P zs#TP8{^41R^t96lgeOxeB(j5(lj~gn0KuG->k^YzfaSLa2{?Z!4hYUG)%38QY0cEs z{6`0bMdk5w3EC5GarYgoH2YP}B-fG6E4K z9#8ly6R+vRP1WYLhIE=Z+Y2B)MM+(qJ!x4~cAH}?xu4t@)IW54BkU zHqT94i|D0+Z739iwgd``ii>VeWiAyi4lPgPd$Apk(n9Lo5^$L!;}5!twK20ON4LC zmxsk+j+;pX_s{D_%qjq<5fhH56-?6-ah$2FkS>OaueFwtmbNBHnp9-Ea&jaGI8Z*A z=9fnaTVEG=Rt^TxaC6r*Qm;(qeiqoYmpaw6Pb0`ogO_66`c&=*$;BW>1>b}0D_sgL zcjE%9W4q`n%y(!-&sy|De4ugHn#L@;P_kfP{VD^?SjEt`8@4;vjv23~unlapt+Jur zv5ww4(#ybuLo03tScB`HYPJUnFe%|bH#s3KV-D#s$ApPURFpT29LQ|Z>4OK86f z!6;Vjvbo!BEv(ZW&lcjlPy3S}n0tEHGxTID)Ne+!2a6@U zE&O0C?~WZu0ljm;to)YJtY%Xah_`LtM;Y|btzI|=LgLnIYzdIYTn1gf!7<5}RnIFm>%YZxeD|urhJQJJNn6zMo=g?;W~s%e0_A?{8`i3r8=lZ)clz%B;bdkji%eK9s(3 z6}B)s_A81?qd5}!h~x5X1Gy-@X}*VfAur(C%_cx6p#Jo-@J8(4XtK+Bh~lxijDvz0 z4hODtOMlc&A+*gT>d=A$xc{wBaiV@pDnyE2quht zcj&Sz&NJ(^xv1Uh@md5g42rU@<2Ut*- zQrwdANQyClJUjp@XT?T4WsSg5`9}tv#4Iiv%K2s`iOxSZIQIAAw0fn|YZsOmYSM*f zjU?HOWN;V{UH~;Y6i+D4YG=aME+#T;m1M{xj&sf`SJFNEEz>D^90ZZU{Kudt^rl;) zjGA?iM1xJ1;lxiXw1=-F7z5A@P|?8+wwTKVg^c*}p6WY(v>FNkxrx%%q-e+_EU9f_( zDLaPTaa`@ou=z$zt`XnUrBWNu{i~=#c;J&(;n>gaN zzYXi~!=qnm_XUTE6PSqg$4}`>{4lcJz&wsO%nE+r|d%-A6zvP-7d0 zUZCVxXB+Ia2LAy609k2wHgSCEGZO(>V`afFk1GNO0Uy$_?ePYt?H2p#SU}m2duMOb znMRFa*4m7oEVuANsV3604mP%X;;pmQ68$ao`;sBGj!zJPIC6WR-h`9%0Dll^5?Xk2 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 X02=am<3gTZLCs0_G3{CM4(I>b8czns diff --git a/functions/function/spel-function/README.adoc b/functions/function/spel-function/README.adoc deleted file mode 100644 index 0545d1d5..00000000 --- a/functions/function/spel-function/README.adoc +++ /dev/null @@ -1,28 +0,0 @@ -# SpEL Function - -This module provides a SpEL function that can be reused and composed in other applications. -The function can be used to apply SpEL transformations on data based on a SpEL expression. - -## Beans for injection - -You can import the `SpelFunctionConfiguration` in a Spring Boot application and then inject the following bean. - -`spelFunction` - -You can use `spelFunction` as a qualifier when injecting. - -Once injected, you can use the `apply` method of the `Function` to invoke it and get the result. - -## Configuration Options - -All configuration properties are prefixed with `spel`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/spel/SpelFunctionProperties.java[SpelFunctionProperties.java] - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/spel/SpelFunctionApplicationTests.java[test suite] for examples of how this function is used. - -## Other usage - -See this link:../../../applications/processor/transform-processor/README.adoc[README] where this function is used to create a Spring Cloud Stream transformer application. \ No newline at end of file diff --git a/functions/function/spel-function/pom.xml b/functions/function/spel-function/pom.xml deleted file mode 100644 index 8bba8c28..00000000 --- a/functions/function/spel-function/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/function/spel-function/src/main/java/org/springframework/cloud/fn/spel/SpelFunctionConfiguration.java b/functions/function/spel-function/src/main/java/org/springframework/cloud/fn/spel/SpelFunctionConfiguration.java deleted file mode 100644 index c3279d13..00000000 --- a/functions/function/spel-function/src/main/java/org/springframework/cloud/fn/spel/SpelFunctionConfiguration.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.spel; - -import java.util.function.Function; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.integration.transformer.ExpressionEvaluatingTransformer; -import org.springframework.messaging.Message; - -@Configuration -@EnableConfigurationProperties(SpelFunctionProperties.class) -public class SpelFunctionConfiguration { - - @Bean - public Function, Message> spelFunction( - ExpressionEvaluatingTransformer expressionEvaluatingTransformer) { - - return message -> expressionEvaluatingTransformer.transform(message); - } - - @Bean - public ExpressionEvaluatingTransformer expressionEvaluatingTransformer( - SpelFunctionProperties spelFunctionProperties) { - - return new ExpressionEvaluatingTransformer(new SpelExpressionParser() - .parseExpression(spelFunctionProperties.getExpression())); - } - -} diff --git a/functions/function/spel-function/src/main/java/org/springframework/cloud/fn/spel/SpelFunctionProperties.java b/functions/function/spel-function/src/main/java/org/springframework/cloud/fn/spel/SpelFunctionProperties.java deleted file mode 100644 index 36ba3da9..00000000 --- a/functions/function/spel-function/src/main/java/org/springframework/cloud/fn/spel/SpelFunctionProperties.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.spel; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.standard.SpelExpressionParser; - -/** - * Configuration properties for the SpEL function. - * - * @author Gary Russell - * @author Artem Bilan - */ -@ConfigurationProperties("spel.function") -public class SpelFunctionProperties { - - private static final Expression DEFAULT_EXPRESSION = new SpelExpressionParser().parseExpression("payload"); - - /** - * A SpEL expression to apply. - */ - private String expression = DEFAULT_EXPRESSION.getExpressionString(); - - public String getExpression() { - return this.expression; - } - - public void setExpression(String expression) { - this.expression = expression; - } - -} diff --git a/functions/function/spel-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/function/spel-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 6cd2fda3..00000000 --- a/functions/function/spel-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.spel.SpelFunctionConfiguration diff --git a/functions/function/spel-function/src/test/java/org/springframework/cloud/fn/spel/SpelFunctionApplicationTests.java b/functions/function/spel-function/src/test/java/org/springframework/cloud/fn/spel/SpelFunctionApplicationTests.java deleted file mode 100644 index e3e00851..00000000 --- a/functions/function/spel-function/src/test/java/org/springframework/cloud/fn/spel/SpelFunctionApplicationTests.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.spel; - -import java.util.function.Function; - -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.util.MimeTypeUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest(properties = "spel.function.expression=payload.toUpperCase()") -@DirtiesContext -public class SpelFunctionApplicationTests { - - @Autowired - Function, Message> transformer; - - @Test - public void testTransform() { - final Message transformed = this.transformer.apply(new GenericMessage<>("hello,world")); - assertThat(transformed.getPayload()).isEqualTo("HELLO,WORLD"); - } - - @Test - public void testJson() { - Message message = MessageBuilder.withPayload("{\"foo\":\"bar\"}") - .setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON).build(); - final Message transformed = this.transformer.apply(message); - assertThat(transformed.getPayload()).isEqualTo("{\"FOO\":\"BAR\"}"); - } - - @SpringBootApplication - static class SpelFunctionTestApplication { - - } -} diff --git a/functions/function/splitter-function/README.adoc b/functions/function/splitter-function/README.adoc deleted file mode 100644 index 7c28989d..00000000 --- a/functions/function/splitter-function/README.adoc +++ /dev/null @@ -1,25 +0,0 @@ -# Splitter Function - -This module provides a header enricher function that can be reused and composed in other applications. - -## Beans for injection - -You can import the `SpliiterFunctionConfiguration` in a Spring Boot application and then inject the following bean. - -`splitterFunction` - -You can use `splitterFunction` as a qualifier when injecting. - -Once injected, you can use the `apply` method of the `Function` to invoke it and get the result. - -## Configuration Options - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/splitter/SplitterFunctionProperties.java[SplitterFunctionProperties.java] - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/splitter/SplitterFunctionApplicationTests.java[test suite] for examples of how this function is used. - -## Other usage - -See this link:../../../applications/processor/splitter-processor/README.adoc[README] where this function is used to create a Spring Cloud Stream application. \ No newline at end of file diff --git a/functions/function/splitter-function/pom.xml b/functions/function/splitter-function/pom.xml deleted file mode 100644 index e752c3f7..00000000 --- a/functions/function/splitter-function/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - splitter-function - splitter-function - Spring Native Function for Splitter - - - - org.springframework.integration - spring-integration-file - - - - diff --git a/functions/function/splitter-function/src/main/java/org/springframework/cloud/fn/splitter/SplitterFunctionConfiguration.java b/functions/function/splitter-function/src/main/java/org/springframework/cloud/fn/splitter/SplitterFunctionConfiguration.java deleted file mode 100644 index f8adff49..00000000 --- a/functions/function/splitter-function/src/main/java/org/springframework/cloud/fn/splitter/SplitterFunctionConfiguration.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright 2011-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.splitter; - -import java.nio.charset.Charset; -import java.util.List; -import java.util.function.Function; - -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; - -import org.springframework.boot.autoconfigure.condition.AnyNestedCondition; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Conditional; -import org.springframework.context.annotation.Configuration; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.integration.channel.ReactiveStreamsSubscribableChannel; -import org.springframework.integration.file.splitter.FileSplitter; -import org.springframework.integration.splitter.AbstractMessageSplitter; -import org.springframework.integration.splitter.DefaultMessageSplitter; -import org.springframework.integration.splitter.ExpressionEvaluatingSplitter; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageChannel; - -@Configuration -@EnableConfigurationProperties(SplitterFunctionProperties.class) -public class SplitterFunctionConfiguration { - - @Bean - public Function, List>> splitterFunction(AbstractMessageSplitter messageSplitter, - SplitterFunctionProperties splitterFunctionProperties) { - - messageSplitter.setApplySequence(splitterFunctionProperties.isApplySequence()); - ThreadLocalFluxSinkMessageChannel outputChannel = new ThreadLocalFluxSinkMessageChannel(); - messageSplitter.setOutputChannel(outputChannel); - return message -> { - messageSplitter.handleMessage(message); - return outputChannel.publisherThreadLocal.get(); - }; - } - - @Bean - @ConditionalOnProperty(prefix = "splitter", name = "expression") - public AbstractMessageSplitter expressionSplitter(SplitterFunctionProperties splitterFunctionProperties) { - return new ExpressionEvaluatingSplitter( - new SpelExpressionParser() - .parseExpression(splitterFunctionProperties.getExpression())); - } - - @Bean - @ConditionalOnMissingBean - @Conditional(FileSplitterCondition.class) - public AbstractMessageSplitter fileSplitter(SplitterFunctionProperties splitterFunctionProperties) { - Boolean markers = splitterFunctionProperties.getFileMarkers(); - String charset = splitterFunctionProperties.getCharset(); - if (markers == null) { - markers = false; - } - FileSplitter fileSplitter = new FileSplitter(true, markers, splitterFunctionProperties.getMarkersJson()); - if (charset != null) { - fileSplitter.setCharset(Charset.forName(charset)); - } - return fileSplitter; - } - - @Bean - @ConditionalOnMissingBean - public AbstractMessageSplitter defaultSplitter(SplitterFunctionProperties splitterFunctionProperties) { - DefaultMessageSplitter defaultMessageSplitter = new DefaultMessageSplitter(); - defaultMessageSplitter.setDelimiters(splitterFunctionProperties.getDelimiters()); - return defaultMessageSplitter; - } - - static class FileSplitterCondition extends AnyNestedCondition { - - FileSplitterCondition() { - super(ConfigurationPhase.REGISTER_BEAN); - } - - @ConditionalOnProperty(prefix = "splitter", name = "charset") - static class Charset { - } - - @ConditionalOnProperty(prefix = "splitter", name = "fileMarkers") - static class FileMarkers { - } - - } - - private static final class ThreadLocalFluxSinkMessageChannel - implements MessageChannel, ReactiveStreamsSubscribableChannel { - - private final ThreadLocal>> publisherThreadLocal = new ThreadLocal<>(); - - @Override - @SuppressWarnings("unchecked") - public void subscribeTo(Publisher> publisher) { - this.publisherThreadLocal.set(Flux.from(publisher).collectList().cast(List.class).block()); - } - - @Override - public boolean send(Message message, long l) { - throw new UnsupportedOperationException("This channel only supports a reactive 'subscribeTo()' "); - } - - } - -} diff --git a/functions/function/splitter-function/src/main/java/org/springframework/cloud/fn/splitter/SplitterFunctionProperties.java b/functions/function/splitter-function/src/main/java/org/springframework/cloud/fn/splitter/SplitterFunctionProperties.java deleted file mode 100644 index eef233b0..00000000 --- a/functions/function/splitter-function/src/main/java/org/springframework/cloud/fn/splitter/SplitterFunctionProperties.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2019-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.splitter; - -import jakarta.validation.constraints.AssertTrue; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * Configuration properties for the Splitter Processor app. - * - * @author Gary Russell - * @author Artem Bilan - */ -@ConfigurationProperties("splitter") -@Validated -public class SplitterFunctionProperties { - - /** - * A SpEL expression for splitting payloads. - */ - private String expression; - - /** - * When expression is null, delimiters to use when tokenizing - * {@link String} payloads. - */ - private String delimiters; - - /** - * Set to true or false to use a {@code FileSplitter} (to split - * text-based files by line) that includes - * (or not) beginning/end of file markers. - */ - private Boolean fileMarkers; - - /** - * When 'fileMarkers == true', specify if they should be produced - * as FileSplitter.FileMarker objects or JSON. - */ - private boolean markersJson = true; - - /** - * The charset to use when converting bytes in text-based files - * to String. - */ - private String charset; - - /** - * Add correlation/sequence information in headers to facilitate later - * aggregation. - */ - private boolean applySequence = true; - - public String getExpression() { - return this.expression; - } - - public void setExpression(String expression) { - this.expression = expression; - } - - public String getDelimiters() { - return this.delimiters; - } - - public void setDelimiters(String delimiters) { - this.delimiters = delimiters; - } - - public Boolean getFileMarkers() { - return this.fileMarkers; - } - - public void setFileMarkers(Boolean fileMarkers) { - this.fileMarkers = fileMarkers; - } - - public boolean getMarkersJson() { - return this.markersJson; - } - - public void setMarkersJson(boolean markersJson) { - this.markersJson = markersJson; - } - - public String getCharset() { - return this.charset; - } - - public void setCharset(String charset) { - this.charset = charset; - } - - public boolean isApplySequence() { - return this.applySequence; - } - - public void setApplySequence(boolean applySequence) { - this.applySequence = applySequence; - } - - @AssertTrue(message = "'delimiters' is not allowed when an 'expression' is provided") - public boolean isDelimitersAllowed() { - return this.expression == null || this.delimiters == null; - } - - @AssertTrue(message = "File properties are not allowed when an 'expression' or 'delimiters' property is provided") - public boolean isFilePropsAllowed() { - return !(this.expression != null || this.delimiters != null) || this.fileMarkers == null && this.charset == null; - } - -} diff --git a/functions/function/splitter-function/src/test/java/org/springframework/cloud/fn/splitter/SplitterFunctionApplicationTests.java b/functions/function/splitter-function/src/test/java/org/springframework/cloud/fn/splitter/SplitterFunctionApplicationTests.java deleted file mode 100644 index 5c3a1baf..00000000 --- a/functions/function/splitter-function/src/test/java/org/springframework/cloud/fn/splitter/SplitterFunctionApplicationTests.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2011-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.splitter; - -import java.util.List; -import java.util.function.Function; - -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest(properties = "splitter.expression=payload.split(',')") -@DirtiesContext -public class SplitterFunctionApplicationTests { - - @Autowired - Function, List>> splitter; - - @Test - public void testExpressionSplitter() { - List> messageList = this.splitter.apply(new GenericMessage<>("hello,world")); - assertThat(messageList).extracting(m -> m.getPayload().toString()).contains("hello", "world"); - } - - @SpringBootApplication - static class SplitterFunctionTestApplication { - } -} diff --git a/functions/function/task-launch-request-function/README.adoc b/functions/function/task-launch-request-function/README.adoc deleted file mode 100644 index c3e8b65e..00000000 --- a/functions/function/task-launch-request-function/README.adoc +++ /dev/null @@ -1,22 +0,0 @@ -# Task Launch Request Function - -This module provides a function that can be reused and composed in other applications to transform the output to a link:src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequest.java[TaskLaunchRequest] -that can be used as input to the Tasklauncher function to launch a task. - -## Beans for injection - -You can import the `TaskLaunchRequestFunctionConfiguration` in a Spring Boot application and then inject the following bean. - -`taskLaunchRequestFunction` as a link:src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunction.java[TaskLaunchRequestFunction]. - -You can use `taskLaunchRequestFunction` as a qualifier when injecting. - -Once injected, you can use the `apply` method of the `Function` to invoke it and get the result. - -## Configuration Options - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionProperties.java[TaskLaunchRequestFunctionProperties.java] - -## Examples - -See this link:src/test/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionApplicationTests.java[test suite] for examples of how this function is used. diff --git a/functions/function/task-launch-request-function/pom.xml b/functions/function/task-launch-request-function/pom.xml deleted file mode 100644 index fef080f3..00000000 --- a/functions/function/task-launch-request-function/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - task-launch-request-function - task-launch-request-function - - diff --git a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/CommandLineArgumentsMessageMapper.java b/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/CommandLineArgumentsMessageMapper.java deleted file mode 100644 index 8cac1b0f..00000000 --- a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/CommandLineArgumentsMessageMapper.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import java.util.Collection; - -import org.springframework.integration.handler.MessageProcessor; - -public interface CommandLineArgumentsMessageMapper extends MessageProcessor> { -} diff --git a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParser.java b/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParser.java deleted file mode 100644 index 48f01f0e..00000000 --- a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParser.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - -import org.springframework.util.StringUtils; - -/** - * Parses a comma delimited list of key value pairs in which the values can contain commas as well. - * - * @author Chris Schaeffer - * @author David Turanski - **/ -abstract class KeyValueListParser { - - static Map parseCommaDelimitedKeyValuePairs(String value) { - Map keyValuePairs = new HashMap<>(); - - if (StringUtils.isEmpty(value)) { - return keyValuePairs; - } - - ArrayList pairs = new ArrayList<>(); - - String[] candidates = StringUtils.commaDelimitedListToStringArray(value); - - for (int i = 0; i < candidates.length; i++) { - if (i > 0 && !candidates[i].contains("=")) { - pairs.add(pairs.get(pairs.size() - 1) + "," + candidates[i]); - } - else { - pairs.add(candidates[i]); - } - } - - for (String pair : pairs) { - addKeyValuePair(pair, keyValuePairs); - } - - return keyValuePairs; - } - - private static void addKeyValuePair(String pair, Map properties) { - int firstEquals = pair.indexOf('='); - if (firstEquals != -1) { - properties.put(pair.substring(0, firstEquals).trim(), pair.substring(firstEquals + 1).trim()); - } - } -} diff --git a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequest.java b/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequest.java deleted file mode 100644 index 3644499b..00000000 --- a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequest.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class TaskLaunchRequest { - @JsonProperty("args") - private List commandlineArguments = new ArrayList<>(); - - @JsonProperty("deploymentProps") - private Map deploymentProperties = new HashMap<>(); - - @JsonProperty("name") - private String taskName; - - public void setCommandlineArguments(List commandlineArguments) { - this.commandlineArguments = new ArrayList<>(commandlineArguments); - } - - public List getCommandlineArguments() { - return this.commandlineArguments; - } - - public void setDeploymentProperties(Map deploymentProperties) { - this.deploymentProperties = deploymentProperties; - } - - public Map getDeploymentProperties() { - return this.deploymentProperties; - } - - public void setTaskName(String taskName) { - this.taskName = taskName; - } - - public String getTaskName() { - return this.taskName; - } - - public TaskLaunchRequest addCommmandLineArguments(Collection args) { - this.commandlineArguments.addAll(args); - return this; - } -} diff --git a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunction.java b/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunction.java deleted file mode 100644 index 8497b395..00000000 --- a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunction.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import java.util.function.Function; - -import org.springframework.messaging.Message; - -/** - * A marker interface useful for unambiguous dependency injection of this Function. - * - * @author David Turanski - **/ -@FunctionalInterface -public interface TaskLaunchRequestFunction extends Function, Message> { - -} diff --git a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionConfiguration.java b/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionConfiguration.java deleted file mode 100644 index 475c1402..00000000 --- a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionConfiguration.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.integration.expression.ExpressionUtils; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.util.StringUtils; - -/** - * Configuration for a {@link TaskLaunchRequestFunction}, provided as a common function that can be composed with other Suppliers or - * Functions to transform any {@link Message} to a {@link TaskLaunchRequest} which may be used as input to the {@code TaskLauncherFunction} to launch a task. - * - * Command line arguments used by the task, as well as the task name itself may be statically configured or extracted from - * the message contents, using SpEL. See {@link TaskLaunchRequestFunctionProperties} for details. - * - * It is also possible to provide your own implementations of {@link CommandLineArgumentsMessageMapper} and {@link TaskNameMessageMapper}. - * - * @author David Turanski - **/ -@AutoConfiguration -@EnableConfigurationProperties(TaskLaunchRequestFunctionProperties.class) -public class TaskLaunchRequestFunctionConfiguration { - - /** - * The function name. - */ - public final static String TASK_LAUNCH_REQUEST_FUNCTION_NAME = "taskLaunchRequestFunction"; - - /** - * A {@link java.util.function.Function} to transform a {@link Message} payload to a - * {@link TaskLaunchRequest}. - * - * @param taskLaunchRequestMessageProcessor a {@link TaskLaunchRequestMessageProcessor}. - * - * @return a {@code TaskLaunchRequest} Message. - */ - @Bean(name = TASK_LAUNCH_REQUEST_FUNCTION_NAME) - public TaskLaunchRequestFunction taskLaunchRequest( - TaskLaunchRequestMessageProcessor taskLaunchRequestMessageProcessor) { - return message -> taskLaunchRequestMessageProcessor.postProcessMessage(message); - } - - @Bean - public TaskLaunchRequestSupplier taskLaunchRequestInitializer( - TaskLaunchRequestFunctionProperties taskLaunchRequestProperties) { - return new TaskLaunchRequestPropertiesInitializer(taskLaunchRequestProperties); - } - - @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") - @Bean - public TaskLaunchRequestMessageProcessor taskLaunchRequestMessageProcessor( - TaskLaunchRequestSupplier taskLaunchRequestInitializer, - TaskLaunchRequestFunctionProperties properties, - EvaluationContext evaluationContext, - @Nullable TaskNameMessageMapper taskNameMessageMapper, - @Nullable CommandLineArgumentsMessageMapper commandLineArgumentsMessageMapper) { - - if (taskNameMessageMapper == null) { - taskNameMessageMapper = taskNameMessageMapper(properties, evaluationContext); - } - - if (commandLineArgumentsMessageMapper == null) { - commandLineArgumentsMessageMapper = commandLineArgumentsMessageMapper(properties, evaluationContext); - } - - return new TaskLaunchRequestMessageProcessor(taskLaunchRequestInitializer, - taskNameMessageMapper, - commandLineArgumentsMessageMapper); - } - - @Bean - public EvaluationContext evaluationContext(BeanFactory beanFactory) { - return ExpressionUtils.createStandardEvaluationContext(beanFactory); - } - - private TaskNameMessageMapper taskNameMessageMapper(TaskLaunchRequestFunctionProperties taskLaunchRequestProperties, - EvaluationContext evaluationContext) { - if (StringUtils.hasText(taskLaunchRequestProperties.getTaskNameExpression())) { - SpelExpressionParser expressionParser = new SpelExpressionParser(); - Expression taskNameExpression = expressionParser - .parseExpression(taskLaunchRequestProperties.getTaskNameExpression()); - return new ExpressionEvaluatingTaskNameMessageMapper(taskNameExpression, evaluationContext); - } - - return message -> taskLaunchRequestProperties.getTaskName(); - } - - private CommandLineArgumentsMessageMapper commandLineArgumentsMessageMapper( - TaskLaunchRequestFunctionProperties taskLaunchRequestFunctionProperties, - EvaluationContext evaluationContext) { - return new ExpressionEvaluatingCommandLineArgsMapper(taskLaunchRequestFunctionProperties.getArgExpressions(), - evaluationContext); - } - - private static class TaskLaunchRequestPropertiesInitializer extends TaskLaunchRequestSupplier { - TaskLaunchRequestPropertiesInitializer( - TaskLaunchRequestFunctionProperties taskLaunchRequestProperties) { - - this.commandLineArgumentSupplier( - () -> new ArrayList<>(taskLaunchRequestProperties.getArgs())); - - this.deploymentPropertiesSupplier( - () -> KeyValueListParser.parseCommaDelimitedKeyValuePairs( - taskLaunchRequestProperties.getDeploymentProperties())); - - this.taskNameSupplier(() -> taskLaunchRequestProperties.getTaskName()); - } - } - - private static class ExpressionEvaluatingTaskNameMessageMapper implements TaskNameMessageMapper { - - private final Expression expression; - private final EvaluationContext evaluationContext; - - ExpressionEvaluatingTaskNameMessageMapper(Expression expression, EvaluationContext evaluationContext) { - this.evaluationContext = evaluationContext; - this.expression = expression; - } - - @Override - public String processMessage(Message message) { - return expression.getValue(evaluationContext, message).toString(); - } - } - - private static class ExpressionEvaluatingCommandLineArgsMapper implements CommandLineArgumentsMessageMapper { - private final Map argExpressionsMap; - - private final EvaluationContext evaluationContext; - - ExpressionEvaluatingCommandLineArgsMapper(String argExpressions, EvaluationContext evaluationContext) { - this.evaluationContext = evaluationContext; - this.argExpressionsMap = new HashMap<>(); - if (StringUtils.hasText(argExpressions)) { - SpelExpressionParser expressionParser = new SpelExpressionParser(); - - KeyValueListParser.parseCommaDelimitedKeyValuePairs(argExpressions).forEach( - (k, v) -> argExpressionsMap.put(k, expressionParser.parseExpression(v))); - } - } - - @Override - public Collection processMessage(Message message) { - return evaluateArgExpressions(message); - } - - private Collection evaluateArgExpressions(Message message) { - List results = new LinkedList<>(); - this.argExpressionsMap.forEach((k, expression) -> results - .add(String.format("%s=%s", k, expression.getValue(this.evaluationContext, message)))); - return results; - } - } - -} diff --git a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionProperties.java b/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionProperties.java deleted file mode 100644 index 8ac70a27..00000000 --- a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionProperties.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import java.util.ArrayList; -import java.util.List; - -import jakarta.validation.constraints.AssertFalse; -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.util.StringUtils; -import org.springframework.validation.annotation.Validated; - -/** - * Base Properties to create a {@link TaskLaunchRequest}. - * - * @author Chris Schaefer - * @author David Turanski - */ -@Validated -@ConfigurationProperties("task.launch.request") -public class TaskLaunchRequestFunctionProperties { - - /** - * Comma separated list of optional args in key=value format. - */ - private List args = new ArrayList<>(); - - /** - * Comma separated list of option args as SpEL expressions in key=value format. - */ - private String argExpressions = ""; - - /** - * Comma delimited list of deployment properties to be applied to the - * TaskLaunchRequest. - */ - private String deploymentProperties = ""; - - /** - * The Data Flow task name. - */ - private String taskName; - - - /** - * A SpEL expression to extract the task name from each Message, using the Message as the evaluation context. - */ - private String taskNameExpression; - - @NotNull - public List getArgs() { - return this.args; - } - - public void setArgs(List args) { - this.args = new ArrayList<>(args); - } - - @NotNull - public String getDeploymentProperties() { - return this.deploymentProperties; - } - - public void setDeploymentProperties(String deploymentProperties) { - this.deploymentProperties = deploymentProperties; - } - - public String getTaskName() { - return taskName; - } - - public void setTaskName(String taskName) { - this.taskName = taskName; - } - - public String getTaskNameExpression() { - return taskNameExpression; - } - - public void setTaskNameExpression(String taskNameExpression) { - this.taskNameExpression = taskNameExpression; - } - - public String getArgExpressions() { - return argExpressions; - } - - public void setArgExpressions(String argExpressions) { - this.argExpressions = argExpressions; - } - - @AssertFalse(message = "Cannot specify both 'taskName' and 'taskNameExpression'.") - public boolean isTaskNameAndTaskNameExpressionSet() { - return StringUtils.hasText(this.taskName) && StringUtils.hasText(this.taskNameExpression); - } - -} diff --git a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestMessageProcessor.java b/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestMessageProcessor.java deleted file mode 100644 index 1bbea190..00000000 --- a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestMessageProcessor.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; -import org.springframework.messaging.core.MessagePostProcessor; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.util.Assert; -import org.springframework.util.MimeTypeUtils; -import org.springframework.util.StringUtils; - -class TaskLaunchRequestMessageProcessor implements MessagePostProcessor { - - private final TaskNameMessageMapper taskNameMessageMapper; - - private final CommandLineArgumentsMessageMapper commandLineArgumentsMessageMapper; - - private final TaskLaunchRequestSupplier taskLaunchRequestInitializer; - - TaskLaunchRequestMessageProcessor(TaskLaunchRequestSupplier taskLaunchRequestInitializer, - TaskNameMessageMapper taskNameMessageMapper, - CommandLineArgumentsMessageMapper commandLIneArgumentsMessageMapper) { - - this.taskLaunchRequestInitializer = taskLaunchRequestInitializer; - - this.taskNameMessageMapper = taskNameMessageMapper; - - this.commandLineArgumentsMessageMapper = commandLIneArgumentsMessageMapper; - - } - - @Override - public Message postProcessMessage(Message message) { - TaskLaunchRequest taskLaunchRequest = taskLaunchRequestInitializer.get(); - - if (!StringUtils.hasText(taskLaunchRequest.getTaskName())) { - taskLaunchRequest.setTaskName(taskNameMessageMapper.processMessage(message)); - Assert.hasText(taskLaunchRequest.getTaskName(), - () -> "'taskName' is required in " + TaskLaunchRequest.class.getName()); - } - - taskLaunchRequest.addCommmandLineArguments(commandLineArgumentsMessageMapper.processMessage(message)); - - MessageBuilder builder = MessageBuilder.withPayload(taskLaunchRequest) - .copyHeaders(message.getHeaders()); - return adjustHeaders(builder).build(); - } - - private MessageBuilder adjustHeaders(MessageBuilder builder) { - builder.setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON); - return builder; - } -} diff --git a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestSupplier.java b/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestSupplier.java deleted file mode 100644 index 1d6bb373..00000000 --- a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestSupplier.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import java.util.List; -import java.util.Map; -import java.util.function.Supplier; - -import org.springframework.util.Assert; - -class TaskLaunchRequestSupplier implements Supplier { - - private Supplier taskNameSupplier; - - private Supplier> commandLineArgumentsSupplier; - - private Supplier> deploymentPropertiesSupplier; - - public TaskLaunchRequestSupplier taskNameSupplier(Supplier taskNameSupplier) { - this.taskNameSupplier = taskNameSupplier; - return this; - } - - public TaskLaunchRequestSupplier commandLineArgumentSupplier(Supplier> commandLineArgumentsSupplier) { - this.commandLineArgumentsSupplier = commandLineArgumentsSupplier; - return this; - } - - public TaskLaunchRequestSupplier deploymentPropertiesSupplier( - Supplier> deploymentPropertiesSupplier) { - this.deploymentPropertiesSupplier = deploymentPropertiesSupplier; - return this; - } - - @Override - public TaskLaunchRequest get() { - - Assert.notNull(this.taskNameSupplier, "'taskNameSupplier' is required."); - - TaskLaunchRequest taskLaunchRequest = new TaskLaunchRequest(); - taskLaunchRequest.setTaskName(this.taskNameSupplier.get()); - - if (this.commandLineArgumentsSupplier != null) { - taskLaunchRequest.setCommandlineArguments(this.commandLineArgumentsSupplier.get()); - } - - if (this.deploymentPropertiesSupplier != null) { - taskLaunchRequest.setDeploymentProperties(this.deploymentPropertiesSupplier.get()); - } - - return taskLaunchRequest; - } -} diff --git a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskNameMessageMapper.java b/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskNameMessageMapper.java deleted file mode 100644 index 09eeb938..00000000 --- a/functions/function/task-launch-request-function/src/main/java/org/springframework/cloud/fn/task/launch/request/TaskNameMessageMapper.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import org.springframework.integration.handler.MessageProcessor; - -@FunctionalInterface -public interface TaskNameMessageMapper extends MessageProcessor { -} diff --git a/functions/function/task-launch-request-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/function/task-launch-request-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index a8ac8f00..00000000 --- a/functions/function/task-launch-request-function/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.task.launch.request.TaskLaunchRequestFunctionConfiguration diff --git a/functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParserTests.java b/functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParserTests.java deleted file mode 100644 index 28d35361..00000000 --- a/functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/KeyValueListParserTests.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import java.util.Map; - -import org.junit.jupiter.api.Test; - -import static junit.framework.TestCase.assertEquals; -import static junit.framework.TestCase.assertTrue; - -/** - * @author Chris Schaefer - * @author David Turanski - */ -public class KeyValueListParserTests { - - @Test - public void testParseSimpleDeploymentProperty() { - Map deploymentProperties = KeyValueListParser.parseCommaDelimitedKeyValuePairs( - "app.sftp.param=value"); - assertTrue("Invalid number of deployment properties: " + deploymentProperties.size(), - deploymentProperties.size() == 1); - assertTrue("Expected deployment key not found", deploymentProperties.containsKey("app.sftp.param")); - assertEquals("Invalid deployment value", "value", deploymentProperties.get("app.sftp.param")); - } - - @Test - public void testParseSimpleDeploymentPropertyMultipleValues() { - Map deploymentProperties = KeyValueListParser.parseCommaDelimitedKeyValuePairs( - "app.sftp.param=value1,value2,value3"); - - assertTrue("Invalid number of deployment properties: " + deploymentProperties.size(), - deploymentProperties.size() == 1); - assertTrue("Expected deployment key not found", deploymentProperties.containsKey("app.sftp.param")); - assertEquals("Invalid deployment value", "value1,value2,value3", deploymentProperties.get("app.sftp.param")); - } - - @Test - public void testParseSpelExpressionMultipleValues() { - Map argExpressions = KeyValueListParser.parseCommaDelimitedKeyValuePairs( - "arg1=payload.substr(0,2),arg2=headers['foo'],arg3=headers['bar']==false"); - - assertTrue("Invalid number of deployment properties: " + argExpressions.size(), - argExpressions.size() == 3); - assertTrue("Expected deployment key not found", argExpressions.containsKey("arg1")); - assertEquals("Invalid deployment value", "payload.substr(0,2)", argExpressions.get("arg1")); - - assertTrue("Expected deployment key not found", argExpressions.containsKey("arg2")); - assertEquals("Invalid deployment value", "headers['foo']", argExpressions.get("arg2")); - - assertTrue("Expected deployment key not found", argExpressions.containsKey("arg3")); - assertEquals("Invalid deployment value", "headers['bar']==false", argExpressions.get("arg3")); - } - - @Test - public void testParseMultipleDeploymentPropertiesSingleValue() { - Map deploymentProperties = KeyValueListParser.parseCommaDelimitedKeyValuePairs( - "app.sftp.param=value1,app.sftp.other.param=value2"); - - assertTrue("Invalid number of deployment properties: " + deploymentProperties.size(), - deploymentProperties.size() == 2); - assertTrue("Expected deployment key not found", deploymentProperties.containsKey("app.sftp.param")); - assertEquals("Invalid deployment value", "value1", deploymentProperties.get("app.sftp.param")); - assertTrue("Expected deployment key not found", deploymentProperties.containsKey("app.sftp.other.param")); - assertEquals("Invalid deployment value", "value2", deploymentProperties.get("app.sftp.other.param")); - } - - @Test - public void testParseMultipleDeploymentPropertiesMultipleValues() { - TaskLaunchRequestFunctionProperties taskLaunchRequestProperties = new TaskLaunchRequestFunctionProperties(); - - Map deploymentProperties = KeyValueListParser.parseCommaDelimitedKeyValuePairs( - "app.sftp.param=value1,value2,app.sftp.other.param=other1,other2"); - - assertTrue("Invalid number of deployment properties: " + deploymentProperties.size(), - deploymentProperties.size() == 2); - assertTrue("Expected deployment key not found", deploymentProperties.containsKey("app.sftp.param")); - assertEquals("Invalid deployment value", "value1,value2", deploymentProperties.get("app.sftp.param")); - assertTrue("Expected deployment key not found", deploymentProperties.containsKey("app.sftp.other.param")); - assertEquals("Invalid deployment value", "other1,other2", deploymentProperties.get("app.sftp.other.param")); - } -} diff --git a/functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionApplicationTests.java b/functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionApplicationTests.java deleted file mode 100644 index f23399ae..00000000 --- a/functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionApplicationTests.java +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import java.io.IOException; -import java.util.Collections; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import org.springframework.boot.WebApplicationType; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.entry; - -/** - * @author David Turanski - **/ -public class TaskLaunchRequestFunctionApplicationTests { - - private SpringApplicationBuilder springApplicationBuilder; - - @BeforeEach - public void setUp() { - springApplicationBuilder = new SpringApplicationBuilder(TaskLaunchRequestFunctionTestApplication.class) - .web(WebApplicationType.NONE); - } - - @Test - @DirtiesContext - public void simpleDataflowTaskLaunchRequest() throws IOException { - - ApplicationContext context = springApplicationBuilder.properties( - "spring.jmx.enabled=false", - "spring.cloud.function.definition=taskLaunchRequestFunction", - "task.launch.request.task-name=foo") - .run(); - - TaskLaunchRequest taskLaunchRequest = verifyAndreceiveTaskLaunchRequest(context); - - assertThat(taskLaunchRequest.getTaskName()).isEqualTo("foo"); - assertThat(taskLaunchRequest.getCommandlineArguments()).hasSize(0); - assertThat(taskLaunchRequest.getDeploymentProperties()).hasSize(0); - } - - @Test - @DirtiesContext - public void dataflowTaskLaunchRequestWithArgsAndDeploymentProperties() throws IOException { - - ApplicationContext context = springApplicationBuilder.properties( - "spring.jmx.enabled=false", "spring.cloud.function.definition=taskLaunchRequestFunction", - "task.launch.request.task-name=foo", "task.launch.request.args=foo=bar,baz=boo", - "task.launch.request.deploymentProperties=count=3") - .run(); - TaskLaunchRequest taskLaunchRequest = verifyAndreceiveTaskLaunchRequest(context); - - assertThat(taskLaunchRequest.getTaskName()).isEqualTo("foo"); - assertThat(taskLaunchRequest.getCommandlineArguments()).containsExactlyInAnyOrder("foo=bar", - "baz=boo"); - assertThat(taskLaunchRequest.getDeploymentProperties()).containsOnly(entry("count", "3")); - } - - @Test - @DirtiesContext - public void taskLaunchRequestWithCommandLineArgsMessageMapper() throws IOException { - - ApplicationContext context = springApplicationBuilder.properties( - "spring.jmx.enabled=false", "spring.cloud.function.definition=taskLaunchRequestFunction", - "task.launch.request.task-name=foo", "enhanceTLRArgs=true") - .run(); - - TaskLaunchRequest taskLaunchRequest = verifyAndreceiveTaskLaunchRequest(context); - - assertThat(taskLaunchRequest.getTaskName()).isEqualTo("foo"); - assertThat(taskLaunchRequest.getCommandlineArguments()).hasSize(1); - assertThat(taskLaunchRequest.getCommandlineArguments()).containsExactly("runtimeArg"); - - } - - @Test - @DirtiesContext - public void taskLaunchRequestWithArgExpressions() throws IOException { - ApplicationContext context = springApplicationBuilder.properties( - "spring.jmx.enabled=false", - "spring.cloud.function.definition=taskLaunchRequestFunction", - "task.launch.request.task-name=foo", - "task.launch.request.arg-expressions=foo=payload.toUpperCase(),bar=payload.substring(0,2)") - .run(); - - Message message = MessageBuilder.withPayload("hello").build(); - - TaskLaunchRequestFunction taskLaunchRequestFunction = context.getBean(TaskLaunchRequestFunction.class); - - Message response = taskLaunchRequestFunction.apply(message); - - assertThat(response).isNotNull(); - TaskLaunchRequest request = response.getPayload(); - assertThat(request.getCommandlineArguments()).containsExactlyInAnyOrder("foo=HELLO", "bar=he"); - } - - @Test - @DirtiesContext - public void taskLaunchRequestWithIntPayload() throws IOException { - ApplicationContext context = springApplicationBuilder.properties( - "spring.jmx.enabled=false", "spring.cloud.function.definition=taskLaunchRequestFunction", - "task.launch.request.task-name=foo", - "task.launch.request.arg-expressions=i=payload") - .run(); - - TaskLaunchRequestFunction taskLaunchRequestFunction = context.getBean(TaskLaunchRequestFunction.class); - - Message message = MessageBuilder.withPayload(123).build(); - - Message response = taskLaunchRequestFunction.apply(message); - - assertThat(response).isNotNull(); - - TaskLaunchRequest request = response.getPayload(); - assertThat(request.getCommandlineArguments()).containsExactly("i=123"); - } - - @Test - @DirtiesContext - public void taskNameExpression() throws IOException { - ApplicationContext context = springApplicationBuilder.properties( - "spring.jmx.enabled=false", "spring.cloud.function.definition=taskLaunchRequestFunction", - "task.launch.request.task-name-expression=payload+'_task'") - .run(); - - TaskLaunchRequestFunction taskLaunchRequestFunction = context.getBean(TaskLaunchRequestFunction.class); - - Message message = MessageBuilder.withPayload("foo").build(); - - Message response = taskLaunchRequestFunction.apply(message); - assertThat(response).isNotNull(); - - TaskLaunchRequest request = response.getPayload(); - assertThat(request.getTaskName()).isEqualTo("foo_task"); - } - - @Test - @DirtiesContext - public void customTaskNameExtractor() throws IOException { - ApplicationContext context = springApplicationBuilder.properties( - "spring.jmx.enabled=false", "spring.cloud.function.definition=taskLaunchRequestFunction", - "customTaskNameExtractor=true") - .run(); - TaskLaunchRequestFunction taskLaunchRequestFunction = context.getBean(TaskLaunchRequestFunction.class); - - Message message = MessageBuilder.withPayload("foo").build(); - - Message response = taskLaunchRequestFunction.apply(message); - assertThat(response).isNotNull(); - - TaskLaunchRequest request = response.getPayload(); - assertThat(request.getTaskName()).isEqualTo("fooTask"); - - message = MessageBuilder.withPayload("bar").build(); - response = taskLaunchRequestFunction.apply(message); - request = response.getPayload(); - - assertThat(request.getTaskName()).isEqualTo("defaultTask"); - } - - private TaskLaunchRequest verifyAndreceiveTaskLaunchRequest(ApplicationContext context) - throws IOException { - TaskLaunchRequestFunction taskLaunchRequestFunction = context.getBean(TaskLaunchRequestFunction.class); - Message message = taskLaunchRequestFunction - .apply(MessageBuilder.withPayload(new byte[] {}).build()); - assertThat(message).isNotNull(); - return message.getPayload(); - } - - @SpringBootApplication - protected static class TaskLaunchRequestFunctionTestApplication { - - @Bean - @ConditionalOnProperty("customTaskNameExtractor") - TaskNameMessageMapper taskNameExtractor() { - return message -> ((String) (message.getPayload())).equalsIgnoreCase("foo") ? "fooTask" : "defaultTask"; - } - - @Bean - @ConditionalOnProperty("enhanceTLRArgs") - CommandLineArgumentsMessageMapper commandLineArgumentsProvider() { - return message -> Collections.singletonList("runtimeArg"); - } - } -} diff --git a/functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionPropertiesTests.java b/functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionPropertiesTests.java deleted file mode 100644 index a452a0e9..00000000 --- a/functions/function/task-launch-request-function/src/test/java/org/springframework/cloud/fn/task/launch/request/TaskLaunchRequestFunctionPropertiesTests.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.task.launch.request; - -import java.util.List; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.integration.config.EnableIntegration; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author David Turanski - **/ -public class TaskLaunchRequestFunctionPropertiesTests { - - @Test - public void deploymentPropertiesCanBeCustomized() { - TaskLaunchRequestFunctionProperties properties = getBatchProperties( - "task.launch.request.deploymentProperties:prop1=val1,prop2=val2"); - assertThat(properties.getDeploymentProperties()).isEqualTo("prop1=val1,prop2=val2"); - } - - @Test - public void parametersCanBeCustomized() { - TaskLaunchRequestFunctionProperties properties = getBatchProperties( - "task.launch.request.args:jp1=jpv1,jp2=jpv2"); - List args = properties.getArgs(); - - assertThat(args).isNotNull(); - assertThat(args).hasSize(2); - assertThat(args.get(0)).isEqualTo("jp1=jpv1"); - assertThat(args.get(1)).isEqualTo("jp2=jpv2"); - } - - private TaskLaunchRequestFunctionProperties getBatchProperties(String... var) { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - - if (var != null) { - TestPropertyValues.of(var).applyTo(context); - } - - context.register(Conf.class); - context.refresh(); - - return context.getBean(TaskLaunchRequestFunctionProperties.class); - } - - @Configuration - @EnableIntegration - @EnableConfigurationProperties(TaskLaunchRequestFunctionProperties.class) - @Import(TaskLaunchRequestFunctionConfiguration.class) - static class Conf { - - } -} diff --git a/functions/function/twitter-function/README.adoc b/functions/function/twitter-function/README.adoc deleted file mode 100644 index 1427a796..00000000 --- a/functions/function/twitter-function/README.adoc +++ /dev/null @@ -1,149 +0,0 @@ -# Twitter Functions - -This module provides couple of twitter functions that can be reused and composed in other applications. - -To use those functions add the following dependency to your POM: - -[source,XML] ----- - - org.springframework.cloud.fn - twitter-function - ${java-functions.version} - ----- - -## 1. Twitter Trend Function - -Functions can return either Trends topics or the Locations of the trending topics. The `twitter.trend.trend-query-type` property allows choosing between both types. - -* Trends - `twitter.trend.trend-query-type` is set to `trend`. Leverages the https://developer.twitter.com/en/docs/trends/trends-for-location/api-reference/get-trends-place[Trends API] to return the https://help.twitter.com/en/using-twitter/twitter-trending-faqs[trending topics] near a specific latitude, longitude location. - -* Trend Locations - the `twitter.trend.trend-query-type` is set `trendLocation`. Retrieve a full or nearby locations list of trending topics by location. If the `latitude`, `longitude` parameters are NOT provided the processor performs the https://developer.twitter.com/en/docs/trends/locations-with-trending-topics/api-reference/get-trends-available[Trends Available API] and returns the locations that Twitter has trending topic information for. -If the `latitude`, `longitude` parameters are provided the processor performs the https://developer.twitter.com/en/docs/trends/locations-with-trending-topics/api-reference/get-trends-closest[Trends Closest API] and returns the locations that Twitter has trending topic information for, closest to a specified location. - -Response is an array of `locations` that encode the location's WOEID and some other human-readable information such as a canonical name and country the location belongs in. - -### 1.1 Beans for injection - -You can import the `TwitterTrendFunctionConfiguration` in a Spring Boot application and then inject the following bean. - -`filterFunction` - -You can use `Function, Message> twitterTrendFunction` as a qualifier when injecting. - -Once injected, you can use the `apply` method of the `Function` to invoke it and get the result. - -### 1.2 Configuration Options - -TIP: For `SpEL` expression properties wrap the literal values in single quotes (`'`). - -For more information on the various options available, please see link:../twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionProperties.java[TwitterTrendFunctionProperties.java] - -### 1.3 Tests -See this link:src/test/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionTests.java[test suite] for examples of how this function is used. - -### 1.4 Other usage - -Leveraging the Spring Cloud Function composability, you can compose the Trend function in your boot app like this: - -[source,Java] ----- -@SpringBootApplication -@Import(TwitterTrendFunctionConfiguration.class ) -public class MyTwitterTrendBootApp { - - public static void main(String[] args) { - SpringApplication.run(MyTwitterTrendBootApp.class, - "--spring.cloud.function.definition=trend|twitterTrendFunction|managedJson"); - } -} ----- - -## 2. Twitter Geo Function. - -Function based on the https://developer.twitter.com/en/docs/geo/places-near-location/overview[Geo API] that retrieves Twitter place information based on query parameters such as (`latitude`, `longitude`) pair, an `IP` address, or a place `name`. - -There are two types for geo search queries `search` and `reverse` controlled by the `twitter.geo.search.type` property. - -* reverse - Given a latitude and a longitude, searches for up to 20 places that can be used as a `placeId` when updating a status. -This request is an informative call and will deliver generalized results about geography. - -* search - Search for places that can be attached to statuses/update. Given a latitude and a longitude pair, an IP address, or a name, this request will return a list of all the valid places that can be used as the place_id when updating a status. - -Conceptually, a query can be made from the user’s location, retrieve a list of places, have the user validate the location he or she is at, and then send the ID of this location with a call to POST statuses/update. - -This is the recommended method to use find places that can be attached to statuses/update. Unlike GET geo/reverse_geocode which provides raw data access, this endpoint can potentially re-order places with regard to the user who is authenticated. Use this approach for interactive place matching with the user. - -Some parameters in this method are only required based on the existence of other parameters. For instance, “lat” is required if “long” is provided, and vice-versa. Authentication is recommended, but not required with this method. - -NOTE: Limits: 15 requests / 15-min window (user auth). - -### 2.1 Beans for injection - -You can import the `TwitterGeoFunctionConfiguration` in a Spring Boot application and then inject the following bean. - -`filterFunction` - -You can use `Function, Message> twitterGeoFunction` as a qualifier when injecting. -Once injected, you can use the `apply` method of the `Function` to invoke it and get the result. - -### 2.2 Configuration Options - -TIP: For `SpEL` expression properties wrap the literal values in single quotes (`'`). - -For more information on the various options available, please see link:../twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionProperties.java[TwitterGeoFunctionProperties.java] - -### 2.3 Tests - -See this link:src/test/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionTest.java[test suite] for examples of how this function is used. - -### 2.4 Other usage - -Leveraging the Spring Cloud Function composability, you can compose the Geo function in your boot app like this: - -[source,Java] ----- -@SpringBootApplication -@Import(TwitterGeoFunctionConfiguration.class ) -public class MyTwitterGeoProcessorBootApp { - - public static void main(String[] args) { - SpringApplication.run(MyTwitterGeoProcessorBootApp.class, - "--spring.cloud.function.definition=messageToGeoQueryFunction|twitterSearchPlacesFunction|managedJson"); - } -} ----- - -## 3. Twitter Users Function - -Retrieves users either by list of use ids and/or screen-names (https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-lookup[Users Lookup API]) or by text search query (https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-search[Users Search API]). -Uses SpEL expressions to compute the query parameters from the input message. -Use the single quoted literals to set static values (e.g. user-id: '6666, 9999, 10000'). - -Use `twitter.users.type` property allow to select the query approaches. - -* https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-lookup[Users Lookup API] - Returns fully-hydrated user objects for up to 100 users per request, as specified by comma-separated values passed to the `userId` and/or `screenName` parameters. Rate limits: (300 requests / 15-min window) -* https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-search[Users Search API] - Relevance-based search interface to public user accounts on Twitter. -Querying by topical interest, full name, company name, location, or other criteria. Exact match searches are not supported. Only the first 1,000 matching results are available. Rate limits:(900 requests / 15-min window) - -### 3.1 Beans for injection - -You can import the `TwitterUsersFunctionConfiguration` in a Spring Boot application and then inject the following bean. - -`filterFunction` - -You can use `Function, Message> twitterUsersFunction` as a qualifier when injecting. -Once injected, you can use the `apply` method of the `Function` to invoke it and get the result. - - -### 3.2 Configuration Options - -TIP: For `SpEL` expression properties wrap the literal values in single quotes (`'`). - -For more information on the various options available, please see link:../twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionProperties.java[TwitterUsersFunctionProperties.java] - -### 3.3 Tests -See this link:src/test/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionTests.java[test suite] for examples of how this function is used. - -### 3.4 Other usage diff --git a/functions/function/twitter-function/pom.xml b/functions/function/twitter-function/pom.xml deleted file mode 100644 index 17bf724a..00000000 --- a/functions/function/twitter-function/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionConfiguration.java b/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionConfiguration.java deleted file mode 100644 index e58443ce..00000000 --- a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionConfiguration.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.twitter.geo; - -import java.util.List; -import java.util.function.Function; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import twitter4j.GeoLocation; -import twitter4j.GeoQuery; -import twitter4j.Place; -import twitter4j.Twitter; -import twitter4j.TwitterException; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; - -/** - * - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(TwitterGeoFunctionProperties.class) -@Import(TwitterConnectionConfiguration.class) -public class TwitterGeoFunctionConfiguration { - - private static final Log logger = LogFactory.getLog(TwitterGeoFunctionConfiguration.class); - - @Bean - public Function, GeoQuery> messageToGeoQueryFunction(TwitterGeoFunctionProperties geoProperties) { - return message -> { - String ip = null; - if (geoProperties.getSearch().getIp() != null) { - ip = geoProperties.getSearch().getIp().getValue(message, String.class); - } - GeoLocation geoLocation = null; - if (geoProperties.getLocation().getLat() != null && geoProperties.getLocation().getLon() != null) { - Double lat = geoProperties.getLocation().getLat().getValue(message, Double.class); - Double lon = geoProperties.getLocation().getLon().getValue(message, Double.class); - geoLocation = new GeoLocation(lat, lon); - } - - String query = null; - if (geoProperties.getSearch().getQuery() != null) { - query = geoProperties.getSearch().getQuery().getValue(message, String.class); - } - GeoQuery geoQuery = new GeoQuery(query, ip, geoLocation); - - geoQuery.setMaxResults(geoProperties.getMaxResults()); - geoQuery.setAccuracy(geoProperties.getAccuracy()); - geoQuery.setGranularity(geoProperties.getGranularity()); - - return geoQuery; - }; - } - - @Bean - @ConditionalOnProperty(name = "twitter.geo.search.type", havingValue = "search", matchIfMissing = true) - public Function> twitterSearchPlacesFunction(Twitter twitter) { - return geoQuery -> { - try { - return twitter.searchPlaces(geoQuery); - } - catch (TwitterException e) { - logger.error("Places Search failed!", e); - } - return null; - }; - } - - @Bean - @ConditionalOnProperty(name = "twitter.geo.search.type", havingValue = "reverse") - public Function> twitterReverseGeocodeFunction(Twitter twitter) { - return geoQuery -> { - try { - return twitter.reverseGeoCode(geoQuery); - } - catch (TwitterException e) { - logger.error("Reverse Geocode failed!", e); - } - return null; - }; - } - - @Bean - public Function, Message> twitterGeoFunction( - Function, GeoQuery> toGeoQuery, - Function> places, - Function> managedJson) { - - return toGeoQuery.andThen(places).andThen(managedJson)::apply; - } -} diff --git a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionProperties.java b/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionProperties.java deleted file mode 100644 index 9e308342..00000000 --- a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionProperties.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.twitter.geo; - -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.validation.annotation.Validated; - - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("twitter.geo") -@Validated -public class TwitterGeoFunctionProperties { - - private static final Expression DEFAULT_EXPRESSION = new SpelExpressionParser().parseExpression("payload"); - - public enum GeoType { - /** Geo retrieval type. */ - reverse, search - } - - /** - * Geo search API type: reverse or search. - */ - @NotNull - private GeoType type = GeoType.search; - - /** - * Search geo type filter parameters. - */ - private Search search = new Search(); - - /** - * - */ - private Location location = new Location(); - - /** - * Hints for the number of results to return. This does not guarantee that the number of results - * returned will equal max_results, but instead informs how many 'nearby' results to return. - */ - private int maxResults = -1; - - /** - * Sets a hint on the 'region' in which to search. If a number, then this is a radius in meters, but it - * can also take a string that is suffixed with ft to specify feet. If this is not passed in, then it is - * assumed to be 0m. If coming from a device, in practice, this value is whatever accuracy the device - * has measuring its location (whether it be coming from a GPS, WiFi triangulation, etc.). - */ - private String accuracy = null; - - /** - * Minimal granularity of data to return. If this is not passed in, then neighborhood is assumed. - * City can also be passed. - */ - private String granularity = null; - - public Search getSearch() { - return search; - } - - public void setSearch(Search search) { - this.search = search; - } - - public GeoType getType() { - return type; - } - - public void setType(GeoType type) { - this.type = type; - } - - public Location getLocation() { - return location; - } - - public void setLocation(Location location) { - this.location = location; - } - - public int getMaxResults() { - return maxResults; - } - - public void setMaxResults(int maxResults) { - this.maxResults = maxResults; - } - - public String getAccuracy() { - return accuracy; - } - - public void setAccuracy(String accuracy) { - this.accuracy = accuracy; - } - - public String getGranularity() { - return granularity; - } - - public void setGranularity(String granularity) { - this.granularity = granularity; - } - - @AssertTrue(message = "Either the IP or the Location must be set") - public boolean isAtLeastOne() { - return this.getSearch().getIp() == null ^ (this.getLocation().getLat() == null && this.getLocation().getLon() == null); - } - - @AssertTrue(message = "The IP parameter is applicable only for 'Search' GeoType") - public boolean isIpUsedWithSearchGeoType() { - if (this.getSearch().getIp() != null) { - return this.type == GeoType.search; - } - return true; - } - - public static class Search { - /** - * An IP address. Used when attempting to fix geolocation based off of the user's IP address. - * Applicable only for 'search' geo type. - */ - private Expression ip = null; - - /** - * Query expression to filter Places in search results. - */ - private Expression query = null; - - public Expression getIp() { - return ip; - } - - public void setIp(Expression ip) { - this.ip = ip; - } - - public Expression getQuery() { - return query; - } - - public void setQuery(Expression query) { - this.query = query; - } - } - - public static class Location { - - /** - * User's lat. - */ - private Expression lat; - - /** - * User's lon. - */ - private Expression lon; - - - public Expression getLat() { - return lat; - } - - public void setLat(Expression lat) { - this.lat = lat; - } - - public Expression getLon() { - return lon; - } - - public void setLon(Expression lon) { - this.lon = lon; - } - } -} diff --git a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionConfiguration.java b/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionConfiguration.java deleted file mode 100644 index c82f023c..00000000 --- a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionConfiguration.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.twitter.trend; - -import java.util.List; -import java.util.function.Function; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import twitter4j.GeoLocation; -import twitter4j.Location; -import twitter4j.Trends; -import twitter4j.Twitter; -import twitter4j.TwitterException; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; - -/** - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(TwitterTrendFunctionProperties.class) -@Import(TwitterConnectionConfiguration.class) -public class TwitterTrendFunctionConfiguration { - - private static final Log logger = LogFactory.getLog(TwitterTrendFunctionConfiguration.class); - - @Bean - public Function, Trends> trend(TwitterTrendFunctionProperties properties, Twitter twitter) { - return message -> { - try { - int woeid = properties.getLocationId().getValue(message, int.class); - return twitter.getPlaceTrends(woeid); - } - catch (TwitterException e) { - logger.error("Twitter API error!", e); - } - return null; - }; - } - - @Bean - public Function, List> closestOrAvailableTrends( - TwitterTrendFunctionProperties properties, Twitter twitter) { - return message -> { - try { - if (properties.getClosest().getLat() != null && properties.getClosest().getLon() != null) { - double lat = properties.getClosest().getLat().getValue(message, double.class); - double lon = properties.getClosest().getLon().getValue(message, double.class); - return twitter.getClosestTrends(new GeoLocation(lat, lon)); - } - else { - return twitter.getAvailableTrends(); - } - } - catch (TwitterException e) { - logger.error("Twitter API error!", e); - } - return null; - }; - } - - @Bean - public Function, Message> twitterTrendFunction( - Function> managedJson, Function, Trends> trend, - TwitterTrendFunctionProperties properties, Function, - List> closestOrAvailableTrends) { - - return (properties.getTrendQueryType() == TwitterTrendFunctionProperties.TrendQueryType.trend) ? - trend.andThen(managedJson) : closestOrAvailableTrends.andThen(managedJson); - } -} diff --git a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionProperties.java b/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionProperties.java deleted file mode 100644 index e3fe33ba..00000000 --- a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionProperties.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.twitter.trend; - -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.validation.annotation.Validated; - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("twitter.trend") -@Validated -public class TwitterTrendFunctionProperties { - - private static final Expression DEFAULT_EXPRESSION = new SpelExpressionParser().parseExpression("payload"); - - enum TrendQueryType { - /** Retrieve trending places. */ - trend, - /** Retrieve the Locations of trending places. */ - trendLocation - } - - private TrendQueryType trendQueryType = TrendQueryType.trend; - - public TrendQueryType getTrendQueryType() { - return trendQueryType; - } - - public void setTrendQueryType(TrendQueryType trendQueryType) { - this.trendQueryType = trendQueryType; - } - - /** - * The Yahoo! Where On Earth ID of the location to return trending information for. - * Global information is available by using 1 as the WOEID. - */ - @NotNull - private Expression locationId = DEFAULT_EXPRESSION; - - public Expression getLocationId() { - return locationId; - } - - public void setLocationId(Expression locationId) { - this.locationId = locationId; - } - - /** - * - */ - private Closest closest = new Closest(); - - public Closest getClosest() { - return closest; - } - - public static class Closest { - /** - * If provided with a long parameter the available trend locations will be sorted by distance, nearest - * to furthest, to the co-ordinate pair. - * The valid ranges for longitude is -180.0 to +180.0 (West is negative, East is positive) inclusive. - */ - private Expression lat; - - /** - * If provided with a lat parameter the available trend locations will be sorted by distance, nearest to - * furthest, to the co-ordinate pair. The valid ranges for longitude is -180.0 to +180.0 (West is negative, - * East is positive) inclusive. - */ - private Expression lon; - - public Expression getLat() { - return lat; - } - - public void setLat(Expression lat) { - this.lat = lat; - } - - public Expression getLon() { - return lon; - } - - public void setLon(Expression lon) { - this.lon = lon; - } - } -} diff --git a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionConfiguration.java b/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionConfiguration.java deleted file mode 100644 index 17dfafe3..00000000 --- a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionConfiguration.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.twitter.users; - -import java.util.List; -import java.util.function.Function; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import twitter4j.ResponseList; -import twitter4j.Twitter; -import twitter4j.TwitterException; -import twitter4j.User; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; - -/** - * - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(TwitterUsersFunctionProperties.class) -@Import(TwitterConnectionConfiguration.class) -public class TwitterUsersFunctionConfiguration { - - private static final Log logger = LogFactory.getLog(TwitterUsersFunctionConfiguration.class); - - @Bean - @ConditionalOnProperty(name = "twitter.users.type", havingValue = "search") - public Function, List> userSearch(Twitter twitter, TwitterUsersFunctionProperties properties) { - - return message -> { - String query = properties.getSearch().getQuery().getValue(message, String.class); - try { - ResponseList users = twitter.searchUsers(query, properties.getSearch().getPage()); - return users; - } - catch (TwitterException e) { - logger.error("Twitter API error!", e); - } - return null; - }; - } - - @Bean - @ConditionalOnProperty(name = "twitter.users.type", havingValue = "lookup") - public Function, List> userLookup(Twitter twitter, TwitterUsersFunctionProperties properties) { - - return message -> { - - try { - TwitterUsersFunctionProperties.Lookup lookup = properties.getLookup(); - if (lookup.getScreenName() != null) { - String[] screenNames = lookup.getScreenName().getValue(message, String[].class); - return twitter.lookupUsers(screenNames); - } - else if (lookup.getUserId() != null) { - long[] ids = lookup.getUserId().getValue(message, long[].class); - return twitter.lookupUsers(ids); - } - } - catch (TwitterException e) { - logger.error("Twitter API error!", e); - } - return null; - }; - } - - @Bean - /** - * queryUsers - depends on the `twitter.users.type` property is either userSearch or userLookup. - * managedJson - converts Users into JSON message payload. - */ - public Function, Message> twitterUsersFunction(Function, List> queryUsers, - Function> managedJson) { - return queryUsers.andThen(managedJson); - } -} diff --git a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionProperties.java b/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionProperties.java deleted file mode 100644 index 8f1d5359..00000000 --- a/functions/function/twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionProperties.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.twitter.users; - -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.validation.annotation.Validated; - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("twitter.users") -@Validated -public class TwitterUsersFunctionProperties { - - private static final Expression DEFAULT_EXPRESSION = new SpelExpressionParser().parseExpression("payload"); - - public enum UserQueryType { - /** User retrieval types. */ - search, lookup - } - - /** - * Perform search or lookup type of search. - */ - @NotNull - private UserQueryType type = UserQueryType.search; - - /** - * Returns fully-hydrated user objects for specified by comma-separated values passed to the user_id and/or - * screen_name parameters. - */ - private final Lookup lookup = new Lookup(); - - /** - * relevance-based search interface for querying by topical interest, full name, company name, location, - * or other criteria. - */ - private final Search search = new Search(); - - public UserQueryType getType() { - return type; - } - - public void setType(UserQueryType type) { - this.type = type; - } - - public Lookup getLookup() { - return lookup; - } - - public Search getSearch() { - return search; - } - - @AssertTrue(message = "Per query type validate the required parameters") - public boolean checkParametersPerType() { - if (this.getType() == UserQueryType.lookup) { - return (this.getLookup().getScreenName() != null) || (this.getLookup().getUserId() != null); - } - else if (this.getType() == UserQueryType.search) { - return (this.getSearch().getQuery() != null); - } - - return false; - } - - public static class Lookup { - /** - * A comma separated list of user IDs, up to 100 are allowed in a single request. - * You are strongly encouraged to use a POST for larger requests. - */ - private Expression userId; - - /** - * A comma separated list of screen names, up to 100 are allowed in a single request. - * You are strongly encouraged to use a POST for larger (up to 100 screen names) requests. - */ - private Expression screenName; - - public Expression getUserId() { - return userId; - } - - public void setUserId(Expression userId) { - this.userId = userId; - } - - public Expression getScreenName() { - return screenName; - } - - public void setScreenName(Expression screenName) { - this.screenName = screenName; - } - } - - public static class Search { - /** - * The search query to run against people search. - */ - private Expression query = DEFAULT_EXPRESSION; - - /** - * Specifies the page of results to retrieve. - */ - private int page = 3; - - public Expression getQuery() { - return query; - } - - public void setQuery(Expression query) { - this.query = query; - } - - public int getPage() { - return page; - } - - public void setPage(int page) { - this.page = page; - } - } -} diff --git a/functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionTest.java b/functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionTest.java deleted file mode 100644 index e3b50e79..00000000 --- a/functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionTest.java +++ /dev/null @@ -1,279 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.twitter.geo; - -import java.io.IOException; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import java.util.function.Function; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.mockserver.client.MockServerClient; -import org.mockserver.integration.ClientAndServer; -import twitter4j.conf.ConfigurationBuilder; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; -import org.springframework.cloud.fn.common.twitter.util.TwitterTestUtils; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.util.TestSocketUtils; -import org.springframework.util.MimeTypeUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockserver.matchers.Times.unlimited; -import static org.mockserver.model.HttpRequest.request; -import static org.mockserver.model.HttpResponse.response; -import static org.mockserver.verify.VerificationTimes.once; - -/** - * @author Christian Tzolov - */ -@SpringBootTest( - webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { - "twitter.connection.consumerKey=consumerKey666", - "twitter.connection.consumerSecret=consumerSecret666", - "twitter.connection.accessToken=accessToken666", - "twitter.connection.accessTokenSecret=accessTokenSecret666" - }) -@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) -public abstract class TwitterGeoFunctionTest { - - private static final String MOCK_SERVER_IP = "127.0.0.1"; - - private static final Integer MOCK_SERVER_PORT = TestSocketUtils.findAvailableTcpPort(); - - private static ClientAndServer mockServer; - - private static MockServerClient mockClient; - - @Autowired - protected Function, Message> twitterUsersFunction; - - public static void recordRequestExpectation(Map> parameters) { - - mockClient - .when( - request() - .withMethod("GET") - .withPath("/geo/search.json") - .withQueryStringParameters(parameters), - unlimited()) - .respond( - response() - .withStatusCode(200) - .withHeader("Content-Type", "application/json; charset=utf-8") - .withBody(TwitterTestUtils.asString("classpath:/response/search_places_amsterdam.json")) - .withDelay(TimeUnit.SECONDS, 1)); - - } - - @BeforeAll - public static void startMockServer() { - mockServer = ClientAndServer.startClientAndServer(MOCK_SERVER_PORT); - mockClient = new MockServerClient(MOCK_SERVER_IP, MOCK_SERVER_PORT); - } - - @AfterAll - public static void stopMockServer() { - mockServer.stop(); - } - - @TestPropertySource(properties = { - "twitter.geo.search.ip='127.0.0.1'", - "twitter.geo.search.query=payload.toUpperCase()" - }) - public static class TwitterGeoSearchByIPAndQueryTests extends TwitterGeoFunctionTest { - - @Test - public void testOne() throws IOException { - - Map> queryParameters = new HashMap<>(); - queryParameters.put("ip", Collections.singletonList("127.0.0.1")); - queryParameters.put("query", Collections.singletonList("Amsterdam")); - - recordRequestExpectation(queryParameters); - - String inPayload = "Amsterdam"; - - Message received = twitterUsersFunction.apply(MessageBuilder.withPayload(inPayload).build()); - - mockClient.verify(request() - .withMethod("GET") - .withPath("/geo/search.json") - .withQueryStringParameter("ip", "127.0.0.1") - .withQueryStringParameter("query", "AMSTERDAM"), - once()); - - String outPayload = new String((byte[]) received.getPayload()); - - assertThat(outPayload).isNotNull(); - - List places = new ObjectMapper().readValue(outPayload, List.class); - assertThat(places).hasSize(12); - } - } - - @TestPropertySource(properties = { - "twitter.geo.location.lat='52.378'", - "twitter.geo.location.lon='4.9'", - "twitter.geo.search.query=payload.toUpperCase()" - }) - public static class TwitterGeoSearchByLocationTests extends TwitterGeoFunctionTest { - - @Test - public void testOne() throws IOException { - - Map> queryParameters = new HashMap<>(); - queryParameters.put("lat", Collections.singletonList("52.378")); - queryParameters.put("long", Collections.singletonList("4.9")); - queryParameters.put("query", Collections.singletonList("Amsterdam")); - - recordRequestExpectation(queryParameters); - - String inPayload = "Amsterdam"; - - Message received = twitterUsersFunction.apply(MessageBuilder.withPayload(inPayload).build()); - - mockClient.verify(request() - .withMethod("GET") - .withPath("/geo/search.json") - .withQueryStringParameter("lat", "52.378") - .withQueryStringParameter("long", "4.9") - .withQueryStringParameter("query", "Amsterdam"), - once()); - - String outPayload = new String((byte[]) received.getPayload()); - - assertThat(outPayload).isNotNull(); - - List places = new ObjectMapper().readValue(outPayload, List.class); - assertThat(places).hasSize(12); - } - } - - @TestPropertySource(properties = { - "twitter.geo.type=reverse", - "twitter.geo.location.lat='52.378'", - "twitter.geo.location.lon='4.9'" - }) - public static class TwitterGeoSearchByLocation2Tests extends TwitterGeoFunctionTest { - - @Test - public void testOne() throws IOException { - - Map> queryParameters = new HashMap<>(); - queryParameters.put("lat", Arrays.asList("52.378")); - queryParameters.put("long", Arrays.asList("4.9")); - - recordRequestExpectation(queryParameters); - - String inPayload = "Amsterdam"; - - Message received = twitterUsersFunction.apply(MessageBuilder.withPayload(inPayload).build()); - - mockClient.verify(request() - .withMethod("GET") - .withPath("/geo/search.json") - .withQueryStringParameter("lat", "52.378") - .withQueryStringParameter("long", "4.9"), - once()); - - String outPayload = new String((byte[]) received.getPayload()); - - assertThat(outPayload).isNotNull(); - - List places = new ObjectMapper().readValue(outPayload, List.class); - assertThat(places).hasSize(12); - } - } - - @TestPropertySource(properties = { - "twitter.geo.location.lat=#jsonPath(new String(payload),'$.location.lat')", - "twitter.geo.location.lon=#jsonPath(new String(payload),'$.location.lon')", - "twitter.geo.search.query=#jsonPath(new String(payload),'$.country')" - }) - public static class TwitterGeoSearchJsonPathTests extends TwitterGeoFunctionTest { - - @Test - public void testOne() throws IOException { - - Map> queryParameters = new HashMap<>(); - queryParameters.put("lat", Collections.singletonList("52.0")); - queryParameters.put("long", Collections.singletonList("5.0")); - queryParameters.put("query", Collections.singletonList("Netherlands")); - - recordRequestExpectation(queryParameters); - - String inPayload = "{ \"country\" : \"Netherlands\", \"location\" : { \"lat\" : 52.00 , \"lon\" : 5.0 } }"; - - Message received = twitterUsersFunction.apply(MessageBuilder - .withPayload(inPayload) - .setHeader("contentType", MimeTypeUtils.APPLICATION_JSON_VALUE) - .build()); - - mockClient.verify(request() - .withMethod("GET") - .withPath("/geo/search.json") - .withQueryStringParameter("lat", "52.0") - .withQueryStringParameter("long", "5.0") - .withQueryStringParameter("query", "Netherlands"), - once()); - - String outPayload = new String((byte[]) received.getPayload()); - - assertThat(outPayload).isNotNull(); - - List places = new ObjectMapper().readValue(outPayload, List.class); - assertThat(places).hasSize(12); - } - } - - @SpringBootConfiguration - @EnableAutoConfiguration - @Import(TwitterGeoFunctionConfiguration.class) - public static class TwitterGeoFunctionTestApplication { - @Bean - @Primary - public twitter4j.conf.Configuration twitterConfiguration2(TwitterConnectionProperties properties, - Function toConfigurationBuilder) { - - Function mockedConfiguration = - toConfigurationBuilder.andThen( - new TwitterTestUtils().mockTwitterUrls( - String.format("http://%s:%s", MOCK_SERVER_IP, MOCK_SERVER_PORT))); - - return mockedConfiguration.apply(properties).build(); - } - } -} diff --git a/functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionTests.java b/functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionTests.java deleted file mode 100644 index bcd49d9d..00000000 --- a/functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionTests.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.twitter.trend; - -import java.util.concurrent.TimeUnit; -import java.util.function.Function; - -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.mockserver.client.MockServerClient; -import org.mockserver.integration.ClientAndServer; -import org.mockserver.model.Header; -import org.mockserver.model.HttpRequest; -import twitter4j.conf.ConfigurationBuilder; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; -import org.springframework.cloud.fn.common.twitter.util.TwitterTestUtils; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.util.TestSocketUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockserver.matchers.Times.exactly; -import static org.mockserver.model.HttpRequest.request; -import static org.mockserver.model.HttpResponse.response; -import static org.mockserver.verify.VerificationTimes.once; - -/** - * @author Christian Tzolov - */ -@SpringBootTest( - webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { - "twitter.connection.consumerKey=consumerKey666", - "twitter.connection.consumerSecret=consumerSecret666", - "twitter.connection.accessToken=accessToken666", - "twitter.connection.accessTokenSecret=accessTokenSecret666" - }) -@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) -public abstract class TwitterTrendFunctionTests { - - private static final String MOCK_SERVER_IP = "127.0.0.1"; - - private static final Integer MOCK_SERVER_PORT = TestSocketUtils.findAvailableTcpPort(); - - private static ClientAndServer mockServer; - - private static MockServerClient mockClient; - private static HttpRequest trendsRequest; - - @Autowired - protected Function, Message> twitterTrendFunction; - - @BeforeAll - public static void startServer() { - mockServer = ClientAndServer.startClientAndServer(MOCK_SERVER_PORT); - mockClient = new MockServerClient(MOCK_SERVER_IP, MOCK_SERVER_PORT); - - trendsRequest = setExpectation(request() - .withMethod("GET") - .withPath("/trends/place.json") - .withQueryStringParameter("id", "2972")); - } - - @AfterAll - public static void stopServer() { - mockServer.stop(); - } - - public static HttpRequest setExpectation(HttpRequest request) { - mockClient - .when(request, exactly(1)) - .respond(response() - .withStatusCode(200) - .withHeaders( - new Header("Content-Type", "application/json; charset=utf-8"), - new Header("Cache-Control", "public, max-age=86400")) - .withBody(TwitterTestUtils.asString("classpath:/response/trends.json")) - .withDelay(TimeUnit.SECONDS, 1) - ); - return request; - } - - @TestPropertySource(properties = { - "twitter.trend.locationId='2972'", - "twitter.connection.rawJson=true" - }) - public static class TwitterTrendPayloadTests extends TwitterTrendFunctionTests { - - @Test - public void testOne() { - Message received = twitterTrendFunction.apply(MessageBuilder.withPayload("Hello").build()); - mockClient.verify(trendsRequest, once()); - assertThat(received).isNotNull(); - } - } - - @SpringBootConfiguration - @EnableAutoConfiguration - @Import(TwitterTrendFunctionConfiguration.class) - public static class TwitterTrendFunctionTestApplication { - @Bean - @Primary - public twitter4j.conf.Configuration twitterConfiguration2(TwitterConnectionProperties properties, - Function toConfigurationBuilder) { - - Function mockedConfiguration = - toConfigurationBuilder.andThen( - new TwitterTestUtils().mockTwitterUrls( - String.format("http://%s:%s", MOCK_SERVER_IP, MOCK_SERVER_PORT))); - - return mockedConfiguration.apply(properties).build(); - } - } - -} diff --git a/functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionTests.java b/functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionTests.java deleted file mode 100644 index 8417d8e4..00000000 --- a/functions/function/twitter-function/src/test/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionTests.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.twitter.users; - -import java.io.IOException; -import java.util.List; -import java.util.concurrent.TimeUnit; -import java.util.function.Function; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.mockserver.client.MockServerClient; -import org.mockserver.integration.ClientAndServer; -import org.mockserver.model.Header; -import org.mockserver.model.HttpRequest; -import twitter4j.conf.ConfigurationBuilder; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; -import org.springframework.cloud.fn.common.twitter.util.TwitterTestUtils; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; -import org.springframework.integration.support.MessageBuilder; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.util.TestSocketUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockserver.matchers.Times.exactly; -import static org.mockserver.model.HttpRequest.request; -import static org.mockserver.model.HttpResponse.response; -import static org.mockserver.verify.VerificationTimes.once; - -/** - * @author Christian Tzolov - */ -@SpringBootTest( - webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { - "twitter.connection.consumerKey=consumerKey666", - "twitter.connection.consumerSecret=consumerSecret666", - "twitter.connection.accessToken=accessToken666", - "twitter.connection.accessTokenSecret=accessTokenSecret666" - }) -@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) -public abstract class TwitterUsersFunctionTests { - - private static final String MOCK_SERVER_IP = "127.0.0.1"; - - private static final Integer MOCK_SERVER_PORT = TestSocketUtils.findAvailableTcpPort(); - - private static ClientAndServer mockServer; - - private static MockServerClient mockClient; - private static HttpRequest searchUsersRequest; - private static HttpRequest lookupUsersRequest; - private static HttpRequest lookupUsersRequest2; - - @Autowired - protected ObjectMapper mapper; - - @Autowired - Function, Message> twitterUsersFunction; - - public static HttpRequest setExpectation(HttpRequest request, String responseUri) { - mockClient - .when(request, exactly(1)) - .respond(response() - .withStatusCode(200) - .withHeaders( - new Header("Content-Type", "application/json; charset=utf-8"), - new Header("Cache-Control", "public, max-age=86400")) - .withBody(TwitterTestUtils.asString(responseUri)) - .withDelay(TimeUnit.SECONDS, 1) - ); - return request; - } - - @BeforeAll - public static void startServer() { - mockServer = ClientAndServer.startClientAndServer(MOCK_SERVER_PORT); - mockClient = new MockServerClient(MOCK_SERVER_IP, MOCK_SERVER_PORT); - - searchUsersRequest = setExpectation(request() - .withMethod("GET") - .withPath("/users/search.json") - .withQueryStringParameter("q", "tzolov") - .withQueryStringParameter("page", "3"), - "classpath:/response/search_users.json"); - - lookupUsersRequest = setExpectation(request() - .withMethod("GET") - .withPath("/users/lookup.json") - .withQueryStringParameter("user_id", - "710705860343963648,326896547,267603736,781497571629989888,838754923"), - "classpath:/response/lookup_users_id.json"); - - lookupUsersRequest2 = setExpectation(request() - .withMethod("GET") - .withPath("/users/lookup.json") - .withQueryStringParameter("screen_name", - "TzolovMarto,Rabotnik57,antzolov,peyo_tzolov,ivantzolov"), - "classpath:/response/lookup_users_id.json"); - } - - @AfterAll - public static void stopServer() { - mockServer.stop(); - } - - @TestPropertySource(properties = { - "twitter.users.type=search", - "twitter.users.search.query=payload" - }) - public static class TwitterSearchUsersTests extends TwitterUsersFunctionTests { - - @Test - public void testOne() throws IOException { - Message received = twitterUsersFunction.apply(MessageBuilder.withPayload("tzolov").build()); - mockClient.verify(searchUsersRequest, once()); - assertThat(received).isNotNull(); - List list = mapper.readValue(new String((byte[]) received.getPayload()), List.class); - assertThat(list).hasSize(20); - } - } - - @TestPropertySource(properties = { - "twitter.users.type=lookup", - "twitter.users.lookup.userId='710705860343963648,326896547,267603736,781497571629989888,838754923'" - }) - public static class TwitterLookupUserIdLiteralTests extends TwitterUsersFunctionTests { - - @Test - public void testOne() throws IOException { - - Message received = twitterUsersFunction.apply(MessageBuilder.withPayload("tzolov").build()); - - mockClient.verify(lookupUsersRequest, once()); - assertThat(received).isNotNull(); - List list = mapper.readValue(new String((byte[]) received.getPayload()), List.class); - assertThat(list).hasSize(5); - } - } - - @TestPropertySource(properties = { - "twitter.users.type=lookup", - "twitter.users.lookup.screenName=#jsonPath(payload,'$[*].code')" - }) - public static class TwitterLookupScreenNamePayloadTests extends TwitterUsersFunctionTests { - - @Test - public void testOne() throws IOException { - - Object payload = "[{\"code\":\"TzolovMarto\"},{\"code\":\"Rabotnik57\"},{\"code\":\"antzolov\"},{\"code\":\"peyo_tzolov\"},{\"code\":\"ivantzolov\"}]"; - - Message received = twitterUsersFunction.apply(MessageBuilder.withPayload(payload).build()); - assertThat(received).isNotNull(); - - mockClient.verify(lookupUsersRequest2, once()); - assertThat(received).isNotNull(); - List list = mapper.readValue(new String((byte[]) received.getPayload()), List.class); - assertThat(list).hasSize(5); - } - } - - @SpringBootConfiguration - @EnableAutoConfiguration - @Import(TwitterUsersFunctionConfiguration.class) - static class TwitterUsersFunctionTestApplication { - @Bean - @Primary - public twitter4j.conf.Configuration twitterConfiguration2(TwitterConnectionProperties properties, - Function toConfigurationBuilder) { - - Function mockedConfiguration = - toConfigurationBuilder.andThen( - new TwitterTestUtils().mockTwitterUrls( - String.format("http://%s:%s", MOCK_SERVER_IP, MOCK_SERVER_PORT))); - - return mockedConfiguration.apply(properties).build(); - } - } -} diff --git a/functions/function/twitter-function/src/test/resources/logback.xml b/functions/function/twitter-function/src/test/resources/logback.xml deleted file mode 100644 index f7e48fcf..00000000 --- a/functions/function/twitter-function/src/test/resources/logback.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - diff --git a/functions/function/twitter-function/src/test/resources/response/lookup_users_id.json b/functions/function/twitter-function/src/test/resources/response/lookup_users_id.json deleted file mode 100644 index afbae782..00000000 --- a/functions/function/twitter-function/src/test/resources/response/lookup_users_id.json +++ /dev/null @@ -1 +0,0 @@ -[{"id":710705860343963648,"id_str":"710705860343963648","name":"Marto Tzolov","screen_name":"TzolovMarto","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":10,"friends_count":34,"listed_count":0,"created_at":"Fri Mar 18 05:54:16 +0000 2016","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"bg","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"F5F8FA","profile_background_image_url":null,"profile_background_image_url_https":null,"profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":326896547,"id_str":"326896547","name":"Mladen Tzolov","screen_name":"Rabotnik57","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":0,"friends_count":1,"listed_count":0,"created_at":"Thu Jun 30 17:25:54 +0000 2011","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":267603736,"id_str":"267603736","name":"Anatoli Tzolov","screen_name":"antzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":4,"friends_count":0,"listed_count":0,"created_at":"Thu Mar 17 06:40:31 +0000 2011","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":781497571629989888,"id_str":"781497571629989888","name":"Peyo Tzolov","screen_name":"peyo_tzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":1,"friends_count":34,"listed_count":0,"created_at":"Thu Sep 29 14:15:15 +0000 2016","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"F5F8FA","profile_background_image_url":null,"profile_background_image_url_https":null,"profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":838754923,"id_str":"838754923","name":"Ivan Stoyanov Tzolov","screen_name":"ivantzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":2,"friends_count":1,"listed_count":0,"created_at":"Fri Sep 21 23:43:31 +0000 2012","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":17,"lang":"en","status":{"created_at":"Fri Sep 12 08:47:45 +0000 2014","id":510349029784694784,"id_str":"510349029784694784","full_text":"http:\/\/t.co\/DAjlG8Nb2H","truncated":false,"display_text_range":[0,22],"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"http:\/\/t.co\/DAjlG8Nb2H","expanded_url":"http:\/\/startupmedia.net\/goodenough.html","display_url":"startupmedia.net\/goodenough.html","indices":[0,22]}]},"source":"\u003ca href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"und"},"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"}] diff --git a/functions/function/twitter-function/src/test/resources/response/search_places_amsterdam.json b/functions/function/twitter-function/src/test/resources/response/search_places_amsterdam.json deleted file mode 100644 index 6c0a1af0..00000000 --- a/functions/function/twitter-function/src/test/resources/response/search_places_amsterdam.json +++ /dev/null @@ -1 +0,0 @@ -{"result":{"places":[{"id":"99cdab25eddd6bce","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/99cdab25eddd6bce.json","place_type":"city","name":"Amsterdam","full_name":"Amsterdam, The Netherlands","country_code":"NL","country":"The Netherlands","contained_within":[{"id":"00201664628f798b","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/00201664628f798b.json","place_type":"admin","name":"De Randstad","full_name":"De Randstad","country_code":"NL","country":"The Netherlands","centroid":[4.316128202618518,52.068423499999994],"bounding_box":{"type":"Polygon","coordinates":[[[4.112784,51.761243],[4.112784,52.52808],[5.468162,52.52808],[5.468162,51.761243],[4.112784,51.761243]]]},"attributes":{}}],"centroid":[4.8980371531271425,52.37482405],"bounding_box":{"type":"Polygon","coordinates":[[[4.7288999,52.2782266],[4.7288999,52.4312289],[5.0792072,52.4312289],[5.0792072,52.2782266],[4.7288999,52.2782266]]]},"attributes":{}},{"id":"4e542833600bca97","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/4e542833600bca97.json","place_type":"city","name":"Amsterdam","full_name":"Amsterdam, NY","country_code":"US","country":"United States","contained_within":[{"id":"4ffa03b662822a0e","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/4ffa03b662822a0e.json","place_type":"admin","name":"ALBANY-SCHENECTADY-TROY","full_name":"ALBANY-SCHENECTADY-TROY","country_code":"","country":"","centroid":[-73.88149182600827,43.049265000000005],"bounding_box":{"type":"Polygon","coordinates":[[[-74.867704,41.977978],[-74.867704,44.120552],[-72.819773,44.120552],[-72.819773,41.977978],[-74.867704,41.977978]]]},"attributes":{}}],"centroid":[-74.18907623554325,42.948039],"bounding_box":{"type":"Polygon","coordinates":[[[-74.222596,42.918987],[-74.222596,42.977091],[-74.158646,42.977091],[-74.158646,42.918987],[-74.222596,42.918987]]]},"attributes":{}},{"id":"014354e25fd7e37d","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/014354e25fd7e37d.json","place_type":"city","name":"New Amsterdam","full_name":"New Amsterdam, WI","country_code":"US","country":"United States","contained_within":[{"id":"f265fa733db1efa2","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/f265fa733db1efa2.json","place_type":"admin","name":"LA CROSSE-EAU CLAIRE","full_name":"LA CROSSE-EAU CLAIRE","country_code":"","country":"","centroid":[-91.11594598161932,44.313717999999994],"bounding_box":{"type":"Polygon","coordinates":[[[-92.31617,42.98817],[-92.31617,45.639266],[-90.311017,45.639266],[-90.311017,42.98817],[-92.31617,42.98817]]]},"attributes":{}}],"centroid":[-91.29723353577143,43.977616999999995],"bounding_box":{"type":"Polygon","coordinates":[[[-91.3194822,43.969888],[-91.3194822,43.985346],[-91.286008,43.985346],[-91.286008,43.969888],[-91.3194822,43.969888]]]},"attributes":{}},{"id":"6b1c779ec0b0bf96","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/6b1c779ec0b0bf96.json","place_type":"neighborhood","name":"Ámsterdam","full_name":"Ámsterdam, Corregidora","country_code":"MX","country":"Mexico","contained_within":[{"id":"ff1c0dd545aca772","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/ff1c0dd545aca772.json","place_type":"city","name":"Corregidora","full_name":"Corregidora, Querétaro Arteaga","country_code":"MX","country":"Mexico","centroid":[-100.44113916818549,20.4787551],"bounding_box":{"type":"Polygon","coordinates":[[[-100.508629,20.3617911],[-100.508629,20.5957191],[-100.370833,20.5957191],[-100.370833,20.3617911],[-100.508629,20.3617911]]]},"attributes":{}}],"centroid":[-100.41340904153098,20.5456092],"bounding_box":{"type":"Polygon","coordinates":[[[-100.414615,20.5443904],[-100.414615,20.546828],[-100.412591,20.546828],[-100.412591,20.5443904],[-100.414615,20.5443904]]]},"attributes":{}},{"id":"40277f690ea6c867","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/40277f690ea6c867.json","place_type":"neighborhood","name":"Oude Amsterdamsebuurt","full_name":"Oude Amsterdamsebuurt, Haarlem","country_code":"NL","country":"The Netherlands","contained_within":[{"id":"280b2451d4f8f73f","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/280b2451d4f8f73f.json","place_type":"city","name":"Haarlem","full_name":"Haarlem, Nederland","country_code":"NL","country":"The Netherlands","centroid":[4.643405250172844,52.3837897],"bounding_box":{"type":"Polygon","coordinates":[[[4.5993661,52.3388496],[4.5993661,52.4287298],[4.6866562,52.4287298],[4.6866562,52.3388496],[4.5993661,52.3388496]]]},"attributes":{}}],"centroid":[4.647010110383041,52.378719146890205],"bounding_box":{"type":"Polygon","coordinates":[[[4.64155453233553,52.3762651137569],[4.64155453233553,52.3811731800235],[4.65223371374939,52.3811731800235],[4.65223371374939,52.3762651137569],[4.64155453233553,52.3762651137569]]]},"attributes":{}},{"id":"60c449308fe5ce7b","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/60c449308fe5ce7b.json","place_type":"neighborhood","name":"Maarn waaronder Klein Amsterdam","full_name":"Maarn waaronder Klein Amsterdam, Utrechtse Heuvelrug","country_code":"NL","country":"The Netherlands","contained_within":[{"id":"9f3d46f4d4289d3d","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/9f3d46f4d4289d3d.json","place_type":"city","name":"Utrechtse Heuvelrug","full_name":"Utrechtse Heuvelrug, Nederland","country_code":"NL","country":"The Netherlands","centroid":[5.394745705687344,52.02860325],"bounding_box":{"type":"Polygon","coordinates":[[[5.2472216,51.9707539],[5.2472216,52.0864526],[5.5293757,52.0864526],[5.5293757,51.9707539],[5.2472216,51.9707539]]]},"attributes":{}}],"centroid":[5.369017195148887,52.0642160845185],"bounding_box":{"type":"Polygon","coordinates":[[[5.35037061367215,52.0576013365081],[5.35037061367215,52.0708308325289],[5.38919817898849,52.0708308325289],[5.38919817898849,52.0576013365081],[5.35037061367215,52.0576013365081]]]},"attributes":{}},{"id":"1e1900a11be73ee5","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/1e1900a11be73ee5.json","place_type":"neighborhood","name":"Gebied ten zuiden van Amsterdam-Rijnkanaal","full_name":"Gebied ten zuiden van Amsterdam-Rijnkanaal, Wijk bij Duurstede","country_code":"NL","country":"The Netherlands","contained_within":[{"id":"55e84f33f17942fa","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/55e84f33f17942fa.json","place_type":"city","name":"Wijk bij Duurstede","full_name":"Wijk bij Duurstede, Nederland","country_code":"NL","country":"The Netherlands","centroid":[5.329360942494974,51.990985699999996],"bounding_box":{"type":"Polygon","coordinates":[[[5.2426404,51.9549448],[5.2426404,52.0270266],[5.415259,52.0270266],[5.415259,51.9549448],[5.2426404,51.9549448]]]},"attributes":{}}],"centroid":[5.292265575333346,51.9678009541292],"bounding_box":{"type":"Polygon","coordinates":[[[5.25623018002343,51.9547209695773],[5.25623018002343,51.9808809386811],[5.34094161624555,51.9808809386811],[5.34094161624555,51.9547209695773],[5.25623018002343,51.9547209695773]]]},"attributes":{}},{"id":"208b7abc84e1d0bb","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/208b7abc84e1d0bb.json","place_type":"neighborhood","name":"Verspreide huizen Nieuw-Amsterdam","full_name":"Verspreide huizen Nieuw-Amsterdam, Emmen","country_code":"NL","country":"The Netherlands","contained_within":[{"id":"bd593b98d3277413","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/bd593b98d3277413.json","place_type":"city","name":"Emmen","full_name":"Emmen, Nederland","country_code":"NL","country":"The Netherlands","centroid":[6.952461959050538,52.75285365],"bounding_box":{"type":"Polygon","coordinates":[[[6.8263158,52.6327357],[6.8263158,52.8729716],[7.0926136,52.8729716],[7.0926136,52.6327357],[6.8263158,52.6327357]]]},"attributes":{}}],"centroid":[6.880029781032325,52.72497950062615],"bounding_box":{"type":"Polygon","coordinates":[[[6.84381703095638,52.6832729158951],[6.84381703095638,52.7368586649565],[6.90332685388762,52.7368586649565],[6.90332685388762,52.6832729158951],[6.84381703095638,52.6832729158951]]]},"attributes":{}},{"id":"34033fdb84866032","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/34033fdb84866032.json","place_type":"neighborhood","name":"Amsterdamscheveld","full_name":"Amsterdamscheveld, Emmen","country_code":"NL","country":"The Netherlands","contained_within":[{"id":"bd593b98d3277413","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/bd593b98d3277413.json","place_type":"city","name":"Emmen","full_name":"Emmen, Nederland","country_code":"NL","country":"The Netherlands","centroid":[6.952461959050538,52.75285365],"bounding_box":{"type":"Polygon","coordinates":[[[6.8263158,52.6327357],[6.8263158,52.8729716],[7.0926136,52.8729716],[7.0926136,52.6327357],[6.8263158,52.6327357]]]},"attributes":{}}],"centroid":[6.9184542815347765,52.6909569408471],"bounding_box":{"type":"Polygon","coordinates":[[[6.90917004254957,52.6839229502653],[6.90917004254957,52.6979909314289],[6.92513464497432,52.6979909314289],[6.92513464497432,52.6839229502653],[6.90917004254957,52.6839229502653]]]},"attributes":{}},{"id":"36b507ef2eebeced","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/36b507ef2eebeced.json","place_type":"neighborhood","name":"Nieuw-Amsterdam-Centrum","full_name":"Nieuw-Amsterdam-Centrum, Emmen","country_code":"NL","country":"The Netherlands","contained_within":[{"id":"bd593b98d3277413","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/bd593b98d3277413.json","place_type":"city","name":"Emmen","full_name":"Emmen, Nederland","country_code":"NL","country":"The Netherlands","centroid":[6.952461959050538,52.75285365],"bounding_box":{"type":"Polygon","coordinates":[[[6.8263158,52.6327357],[6.8263158,52.8729716],[7.0926136,52.8729716],[7.0926136,52.6327357],[6.8263158,52.6327357]]]},"attributes":{}}],"centroid":[6.859243233543406,52.70883893584595],"bounding_box":{"type":"Polygon","coordinates":[[[6.84660242442842,52.6924882873464],[6.84660242442842,52.7251895843455],[6.87877464927096,52.7251895843455],[6.87877464927096,52.6924882873464],[6.84660242442842,52.6924882873464]]]},"attributes":{}},{"id":"42d34e9faa2b4dc6","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/42d34e9faa2b4dc6.json","place_type":"neighborhood","name":"Amsterdamse Bos","full_name":"Amsterdamse Bos, Amstelveen","country_code":"NL","country":"The Netherlands","contained_within":[{"id":"be6da6fc44d6fd09","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/be6da6fc44d6fd09.json","place_type":"city","name":"Amstelveen","full_name":"Amstelveen, Nederland","country_code":"NL","country":"The Netherlands","centroid":[4.852805257748059,52.2862412],"bounding_box":{"type":"Polygon","coordinates":[[[4.7951199,52.2418745],[4.7951199,52.3306079],[4.9092753,52.3306079],[4.9092753,52.2418745],[4.7951199,52.2418745]]]},"attributes":{}}],"centroid":[4.828504535673222,52.310381530918306],"bounding_box":{"type":"Polygon","coordinates":[[[4.80951516342238,52.2906215346603],[4.80951516342238,52.3301415271763],[4.85648163248058,52.3301415271763],[4.85648163248058,52.2906215346603],[4.80951516342238,52.2906215346603]]]},"attributes":{}},{"id":"3c0675b1ab813077","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/3c0675b1ab813077.json","place_type":"city","name":"Amsterdam","full_name":"Amsterdam, South Africa","country_code":"ZA","country":"South Africa","contained_within":[{"id":"5679c21e1181c3a3","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/5679c21e1181c3a3.json","place_type":"admin","name":"Mpumalanga","full_name":"Mpumalanga","country_code":"ZA","country":"South Africa","centroid":[30.158989601575485,-25.731830000000002],"bounding_box":{"type":"Polygon","coordinates":[[[28.2434629,-27.5062538],[28.2434629,-23.9574062],[32.0339072,-23.9574062],[32.0339072,-27.5062538],[28.2434629,-27.5062538]]]},"attributes":{}}],"centroid":[30.665700090075823,-26.638494],"bounding_box":{"type":"Polygon","coordinates":[[[30.6473754,-26.6670719],[30.6473754,-26.6099161],[30.6860752,-26.6099161],[30.6860752,-26.6670719],[30.6473754,-26.6670719]]]},"attributes":{}}]},"query":{"url":"https:\/\/api.twitter.com\/1.1\/geo\/search.json?ip=127.0.0.1&query=AMSTERDAM&include_entities=true&include_ext_alt_text=true&tweet_mode=extended","type":"search","params":{"accuracy":0,"granularity":"neighborhood","query":"AMSTERDAM","autocomplete":false,"trim_place":false,"ip":"127.0.0.1"}}} diff --git a/functions/function/twitter-function/src/test/resources/response/search_users.json b/functions/function/twitter-function/src/test/resources/response/search_users.json deleted file mode 100644 index 6ad473be..00000000 --- a/functions/function/twitter-function/src/test/resources/response/search_users.json +++ /dev/null @@ -1 +0,0 @@ -[{"id":710705860343963648,"id_str":"710705860343963648","name":"Marto Tzolov","screen_name":"TzolovMarto","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":10,"friends_count":34,"listed_count":0,"created_at":"Fri Mar 18 05:54:16 +0000 2016","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"bg","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"F5F8FA","profile_background_image_url":null,"profile_background_image_url_https":null,"profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":326896547,"id_str":"326896547","name":"Mladen Tzolov","screen_name":"Rabotnik57","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":0,"friends_count":1,"listed_count":0,"created_at":"Thu Jun 30 17:25:54 +0000 2011","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":267603736,"id_str":"267603736","name":"Anatoli Tzolov","screen_name":"antzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":4,"friends_count":0,"listed_count":0,"created_at":"Thu Mar 17 06:40:31 +0000 2011","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":781497571629989888,"id_str":"781497571629989888","name":"Peyo Tzolov","screen_name":"peyo_tzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":1,"friends_count":34,"listed_count":0,"created_at":"Thu Sep 29 14:15:15 +0000 2016","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"F5F8FA","profile_background_image_url":null,"profile_background_image_url_https":null,"profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":838754923,"id_str":"838754923","name":"Ivan Stoyanov Tzolov","screen_name":"ivantzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":2,"friends_count":1,"listed_count":0,"created_at":"Fri Sep 21 23:43:31 +0000 2012","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":17,"lang":"en","status":{"created_at":"Fri Sep 12 08:47:45 +0000 2014","id":510349029784694784,"id_str":"510349029784694784","full_text":"http:\/\/t.co\/DAjlG8Nb2H","truncated":false,"display_text_range":[0,22],"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"http:\/\/t.co\/DAjlG8Nb2H","expanded_url":"http:\/\/startupmedia.net\/goodenough.html","display_url":"startupmedia.net\/goodenough.html","indices":[0,22]}]},"source":"\u003ca href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"und"},"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":891056763964977152,"id_str":"891056763964977152","name":"Marto Tzolov","screen_name":"marto_tzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":0,"friends_count":1,"listed_count":0,"created_at":"Fri Jul 28 22:04:22 +0000 2017","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"bg","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"F5F8FA","profile_background_image_url":null,"profile_background_image_url_https":null,"profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":765259099,"id_str":"765259099","name":"Veronique Tzolov","screen_name":"Veronica_Tzolov","location":"","description":"Animal lover, love One Direction, fun and outgoing","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":2,"friends_count":12,"listed_count":0,"created_at":"Sat Aug 18 07:22:00 +0000 2012","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":1,"lang":"en","status":{"created_at":"Wed Jan 02 14:23:37 +0000 2013","id":286477854449995776,"id_str":"286477854449995776","full_text":"@Harry_Styles \nHey Harry... I'm sure you get this a lot but you seem like a really sweet and fun guy... I hope one day I'll get to meet you","truncated":false,"display_text_range":[0,139],"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"Harry_Styles","name":"Harry Styles.","id":181561712,"id_str":"181561712","indices":[0,13]}],"urls":[]},"source":"\u003ca href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":181561712,"in_reply_to_user_id_str":"181561712","in_reply_to_screen_name":"Harry_Styles","geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"en"},"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":4236673876,"id_str":"4236673876","name":"Marto Tzolov","screen_name":"MartoTzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":10,"friends_count":59,"listed_count":0,"created_at":"Fri Nov 20 19:05:04 +0000 2015","favourites_count":43,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":1,"lang":"bg","status":{"created_at":"Sat Nov 21 16:54:02 +0000 2015","id":668110130723057664,"id_str":"668110130723057664","full_text":"https:\/\/t.co\/1sSG8HlbYP","truncated":false,"display_text_range":[0,23],"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/1sSG8HlbYP","expanded_url":"https:\/\/youtu.be\/4oxrPkgUuFI","display_url":"youtu.be\/4oxrPkgUuFI","indices":[0,23]}]},"source":"\u003ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":1,"favorite_count":23,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"und"},"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":725201088262103040,"id_str":"725201088262103040","name":"Aleksandar Tzolov Ma","screen_name":"ma_tzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":0,"friends_count":0,"listed_count":0,"created_at":"Wed Apr 27 05:53:07 +0000 2016","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"bg","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"F5F8FA","profile_background_image_url":null,"profile_background_image_url_https":null,"profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":2191899364,"id_str":"2191899364","name":"Philip Tzolov","screen_name":"holymolyass","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":1,"friends_count":0,"listed_count":0,"created_at":"Fri Nov 22 21:06:24 +0000 2013","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":3367523121,"id_str":"3367523121","name":"Sharoma Tzolov","screen_name":"SharomaT","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":4,"friends_count":0,"listed_count":0,"created_at":"Thu Jul 09 12:43:28 +0000 2015","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":1272912426,"id_str":"1272912426","name":"Elisa Tzolov","screen_name":"Ellu_xx","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":4,"friends_count":3,"listed_count":0,"created_at":"Sat Mar 16 17:57:20 +0000 2013","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"fi","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":1440863107,"id_str":"1440863107","name":"Veronica Tzolov","screen_name":"VeronicaTzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":2,"friends_count":8,"listed_count":0,"created_at":"Sun May 19 10:45:38 +0000 2013","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":65257397,"id_str":"65257397","name":"Rosko Tzolov","screen_name":"oldblindpew","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":0,"friends_count":1,"listed_count":0,"created_at":"Thu Aug 13 03:14:32 +0000 2009","favourites_count":2,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":555653883,"id_str":"555653883","name":"Ves Tzolov","screen_name":"VesTzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":1,"friends_count":0,"listed_count":0,"created_at":"Tue Apr 17 01:29:31 +0000 2012","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":3388816924,"id_str":"3388816924","name":"Sharoma Tzolov","screen_name":"sharoma_tzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":11,"friends_count":197,"listed_count":0,"created_at":"Thu Jul 23 07:57:45 +0000 2015","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":1,"lang":"en","status":{"created_at":"Thu Jul 23 08:06:47 +0000 2015","id":624128509959630848,"id_str":"624128509959630848","full_text":"Pick me to win tickets to experience the first NBA game in Africa #947NBA http:\/\/t.co\/BEn2v37H7D #947NBA via @947","truncated":false,"display_text_range":[0,113],"entities":{"hashtags":[{"text":"947NBA","indices":[66,73]},{"text":"947NBA","indices":[97,104]}],"symbols":[],"user_mentions":[{"screen_name":"947","name":"947","id":41780491,"id_str":"41780491","indices":[109,113]}],"urls":[{"url":"http:\/\/t.co\/BEn2v37H7D","expanded_url":"http:\/\/bit.ly\/1Vazq3V","display_url":"bit.ly\/1Vazq3V","indices":[74,96]}]},"source":"\u003ca href=\"http:\/\/mobile.twitter.com\" rel=\"nofollow\"\u003eMobile Web\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":5,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":497663678,"id_str":"497663678","name":"Maria Tzolov","screen_name":"mariatzolov","location":"","description":"i like dylan o'brien and mac n cheese","url":"http:\/\/t.co\/Vp5OnuTrT0","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/Vp5OnuTrT0","expanded_url":"http:\/\/purelymaria.tumblr.com","display_url":"purelymaria.tumblr.com","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":83,"friends_count":235,"listed_count":0,"created_at":"Mon Feb 20 07:09:19 +0000 2012","favourites_count":41,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":428,"lang":"en","status":{"created_at":"Tue Jan 20 08:03:02 +0000 2015","id":557448200227803136,"id_str":"557448200227803136","full_text":"RT @zaynmalik: So were in NZ how's every1 doing ?","truncated":false,"display_text_range":[0,49],"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"zaynmalik","name":"zayn","id":176566242,"id_str":"176566242","indices":[3,13]}],"urls":[]},"source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Thu Apr 19 06:57:07 +0000 2012","id":192869420853497856,"id_str":"192869420853497856","full_text":"So were in NZ how's every1 doing ?","truncated":false,"display_text_range":[0,34],"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[]},"source":"\u003ca href=\"http:\/\/blackberry.com\/twitter\" rel=\"nofollow\"\u003eTwitter for BlackBerry\u00ae\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":13160,"favorite_count":10940,"favorited":false,"retweeted":false,"lang":"en"},"is_quote_status":false,"retweet_count":13160,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"en"},"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/517266103186120704\/JdAwOnwF_normal.jpeg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/517266103186120704\/JdAwOnwF_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/497663678\/1412160774","profile_image_extensions_alt_text":null,"profile_link_color":"0084B4","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":467216441,"id_str":"467216441","name":"George Tzolov","screen_name":"gtzolov","location":"Bulgaria","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":true,"followers_count":4,"friends_count":175,"listed_count":1,"created_at":"Wed Jan 18 07:18:51 +0000 2012","favourites_count":34,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":168,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/841011507508965376\/lkmRA0q2_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/841011507508965376\/lkmRA0q2_normal.jpg","profile_image_extensions_alt_text":null,"profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":949949047,"id_str":"949949047","name":"Milen Tzolov","screen_name":"MilenTzolov","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":true,"followers_count":0,"friends_count":0,"listed_count":0,"created_at":"Thu Nov 15 15:28:24 +0000 2012","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/2852620531\/6eeafeb0c22030e59c2226a6a508fc74_normal.jpeg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/2852620531\/6eeafeb0c22030e59c2226a6a508fc74_normal.jpeg","profile_image_extensions_alt_text":null,"profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},{"id":454245310,"id_str":"454245310","name":"Simeon Tzolov","screen_name":"simeon190","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":true,"followers_count":0,"friends_count":13,"listed_count":0,"created_at":"Tue Jan 03 19:44:35 +0000 2012","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":0,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_image_url_https":"https:\/\/abs.twimg.com\/sticky\/default_profile_images\/default_profile_normal.png","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":true,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"}] diff --git a/functions/function/twitter-function/src/test/resources/response/trends.json b/functions/function/twitter-function/src/test/resources/response/trends.json deleted file mode 100644 index 76901527..00000000 --- a/functions/function/twitter-function/src/test/resources/response/trends.json +++ /dev/null @@ -1 +0,0 @@ -[{"trends":[{"name":"Phillip Danault","url":"http:\/\/twitter.com\/search?q=%22Phillip+Danault%22","promoted_content":null,"query":"%22Phillip+Danault%22","tweet_volume":null},{"name":"Mali","url":"http:\/\/twitter.com\/search?q=Mali","promoted_content":null,"query":"Mali","tweet_volume":26504},{"name":"Paul Byron","url":"http:\/\/twitter.com\/search?q=%22Paul+Byron%22","promoted_content":null,"query":"%22Paul+Byron%22","tweet_volume":null},{"name":"Adonis Stevenson","url":"http:\/\/twitter.com\/search?q=%22Adonis+Stevenson%22","promoted_content":null,"query":"%22Adonis+Stevenson%22","tweet_volume":null},{"name":"Marcus Stroman","url":"http:\/\/twitter.com\/search?q=%22Marcus+Stroman%22","promoted_content":null,"query":"%22Marcus+Stroman%22","tweet_volume":null},{"name":"Mike Smith","url":"http:\/\/twitter.com\/search?q=%22Mike+Smith%22","promoted_content":null,"query":"%22Mike+Smith%22","tweet_volume":null},{"name":"Brandon Pirri","url":"http:\/\/twitter.com\/search?q=%22Brandon+Pirri%22","promoted_content":null,"query":"%22Brandon+Pirri%22","tweet_volume":null},{"name":"#WASvsTEN","url":"http:\/\/twitter.com\/search?q=%23WASvsTEN","promoted_content":null,"query":"%23WASvsTEN","tweet_volume":null},{"name":"#stlblues","url":"http:\/\/twitter.com\/search?q=%23stlblues","promoted_content":null,"query":"%23stlblues","tweet_volume":null},{"name":"Tatar","url":"http:\/\/twitter.com\/search?q=Tatar","promoted_content":null,"query":"Tatar","tweet_volume":null},{"name":"Bob Cole","url":"http:\/\/twitter.com\/search?q=%22Bob+Cole%22","promoted_content":null,"query":"%22Bob+Cole%22","tweet_volume":null},{"name":"Patrice Bergeron","url":"http:\/\/twitter.com\/search?q=%22Patrice+Bergeron%22","promoted_content":null,"query":"%22Patrice+Bergeron%22","tweet_volume":null},{"name":"#ResignTrump","url":"http:\/\/twitter.com\/search?q=%23ResignTrump","promoted_content":null,"query":"%23ResignTrump","tweet_volume":330688},{"name":"Christmas","url":"http:\/\/twitter.com\/search?q=Christmas","promoted_content":null,"query":"Christmas","tweet_volume":2824948},{"name":"Happy Holidays","url":"http:\/\/twitter.com\/search?q=%22Happy+Holidays%22","promoted_content":null,"query":"%22Happy+Holidays%22","tweet_volume":178360},{"name":"#WinterSolstice","url":"http:\/\/twitter.com\/search?q=%23WinterSolstice","promoted_content":null,"query":"%23WinterSolstice","tweet_volume":27358},{"name":"#The80sTaughtMe","url":"http:\/\/twitter.com\/search?q=%23The80sTaughtMe","promoted_content":null,"query":"%23The80sTaughtMe","tweet_volume":14044},{"name":"Atlas","url":"http:\/\/twitter.com\/search?q=Atlas","promoted_content":null,"query":"Atlas","tweet_volume":29402},{"name":"Liverpool","url":"http:\/\/twitter.com\/search?q=Liverpool","promoted_content":null,"query":"Liverpool","tweet_volume":141820},{"name":"manchester united","url":"http:\/\/twitter.com\/search?q=%22manchester+united%22","promoted_content":null,"query":"%22manchester+united%22","tweet_volume":93060},{"name":"Rocket","url":"http:\/\/twitter.com\/search?q=Rocket","promoted_content":null,"query":"Rocket","tweet_volume":23740},{"name":"F\u00EAtes","url":"http:\/\/twitter.com\/search?q=F%C3%AAtes","promoted_content":null,"query":"F%C3%AAtes","tweet_volume":47651},{"name":"Maple Valley","url":"http:\/\/twitter.com\/search?q=%22Maple+Valley%22","promoted_content":null,"query":"%22Maple+Valley%22","tweet_volume":null},{"name":"Omar Khadr","url":"http:\/\/twitter.com\/search?q=%22Omar+Khadr%22","promoted_content":null,"query":"%22Omar+Khadr%22","tweet_volume":null},{"name":"La Presse","url":"http:\/\/twitter.com\/search?q=%22La+Presse%22","promoted_content":null,"query":"%22La+Presse%22","tweet_volume":null},{"name":"Man City","url":"http:\/\/twitter.com\/search?q=%22Man+City%22","promoted_content":null,"query":"%22Man+City%22","tweet_volume":56236},{"name":"Yorkville","url":"http:\/\/twitter.com\/search?q=Yorkville","promoted_content":null,"query":"Yorkville","tweet_volume":null},{"name":"Kawhi Leonard","url":"http:\/\/twitter.com\/search?q=%22Kawhi+Leonard%22","promoted_content":null,"query":"%22Kawhi+Leonard%22","tweet_volume":null},{"name":"Lotto Max","url":"http:\/\/twitter.com\/search?q=%22Lotto+Max%22","promoted_content":null,"query":"%22Lotto+Max%22","tweet_volume":null},{"name":"Real Madrid","url":"http:\/\/twitter.com\/search?q=%22Real+Madrid%22","promoted_content":null,"query":"%22Real+Madrid%22","tweet_volume":120739},{"name":"White Rock","url":"http:\/\/twitter.com\/search?q=%22White+Rock%22","promoted_content":null,"query":"%22White+Rock%22","tweet_volume":null},{"name":"Pogba","url":"http:\/\/twitter.com\/search?q=Pogba","promoted_content":null,"query":"Pogba","tweet_volume":70788},{"name":"Rangers","url":"http:\/\/twitter.com\/search?q=Rangers","promoted_content":null,"query":"Rangers","tweet_volume":17174},{"name":"Arsenal","url":"http:\/\/twitter.com\/search?q=Arsenal","promoted_content":null,"query":"Arsenal","tweet_volume":151598},{"name":"Boxing Day","url":"http:\/\/twitter.com\/search?q=%22Boxing+Day%22","promoted_content":null,"query":"%22Boxing+Day%22","tweet_volume":23196},{"name":"York University","url":"http:\/\/twitter.com\/search?q=%22York+University%22","promoted_content":null,"query":"%22York+University%22","tweet_volume":null},{"name":"Slovakia","url":"http:\/\/twitter.com\/search?q=Slovakia","promoted_content":null,"query":"Slovakia","tweet_volume":null},{"name":"Finance Department","url":"http:\/\/twitter.com\/search?q=%22Finance+Department%22","promoted_content":null,"query":"%22Finance+Department%22","tweet_volume":null},{"name":"Chelsea","url":"http:\/\/twitter.com\/search?q=Chelsea","promoted_content":null,"query":"Chelsea","tweet_volume":97038},{"name":"New Year","url":"http:\/\/twitter.com\/search?q=%22New+Year%22","promoted_content":null,"query":"%22New+Year%22","tweet_volume":197747},{"name":"Bria Myles","url":"http:\/\/twitter.com\/search?q=%22Bria+Myles%22","promoted_content":null,"query":"%22Bria+Myles%22","tweet_volume":47871},{"name":"Parliament","url":"http:\/\/twitter.com\/search?q=Parliament","promoted_content":null,"query":"Parliament","tweet_volume":51213},{"name":"#BirdBox","url":"http:\/\/twitter.com\/search?q=%23BirdBox","promoted_content":null,"query":"%23BirdBox","tweet_volume":30984},{"name":"#BCstorm","url":"http:\/\/twitter.com\/search?q=%23BCstorm","promoted_content":null,"query":"%23BCstorm","tweet_volume":null},{"name":"#MCICRY","url":"http:\/\/twitter.com\/search?q=%23MCICRY","promoted_content":null,"query":"%23MCICRY","tweet_volume":43210},{"name":"#Caturday","url":"http:\/\/twitter.com\/search?q=%23Caturday","promoted_content":null,"query":"%23Caturday","tweet_volume":13967},{"name":"#CARMUN","url":"http:\/\/twitter.com\/search?q=%23CARMUN","promoted_content":null,"query":"%23CARMUN","tweet_volume":92394},{"name":"#Aquaman","url":"http:\/\/twitter.com\/search?q=%23Aquaman","promoted_content":null,"query":"%23Aquaman","tweet_volume":40278},{"name":"#ReasonsNotToBuildTheWall","url":"http:\/\/twitter.com\/search?q=%23ReasonsNotToBuildTheWall","promoted_content":null,"query":"%23ReasonsNotToBuildTheWall","tweet_volume":31522},{"name":"#AllStars4","url":"http:\/\/twitter.com\/search?q=%23AllStars4","promoted_content":null,"query":"%23AllStars4","tweet_volume":25908}],"as_of":"2018-12-30T16:38:56Z","created_at":"2018-12-22T23:47:56Z","locations":[{"name":"Winnipeg","woeid":2972}]}] diff --git a/functions/pom.xml b/functions/pom.xml deleted file mode 100644 index db3d8bee..00000000 --- a/functions/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud.fn - java-functions-parent - 5.0.0-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/functions/spring-functions-parent/pom.xml b/functions/spring-functions-parent/pom.xml deleted file mode 100644 index 4fd7dd25..00000000 --- a/functions/spring-functions-parent/pom.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.stream.app - stream-applications-build - 5.0.0-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/functions/supplier/debezium-supplier/pom.xml b/functions/supplier/debezium-supplier/pom.xml deleted file mode 100644 index a36df9fd..00000000 --- a/functions/supplier/debezium-supplier/pom.xml +++ /dev/null @@ -1,146 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/debezium-supplier/src/main/java/org/springframework/cloud/fn/supplier/debezium/DebeziumReactiveConsumerConfiguration.java b/functions/supplier/debezium-supplier/src/main/java/org/springframework/cloud/fn/supplier/debezium/DebeziumReactiveConsumerConfiguration.java deleted file mode 100644 index ed8ad039..00000000 --- a/functions/supplier/debezium-supplier/src/main/java/org/springframework/cloud/fn/supplier/debezium/DebeziumReactiveConsumerConfiguration.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.debezium; - -import java.lang.reflect.Field; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.function.Consumer; -import java.util.function.Supplier; - -import io.debezium.engine.ChangeEvent; -import io.debezium.engine.DebeziumEngine; -import io.debezium.engine.DebeziumEngine.Builder; -import io.debezium.engine.Header; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Sinks; - -import org.springframework.beans.factory.BeanClassLoaderAware; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.debezium.DebeziumEngineBuilderAutoConfiguration; -import org.springframework.cloud.fn.common.debezium.DebeziumProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.util.ClassUtils; -import org.springframework.util.MimeTypeUtils; - -/** - * - * @author Christian Tzolov - * @author Artem Bilan - */ -@AutoConfiguration(after = DebeziumEngineBuilderAutoConfiguration.class) -@EnableConfigurationProperties({ DebeziumSupplierProperties.class }) -@ConditionalOnBean(DebeziumEngine.Builder.class) -public class DebeziumReactiveConsumerConfiguration implements BeanClassLoaderAware { - - private static final Log logger = LogFactory.getLog(DebeziumReactiveConsumerConfiguration.class); - /** - * ORG_SPRINGFRAMEWORK_KAFKA_SUPPORT_KAFKA_NULL. - */ - public static final String ORG_SPRINGFRAMEWORK_KAFKA_SUPPORT_KAFKA_NULL = "org.springframework.kafka.support.KafkaNull"; - - private Object kafkaNull = null; - - @Override - public void setBeanClassLoader(ClassLoader classLoader) { - try { - Class clazz = ClassUtils.forName(ORG_SPRINGFRAMEWORK_KAFKA_SUPPORT_KAFKA_NULL, classLoader); - Field field = clazz.getDeclaredField("INSTANCE"); - this.kafkaNull = field.get(null); - } - catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) { - } - } - - /** - * Reactive Streams, single subscriber, sink used to push down the change event signals received from the Debezium - * Engine. - */ - private final Sinks.Many> eventSink = Sinks.many().unicast().onBackpressureError(); - - /** - * Debezium Engine is designed to be submitted to an {@link ExecutorService} for execution by a single thread, and a - * running connector can be stopped either by calling {@link #stop()} from another thread or by interrupting the - * running thread (e.g., as is the case with {@link ExecutorService#shutdownNow()}). - */ - private final ExecutorService debeziumExecutor = Executors.newSingleThreadExecutor(); - - @Bean - public DebeziumEngine> debeziumEngine( - Consumer> changeEventConsumer, - Builder> debeziumEngineBuilder) { - - return debeziumEngineBuilder.notifying(changeEventConsumer).build(); - } - - @Bean - public Supplier>> debeziumSupplier(DebeziumEngine> debeziumEngine) { - - return () -> this.eventSink.asFlux() - .doOnRequest(r -> debeziumExecutor.execute(debeziumEngine)) - .doOnTerminate(debeziumExecutor::shutdownNow); - } - - @Bean - @ConditionalOnMissingBean - public Consumer> changeEventConsumer(DebeziumProperties engineProperties, - DebeziumSupplierProperties supplierProperties) { - - return new ChangeEventConsumer(engineProperties.getPayloadFormat().contentType(), - supplierProperties.isCopyHeaders(), - this.eventSink); - } - - /** - * Format-agnostic change event consumer. - */ - private final class ChangeEventConsumer implements Consumer> { - - private final String contentType; - private final boolean copyHeaders; - private final Sinks.Many> eventSink; - - private ChangeEventConsumer(String contentType, boolean copyHeaders, Sinks.Many> eventSink) { - this.contentType = contentType; - this.copyHeaders = copyHeaders; - this.eventSink = eventSink; - } - - @Override - public void accept(ChangeEvent changeEvent) { - if (logger.isDebugEnabled()) { - logger.debug("[Debezium Event]: " + changeEvent.key()); - } - - Object key = changeEvent.key(); - Object payload = changeEvent.value(); - String destination = changeEvent.destination(); - - // When the tombstone event is enabled, Debezium serializes the payload to null (e.g. empty payload) - // while the metadata information is carried through the headers (debezium_key). - // Note: Event for none flattened responses, when the debezium.properties.tombstones.on.delete=true - // (default), tombstones are generate by Debezium and handled by the code below. - if (payload == null) { - payload = DebeziumReactiveConsumerConfiguration.this.kafkaNull; - } - - // If payload is still null ignore the message. - if (payload == null) { - logger.info("Dropped null payload message"); - return; - } - - MessageBuilder messageBuilder = MessageBuilder - .withPayload(payload) - .setHeader("debezium_key", key) - .setHeader("debezium_destination", destination) - .setHeader(MessageHeaders.CONTENT_TYPE, - (payload.equals(DebeziumReactiveConsumerConfiguration.this.kafkaNull)) - ? MimeTypeUtils.TEXT_PLAIN_VALUE - : this.contentType); - - if (this.copyHeaders) { - List> headers = changeEvent.headers(); - if (headers != null && !headers.isEmpty()) { - Iterator> itr = headers.iterator(); - while (itr.hasNext()) { - Header header = itr.next(); - messageBuilder.setHeader(header.getKey(), header.getValue()); - } - } - } - - this.eventSink.tryEmitNext(messageBuilder.build()); - } - } - -} diff --git a/functions/supplier/debezium-supplier/src/main/java/org/springframework/cloud/fn/supplier/debezium/DebeziumSupplierProperties.java b/functions/supplier/debezium-supplier/src/main/java/org/springframework/cloud/fn/supplier/debezium/DebeziumSupplierProperties.java deleted file mode 100644 index 55ab2018..00000000 --- a/functions/supplier/debezium-supplier/src/main/java/org/springframework/cloud/fn/supplier/debezium/DebeziumSupplierProperties.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.debezium; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("debezium.supplier") -public class DebeziumSupplierProperties { - - /** - * Copy Change Event headers into Message headers. - */ - private boolean copyHeaders = true; - - public boolean isCopyHeaders() { - return copyHeaders; - } - - public void setCopyHeaders(boolean copyHeaders) { - this.copyHeaders = copyHeaders; - } -} diff --git a/functions/supplier/debezium-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/supplier/debezium-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 2c4a031c..00000000 --- a/functions/supplier/debezium-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.supplier.debezium.DebeziumReactiveConsumerConfiguration diff --git a/functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumReactiveConsumerConfigurationTests.java b/functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumReactiveConsumerConfigurationTests.java deleted file mode 100644 index a11cefcf..00000000 --- a/functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumReactiveConsumerConfigurationTests.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.debezium.it.supplier; - -import io.debezium.engine.DebeziumEngine; -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.test.context.FilteredClassLoader; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.cloud.fn.common.debezium.DebeziumEngineBuilderAutoConfiguration; -import org.springframework.cloud.fn.supplier.debezium.DebeziumReactiveConsumerConfiguration; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link DebeziumReactiveConsumerConfiguration}. - * - * @author Christian Tzolov - */ -public class DebeziumReactiveConsumerConfigurationTests { - - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(DebeziumEngineBuilderAutoConfiguration.class, - DebeziumReactiveConsumerConfiguration.class)); - - // We have the debezium connectors on the classpath by default. - - @Test - void noConnectorNoProperty() { - this.contextRunner.run((context) -> { - assertThat(context).doesNotHaveBean(DebeziumEngine.class); - }); - } - - @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) -> { - assertThat(context).hasSingleBean(DebeziumEngine.class); - }); - } - -} diff --git a/functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumSupplierIntegrationTest.java b/functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumSupplierIntegrationTest.java deleted file mode 100644 index f19dc99e..00000000 --- a/functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/DebeziumSupplierIntegrationTest.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.debezium.it.supplier; - -import java.util.function.Supplier; - -import org.junit.jupiter.api.Test; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.messaging.Message; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, properties = { - "spring.cloud.function.definition=debeziumSupplier", - - // https://debezium.io/documentation/reference/transformations/event-flattening.html - "debezium.properties.transforms=unwrap", - "debezium.properties.transforms.unwrap.type=io.debezium.transforms.ExtractNewRecordState", - "debezium.properties.transforms.unwrap.drop.tombstones=true", - "debezium.properties.transforms.unwrap.delete.handling.mode=rewrite", - "debezium.properties.transforms.unwrap.add.fields=name,db,op,table", - - "debezium.properties.schema.history.internal=io.debezium.relational.history.MemorySchemaHistory", - "debezium.properties.offset.storage=org.apache.kafka.connect.storage.MemoryOffsetBackingStore", - - // Drop schema from the message payload. - "debezium.properties.key.converter.schemas.enable=false", - "debezium.properties.value.converter.schemas.enable=false", - - "debezium.properties.topic.prefix=my-topic", - "debezium.properties.name=my-connector", - "debezium.properties.database.server.id=85744", - "debezium.properties.connector.class=io.debezium.connector.mysql.MySqlConnector", - "debezium.properties.database.user=debezium", - "debezium.properties.database.password=dbz", - "debezium.properties.database.hostname=localhost", - - "debezium.properties.table.include.list=inventory.customers, inventory.addresses", - - // JdbcTemplate config. - "app.datasource.username=root", - "app.datasource.password=debezium", - "app.datasource.driver-class-name=com.mysql.cj.jdbc.Driver", - "app.datasource.type=com.zaxxer.hikari.HikariDataSource" -}) -@Testcontainers -public class DebeziumSupplierIntegrationTest { - - public static final String IMAGE_TAG = "2.3.3.Final"; - public static final String DEBEZIUM_EXAMPLE_MYSQL_IMAGE = "debezium/example-mysql:" + IMAGE_TAG; - - @Container - static GenericContainer debeziumMySQL = new GenericContainer<>(DEBEZIUM_EXAMPLE_MYSQL_IMAGE) - .withEnv("MYSQL_ROOT_PASSWORD", "debezium") - .withEnv("MYSQL_USER", "mysqluser") - .withEnv("MYSQL_PASSWORD", "mysqlpw") - .withExposedPorts(3306); - - @DynamicPropertySource - static void mysqlDbProperties(DynamicPropertyRegistry registry) { - registry.add("debezium.properties.database.port", () -> debeziumMySQL.getMappedPort(3306)); - registry.add("app.datasource.url", - () -> String.format("jdbc:mysql://localhost:%d/%s?enabledTLSProtocols=TLSv1.2", - debeziumMySQL.getMappedPort(3306), "inventory")); // JdbcTemplate config. - } - - @Autowired - private Supplier>> debeziumSupplier; - - @Autowired - private JdbcTemplate jdbcTemplate; - - @Test - void testDebeziumSupplier() { - - jdbcTemplate.update( - "INSERT INTO `customers`(`first_name`,`last_name`,`email`) VALUES('Test666', 'Test666', 'Test666@spring.org')"); - - Flux> messageFlux = this.debeziumSupplier.get(); - - // Message size should correspond to the number of insert statements in: - // https://github.com/debezium/container-images/blob/main/examples/mysql/2.3/inventory.sql - // filtered by Customers and Addresses table. - StepVerifier.create(messageFlux) - .expectNextCount(16) // Skip the DDL transaction logs. - - // Customers table - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":1001,\"first_name\":\"Sally\",\"last_name\":\"Thomas\",\"email\":\"sally.thomas@acme.com\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"customers\",\"__deleted\":\"false\"}")) - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":1002,\"first_name\":\"George\",\"last_name\":\"Bailey\",\"email\":\"gbailey@foobar.com\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"customers\",\"__deleted\":\"false\"}")) - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":1003,\"first_name\":\"Edward\",\"last_name\":\"Walker\",\"email\":\"ed@walker.com\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"customers\",\"__deleted\":\"false\"}")) - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":1004,\"first_name\":\"Anne\",\"last_name\":\"Kretchmar\",\"email\":\"annek@noanswer.org\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"customers\",\"__deleted\":\"false\"}")) - - // NEW Customer Insert - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":1005,\"first_name\":\"Test666\",\"last_name\":\"Test666\",\"email\":\"Test666@spring.org\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"customers\",\"__deleted\":\"false\"}")) - - // Addresses table - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":10,\"customer_id\":1001,\"street\":\"3183 Moore Avenue\",\"city\":\"Euless\",\"state\":\"Texas\",\"zip\":\"76036\",\"type\":\"SHIPPING\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"addresses\",\"__deleted\":\"false\"}")) - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":11,\"customer_id\":1001,\"street\":\"2389 Hidden Valley Road\",\"city\":\"Harrisburg\",\"state\":\"Pennsylvania\",\"zip\":\"17116\",\"type\":\"BILLING\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"addresses\",\"__deleted\":\"false\"}")) - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":12,\"customer_id\":1002,\"street\":\"281 Riverside Drive\",\"city\":\"Augusta\",\"state\":\"Georgia\",\"zip\":\"30901\",\"type\":\"BILLING\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"addresses\",\"__deleted\":\"false\"}")) - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":13,\"customer_id\":1003,\"street\":\"3787 Brownton Road\",\"city\":\"Columbus\",\"state\":\"Mississippi\",\"zip\":\"39701\",\"type\":\"SHIPPING\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"addresses\",\"__deleted\":\"false\"}")) - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":14,\"customer_id\":1003,\"street\":\"2458 Lost Creek Road\",\"city\":\"Bethlehem\",\"state\":\"Pennsylvania\",\"zip\":\"18018\",\"type\":\"SHIPPING\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"addresses\",\"__deleted\":\"false\"}")) - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":15,\"customer_id\":1003,\"street\":\"4800 Simpson Square\",\"city\":\"Hillsdale\",\"state\":\"Oklahoma\",\"zip\":\"73743\",\"type\":\"BILLING\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"addresses\",\"__deleted\":\"false\"}")) - .assertNext((message) -> assertThat(payloadString(message)) - .isEqualTo( - "{\"id\":16,\"customer_id\":1004,\"street\":\"1289 University Hill Road\",\"city\":\"Canehill\",\"state\":\"Arkansas\",\"zip\":\"72717\",\"type\":\"LIVING\",\"__name\":\"my-topic\",\"__db\":\"inventory\",\"__op\":\"r\",\"__table\":\"addresses\",\"__deleted\":\"false\"}")) - .thenCancel() - .verify(); - - } - - private String payloadString(Message message) { - return new String((byte[]) message.getPayload()); - } - - @SpringBootApplication(exclude = { MongoAutoConfiguration.class }) - @Import({TestJdbcTemplateConfiguration.class}) - static class DebeziumSupplierTestApplication { - } - -} diff --git a/functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/TestJdbcTemplateConfiguration.java b/functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/TestJdbcTemplateConfiguration.java deleted file mode 100644 index 9e7918ae..00000000 --- a/functions/supplier/debezium-supplier/src/test/java/org/springframework/cloud/fn/supplier/debezium/it/supplier/TestJdbcTemplateConfiguration.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.debezium.it.supplier; - -import javax.sql.DataSource; - -import com.zaxxer.hikari.HikariDataSource; - -import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.jdbc.core.JdbcTemplate; - -/** - * - * @author Christian Tzolov - */ -@Configuration -public class TestJdbcTemplateConfiguration { - @Bean - public JdbcTemplate myJdbcTemplate(DataSource dataSource) { - return new JdbcTemplate(dataSource); - } - - @Bean - @Primary - @ConfigurationProperties("app.datasource") - public DataSourceProperties dataSourceProperties() { - return new DataSourceProperties(); - } - - @Bean - public HikariDataSource dataSource(DataSourceProperties dataSourceProperties) { - return dataSourceProperties.initializeDataSourceBuilder() - .type(HikariDataSource.class) - .build(); - } - -} diff --git a/functions/supplier/debezium-supplier/src/test/resources/logback-test.xml b/functions/supplier/debezium-supplier/src/test/resources/logback-test.xml deleted file mode 100644 index 227674db..00000000 --- a/functions/supplier/debezium-supplier/src/test/resources/logback-test.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n - - - - - - - - - - diff --git a/functions/supplier/file-supplier/README.adoc b/functions/supplier/file-supplier/README.adoc deleted file mode 100644 index 1179253c..00000000 --- a/functions/supplier/file-supplier/README.adoc +++ /dev/null @@ -1,37 +0,0 @@ -# File Supplier - -This module provides a File supplier that can be reused and composed in other applications. -The `Supplier` uses the `FileInboundChannelAdapter` from Spring Integration. -`FileSupplier` is implemented as a `java.util.function.Supplier`. -This supplier gives you a reactive stream of files from the provided directory as the supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and receive the data. - -## Beans for injection - -You can import the `FileSupplierConfiguration` in the application and then inject the following bean. - -`fileSupplier` - -You need to inject this as `Supplier>>`. - -You can use `fileSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `file.supplier`. -There are also properties that need to be used with the prefix `file.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/file/FileSupplierProperties.java[FileSupplierProperties]. -See link:src/main/java/org/springframework/cloud/fn/supplier/file/FileConsumerProperties.java[this] also. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `FileInboundChannelAdapterSpec` configuration used by the `fileSupplier`. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/file[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/file-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a File Source. diff --git a/functions/supplier/file-supplier/pom.xml b/functions/supplier/file-supplier/pom.xml deleted file mode 100644 index dd7e6521..00000000 --- a/functions/supplier/file-supplier/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/file-supplier/src/main/java/org/springframework/cloud/fn/supplier/file/FileSupplierConfiguration.java b/functions/supplier/file-supplier/src/main/java/org/springframework/cloud/fn/supplier/file/FileSupplierConfiguration.java deleted file mode 100644 index da8dfc4c..00000000 --- a/functions/supplier/file-supplier/src/main/java/org/springframework/cloud/fn/supplier/file/FileSupplierConfiguration.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright 2020-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.file; - -import java.io.File; -import java.util.function.Supplier; - -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; -import reactor.core.scheduler.Schedulers; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.cloud.fn.common.file.FileConsumerProperties; -import org.springframework.cloud.fn.common.file.FileReadingMode; -import org.springframework.cloud.fn.common.file.FileUtils; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Lazy; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlowBuilder; -import org.springframework.integration.file.FileReadingMessageSource; -import org.springframework.integration.file.dsl.FileInboundChannelAdapterSpec; -import org.springframework.integration.file.dsl.Files; -import org.springframework.integration.file.filters.ChainFileListFilter; -import org.springframework.integration.file.filters.FileListFilter; -import org.springframework.integration.file.filters.FileSystemPersistentAcceptOnceFileListFilter; -import org.springframework.integration.file.filters.RegexPatternFileListFilter; -import org.springframework.integration.file.filters.SimplePatternFileListFilter; -import org.springframework.integration.metadata.ConcurrentMetadataStore; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.util.StringUtils; - -/** - * @author Artem Bilan - * @author Soby Chacko - */ -@Configuration -@EnableConfigurationProperties({FileSupplierProperties.class, FileConsumerProperties.class}) -public class FileSupplierConfiguration { - - private static final String METADATA_STORE_PREFIX = "local-file-system-metadata-"; - - private final FileSupplierProperties fileSupplierProperties; - - private final FileConsumerProperties fileConsumerProperties; - - @Autowired - @Lazy - @Qualifier("fileMessageSource") - private FileReadingMessageSource fileMessageSource; - - public FileSupplierConfiguration(FileSupplierProperties fileSupplierProperties, - FileConsumerProperties fileConsumerProperties) { - - this.fileSupplierProperties = fileSupplierProperties; - this.fileConsumerProperties = fileConsumerProperties; - } - - @Bean - public ChainFileListFilter filter(ConcurrentMetadataStore metadataStore) { - ChainFileListFilter chainFilter = new ChainFileListFilter<>(); - if (StringUtils.hasText(this.fileSupplierProperties.getFilenamePattern())) { - chainFilter.addFilter(new SimplePatternFileListFilter(this.fileSupplierProperties.getFilenamePattern())); - } - else if (this.fileSupplierProperties.getFilenameRegex() != null) { - chainFilter.addFilter(new RegexPatternFileListFilter(this.fileSupplierProperties.getFilenameRegex())); - } - - if (this.fileSupplierProperties.isPreventDuplicates()) { - chainFilter.addFilter(new FileSystemPersistentAcceptOnceFileListFilter(metadataStore, METADATA_STORE_PREFIX)); - } - - return chainFilter; - } - - @Bean - public FileInboundChannelAdapterSpec fileMessageSource(FileListFilter fileListFilter, - @Nullable ComponentCustomizer fileInboundChannelAdapterSpecCustomizer) { - - FileInboundChannelAdapterSpec adapterSpec = - Files.inboundAdapter(this.fileSupplierProperties.getDirectory()) - .filter(fileListFilter); - if (fileInboundChannelAdapterSpecCustomizer != null) { - fileInboundChannelAdapterSpecCustomizer.customize(adapterSpec); - } - return adapterSpec; - } - - @Bean - public Flux> fileMessageFlux() { - return Mono.>create(monoSink -> - monoSink.onRequest(value -> - monoSink.success(this.fileMessageSource.receive()))) - .subscribeOn(Schedulers.boundedElastic()) - .repeatWhenEmpty(it -> it.delayElements(this.fileSupplierProperties.getDelayWhenEmpty())) - .repeat() - .doOnRequest(r -> this.fileMessageSource.start()); - } - - @Bean - @ConditionalOnExpression("environment['file.consumer.mode'] != 'ref'") - public Publisher> fileReadingFlow() { - IntegrationFlowBuilder flowBuilder = IntegrationFlow.from(fileMessageFlux()); - return FileUtils.enhanceFlowForReadingMode(flowBuilder, this.fileConsumerProperties) - .toReactivePublisher(); - } - - @Bean - public Supplier>> fileSupplier() { - if (this.fileConsumerProperties.getMode() == FileReadingMode.ref) { - return this::fileMessageFlux; - } - else { - return () -> Flux.from(fileReadingFlow()); - } - } - -} diff --git a/functions/supplier/file-supplier/src/main/java/org/springframework/cloud/fn/supplier/file/FileSupplierProperties.java b/functions/supplier/file-supplier/src/main/java/org/springframework/cloud/fn/supplier/file/FileSupplierProperties.java deleted file mode 100644 index d0870b64..00000000 --- a/functions/supplier/file-supplier/src/main/java/org/springframework/cloud/fn/supplier/file/FileSupplierProperties.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.file; - -import java.io.File; -import java.time.Duration; -import java.util.regex.Pattern; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * Properties for the file supplier. - * - * @author Gary Russell - * @author Artem Bilan - * @author Soby Chacko - */ -@ConfigurationProperties("file.supplier") -@Validated -public class FileSupplierProperties { - - private static final String DEFAULT_DIR = System.getProperty("java.io.tmpdir") + - File.separator + "file-supplier"; - - /** - * The directory to poll for new files. - */ - private File directory = new File(DEFAULT_DIR); - - /** - * Set to true to include an AcceptOnceFileListFilter which prevents duplicates. - */ - private boolean preventDuplicates = true; - - /** - * A simple ant pattern to match files. - */ - private String filenamePattern; - - /** - * A regex pattern to match files. - */ - private Pattern filenameRegex; - - /** - * Duration of delay when no new files are detected. - */ - private Duration delayWhenEmpty = Duration.ofSeconds(1); - - public File getDirectory() { - return this.directory; - } - - public void setDirectory(File directory) { - this.directory = directory; - } - - public boolean isPreventDuplicates() { - return this.preventDuplicates; - } - - public void setPreventDuplicates(boolean preventDuplicates) { - this.preventDuplicates = preventDuplicates; - } - - public String getFilenamePattern() { - return this.filenamePattern; - } - - public void setFilenamePattern(String filenamePattern) { - this.filenamePattern = filenamePattern; - } - - public Pattern getFilenameRegex() { - return this.filenameRegex; - } - - public void setFilenameRegex(Pattern filenameRegex) { - this.filenameRegex = filenameRegex; - } - - //@AssertTrue(message = "filenamePattern and filenameRegex are mutually exclusive") - - public boolean isExclusivePatterns() { - return !(this.filenamePattern != null && this.filenameRegex != null); - } - - public Duration getDelayWhenEmpty() { - return delayWhenEmpty; - } - - public void setDelayWhenEmpty(Duration delayWhenEmpty) { - this.delayWhenEmpty = delayWhenEmpty; - } - - -} diff --git a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/AbstractFileSupplierTests.java b/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/AbstractFileSupplierTests.java deleted file mode 100644 index aa3c1e5b..00000000 --- a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/AbstractFileSupplierTests.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.file; - -import java.nio.file.Path; -import java.util.Date; -import java.util.function.Supplier; - -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.io.TempDir; -import reactor.core.publisher.Flux; - -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.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.integration.file.FileReadingMessageSource; -import org.springframework.integration.file.dsl.FileInboundChannelAdapterSpec; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Soby Chacko - */ -@SpringBootTest -@DirtiesContext -public class AbstractFileSupplierTests { - - @TempDir - static Path tempDir; - - @Autowired - Supplier>> fileSupplier; - - @BeforeAll - public static void beforeAll() { - System.setProperty("file.supplier.directory", tempDir.toAbsolutePath().toString()); - } - - @AfterAll - public static void afterAll() { - System.clearProperty("file.supplier.directory"); - } - - @SpringBootApplication - static class FileSupplierTestApplication { - - @Bean - ComponentCustomizer fileInboundChannelAdapterSpecCustomizer() { - return (adapterSpec) -> adapterSpec.watchEvents(FileReadingMessageSource.WatchEventType.DELETE); - } - - @Bean - ComponentCustomizer fakeCustomizer() { - return (date) -> { - throw new RuntimeException("Must not happen"); - }; - } - - } - -} diff --git a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/DefaultFileSupplierTests.java b/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/DefaultFileSupplierTests.java deleted file mode 100644 index ad11e887..00000000 --- a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/DefaultFileSupplierTests.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.file; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.integration.file.FileHeaders; -import org.springframework.integration.file.FileReadingMessageSource; -import org.springframework.integration.jdbc.metadata.JdbcMetadataStore; -import org.springframework.integration.metadata.ConcurrentMetadataStore; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Soby Chacko - */ -@TestPropertySource(properties = "metadata.store.type = jdbc") -public class DefaultFileSupplierTests extends AbstractFileSupplierTests { - - @Autowired - @Qualifier("fileMessageSource") - private FileReadingMessageSource fileMessageSource; - - @Autowired - private ConcurrentMetadataStore metadataStore; - - @Autowired - private JdbcTemplate jdbcTemplate; - - @Test - public void testBasicFlow() throws IOException { - Path firstFile = tempDir.resolve("first.file"); - Files.write(firstFile, "first.file".getBytes()); - - final Flux> messageFlux = fileSupplier.get(); - - //create file after subscription - Path tempFile = tempDir.resolve("test.file"); - - StepVerifier stepVerifier = - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(message.getPayload()) - .isEqualTo("first.file".getBytes()); - assertThat(message.getHeaders()) - .containsEntry(FileHeaders.FILENAME, "first.file"); - assertThat(message.getHeaders()) - .containsEntry(FileHeaders.RELATIVE_PATH, "first.file"); - assertThat(message.getHeaders()) - .containsEntry(FileHeaders.ORIGINAL_FILE, firstFile.toFile()); - } - ) - .assertNext((message) -> { - assertThat(message.getPayload()) - .isEqualTo("testing".getBytes()); - assertThat(message.getHeaders()) - .containsEntry(FileHeaders.FILENAME, "test.file"); - assertThat(message.getHeaders()) - .containsEntry(FileHeaders.RELATIVE_PATH, "test.file"); - assertThat(message.getHeaders()) - .containsEntry(FileHeaders.ORIGINAL_FILE, tempFile.toFile()); - }) - .thenCancel() - .verifyLater(); - Files.write(tempFile, "testing".getBytes()); - stepVerifier.verify(); - - assertThat(this.fileMessageSource.isRunning()).isTrue(); - - assertThat(this.metadataStore).isInstanceOf(JdbcMetadataStore.class); - - List metadataStoreContent = - jdbcTemplate.queryForList("SELECT metadata_key FROM int_metadata_store", String.class); - - assertThat(metadataStoreContent).hasSize(2); - assertThat(metadataStoreContent.get(0)).startsWith("local-file-system-metadata-"); - assertThat(metadataStoreContent.get(0)).endsWith("first.file"); - assertThat(metadataStoreContent.get(1)).endsWith("test.file"); - - /* See AbstractFileSupplierTests.FileSupplierTestApplication.fileInboundChannelAdapterSpecCustomizer() - - through the ComponentCustomizer and @CustomizationAware on the FileSupplierConfiguration.fileMessageSource() - the provided customization is populated down to the bean under testing. - */ - assertThat(TestUtils.getPropertyValue(this.fileMessageSource, "watchEvents", - FileReadingMessageSource.WatchEventType[].class)) - .isEqualTo(new FileReadingMessageSource.WatchEventType[]{ FileReadingMessageSource.WatchEventType.DELETE }); - } - -} diff --git a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FileModeRefTests.java b/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FileModeRefTests.java deleted file mode 100644 index 493705fb..00000000 --- a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FileModeRefTests.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.file; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.integration.file.FileHeaders; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Soby Chacko - */ -@TestPropertySource(properties = "file.consumer.mode=ref") -public class FileModeRefTests extends AbstractFileSupplierTests { - - @Test - public void testBasicFlow() throws IOException { - - Path firstFile = tempDir.resolve("first.file"); - Files.write(firstFile, "first.file".getBytes()); - - final Flux> messageFlux = fileSupplier.get(); - - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(message.getPayload()) - .isEqualTo(firstFile.toAbsolutePath().toFile()); - assertThat(message.getHeaders()) - .containsEntry(FileHeaders.FILENAME, "first.file"); - assertThat(message.getHeaders()) - .containsEntry(FileHeaders.RELATIVE_PATH, "first.file"); - assertThat(message.getHeaders()) - .containsEntry(FileHeaders.ORIGINAL_FILE, firstFile.toFile()); - } - ) - .thenCancel() - .verify(); - } -} diff --git a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FilePayloadWithPatternTests.java b/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FilePayloadWithPatternTests.java deleted file mode 100644 index 7a7e1e61..00000000 --- a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FilePayloadWithPatternTests.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.file; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.file.Files; -import java.nio.file.Path; -import java.time.Duration; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Soby Chacko - */ -@TestPropertySource(properties = {"file.consumer.mode=ref", "file.supplier.filenamePattern = *.txt"}) -public class FilePayloadWithPatternTests extends AbstractFileSupplierTests { - - @Test - public void testPattern() throws IOException { - - Path txtFile1 = tempDir.resolve("test1.txt"); - Files.write(txtFile1, "one".getBytes()); - Path nonTxtExtension = tempDir.resolve("hello.bin"); - Files.write(nonTxtExtension, ByteBuffer.allocate(4).putInt(1).array()); - Path txtFile2 = tempDir.resolve("test2.txt"); - Files.write(txtFile2, "two".getBytes()); - - final Flux> messageFlux = fileSupplier.get(); - - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(message.getPayload()) - .isEqualTo(txtFile1.toAbsolutePath().toFile()); - } - ) - .assertNext((message) -> { - assertThat(message.getPayload()) - .isEqualTo(txtFile2.toAbsolutePath().toFile()); - }) - .expectNoEvent(Duration.ofSeconds(1)) - .thenCancel() - .verify(); - } -} diff --git a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FilePayloadWithRegexTests.java b/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FilePayloadWithRegexTests.java deleted file mode 100644 index 136ebf76..00000000 --- a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/FilePayloadWithRegexTests.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.file; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.file.Files; -import java.nio.file.Path; -import java.time.Duration; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Soby Chacko - */ -@TestPropertySource(properties = {"file.consumer.mode=ref", "file.supplier.filenameRegex = t.*.txt"}) -public class FilePayloadWithRegexTests extends AbstractFileSupplierTests { - - @Test - public void testRegexPattern() throws IOException { - - Path txtFile1 = tempDir.resolve("test1.txt"); - Files.write(txtFile1, "one".getBytes()); - Path nonTxtExtension = tempDir.resolve("hello.bin"); - Files.write(nonTxtExtension, ByteBuffer.allocate(4).putInt(1).array()); - Path txtFile2 = tempDir.resolve("abc.txt"); - Files.write(txtFile2, "two".getBytes()); - - final Flux> messageFlux = fileSupplier.get(); - - StepVerifier stepVerifier = - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(message.getPayload()) - .isEqualTo(txtFile1.toAbsolutePath().toFile()); - } - ) - .expectNoEvent(Duration.ofSeconds(1)) - .expectNoEvent(Duration.ofSeconds(1)) - .thenCancel() - .verifyLater(); - - stepVerifier.verify(); - } -} diff --git a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/LinesAndMarkersAsJsonPayloadTests.java b/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/LinesAndMarkersAsJsonPayloadTests.java deleted file mode 100644 index bc34cd4b..00000000 --- a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/LinesAndMarkersAsJsonPayloadTests.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.file; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardOpenOption; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.integration.file.splitter.FileSplitter; -import org.springframework.integration.json.JsonPathUtils; -import org.springframework.integration.support.json.JsonObjectMapperProvider; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Soby Chacko - */ -@TestPropertySource(properties = {"file.consumer.mode=lines", "file.consumer.withMarkers = true"}) -public class LinesAndMarkersAsJsonPayloadTests extends AbstractFileSupplierTests { - - @Test - public void testLinesWithMarkers() throws Exception { - Path firstFile = tempDir.resolve("test.file"); - Files.write(firstFile, "first line\n".getBytes()); - Files.write(firstFile, "second line\n".getBytes(), StandardOpenOption.APPEND); - - final Flux> messageFlux = fileSupplier.get(); - - StepVerifier.create(messageFlux) - .assertNext((message) -> { - try { - final Object evaluate = JsonPathUtils.evaluate(message.getPayload(), "$.mark"); - assertThat(evaluate).isEqualTo(FileSplitter.FileMarker.Mark.START.name()); - } - catch (IOException e) { - // passt through - } - } - ) - .assertNext((message) -> assertThat(message.getPayload()).isEqualTo("first line")) - .assertNext((message) -> assertThat(message.getPayload()).isEqualTo("second line")) - .assertNext((message) -> { - try { - final Object fileMarker = JsonPathUtils.evaluate(message.getPayload(), "$.mark"); - assertThat(fileMarker).isEqualTo(FileSplitter.FileMarker.Mark.END.name()); - FileSplitter.FileMarker fileMarker1 = JsonObjectMapperProvider.newInstance() - .fromJson(fileMarker, FileSplitter.FileMarker.class); - assertThat(FileSplitter.FileMarker.Mark.END).isEqualTo(fileMarker1.getMark()); - assertThat(firstFile.toAbsolutePath()).isEqualTo(fileMarker1.getFilePath()); - assertThat(fileMarker1.getLineCount()).isEqualTo(2); - } - catch (IOException e) { - // passt through - } - } - ) - .thenCancel() - .verify(); - } -} diff --git a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/LinesPayloadTests.java b/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/LinesPayloadTests.java deleted file mode 100644 index dd222c16..00000000 --- a/functions/supplier/file-supplier/src/test/java/org/springframework/cloud/fn/supplier/file/LinesPayloadTests.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.file; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardOpenOption; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Soby Chacko - */ -@TestPropertySource(properties = "file.consumer.mode=lines") -public class LinesPayloadTests extends AbstractFileSupplierTests { - - @Test - public void testLines() throws IOException { - Path firstFile = tempDir.resolve("test.file"); - Files.write(firstFile, "first line\n".getBytes()); - Files.write(firstFile, "second line\n".getBytes(), StandardOpenOption.APPEND); - - final Flux> messageFlux = fileSupplier.get(); - - StepVerifier.create(messageFlux) - .assertNext((message) -> assertThat(message.getPayload()).isEqualTo("first line")) - .assertNext((message) -> assertThat(message.getPayload()).isEqualTo("second line")) - .thenCancel() - .verify(); - - } -} diff --git a/functions/supplier/ftp-supplier/README.adoc b/functions/supplier/ftp-supplier/README.adoc deleted file mode 100644 index abca0e51..00000000 --- a/functions/supplier/ftp-supplier/README.adoc +++ /dev/null @@ -1,37 +0,0 @@ -# FTP Supplier - -This module provides a FTP supplier that can be reused and composed in other applications. -The `Supplier` uses the `FtpInboundChannelAdapter` from Spring Integration. -`FtpSupplier` is implemented as a `java.util.function.Supplier`. -This supplier gives you a reactive stream of files from the provided directory as the supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and receive the data. - -## Beans for injection - -You can import the `FtpSupplierConfiguration` in the application and then inject the following bean. - -`ftpSupplier` - -You need to inject this as `Supplier>>`. - -You can use `ftpSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `ftp.supplier`. -There are also properties that need to be used with the prefix `file.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierProperties.java[FtpSupplierProperties]. -See link:src/main/java/org/springframework/cloud/fn/supplier/file/FileConsumerProperties.java[this] also. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `FtpInboundChannelAdapterSpec` configuration used by the `ftpSupplier`. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierTests.java[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/ftp-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a File Source. diff --git a/functions/supplier/ftp-supplier/pom.xml b/functions/supplier/ftp-supplier/pom.xml deleted file mode 100644 index 5c726544..00000000 --- a/functions/supplier/ftp-supplier/pom.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/ftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierConfiguration.java b/functions/supplier/ftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierConfiguration.java deleted file mode 100644 index 58870a23..00000000 --- a/functions/supplier/ftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierConfiguration.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright 2015-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.ftp; - -import java.util.function.Supplier; -import java.util.regex.Pattern; - -import org.apache.commons.net.ftp.FTPFile; -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; -import reactor.core.scheduler.Schedulers; - -import org.springframework.beans.factory.BeanInitializationException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.cloud.fn.common.file.FileConsumerProperties; -import org.springframework.cloud.fn.common.file.FileReadingMode; -import org.springframework.cloud.fn.common.file.FileUtils; -import org.springframework.cloud.fn.common.ftp.FtpSessionFactoryConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Lazy; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.file.filters.ChainFileListFilter; -import org.springframework.integration.file.remote.session.SessionFactory; -import org.springframework.integration.ftp.dsl.Ftp; -import org.springframework.integration.ftp.dsl.FtpInboundChannelAdapterSpec; -import org.springframework.integration.ftp.filters.FtpPersistentAcceptOnceFileListFilter; -import org.springframework.integration.ftp.filters.FtpRegexPatternFileListFilter; -import org.springframework.integration.ftp.filters.FtpSimplePatternFileListFilter; -import org.springframework.integration.ftp.inbound.FtpInboundFileSynchronizingMessageSource; -import org.springframework.integration.metadata.ConcurrentMetadataStore; -import org.springframework.integration.util.IntegrationReactiveUtils; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.util.StringUtils; - -/** - * @author David Turanski - * @author Marius Bogoevici - * @author Gary Russell - * @author Artem Bilan - * @author Christian Tzolov - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties({ FtpSupplierProperties.class, FileConsumerProperties.class }) -@Import(FtpSessionFactoryConfiguration.class) -public class FtpSupplierConfiguration { - - private final FtpSupplierProperties ftpSupplierProperties; - - private final FileConsumerProperties fileConsumerProperties; - - private final ConcurrentMetadataStore metadataStore; - - SessionFactory ftpSessionFactory; - - @Autowired - @Lazy - @Qualifier("ftpMessageSource") - private FtpInboundFileSynchronizingMessageSource ftpMessageSource; - - public FtpSupplierConfiguration(FtpSupplierProperties ftpSupplierProperties, - FileConsumerProperties fileConsumerProperties, - ConcurrentMetadataStore metadataStore, - SessionFactory ftpSessionFactory) { - - this.ftpSupplierProperties = ftpSupplierProperties; - this.fileConsumerProperties = fileConsumerProperties; - this.metadataStore = metadataStore; - this.ftpSessionFactory = ftpSessionFactory; - } - - @Bean - public FtpInboundChannelAdapterSpec ftpMessageSource( - @Nullable ComponentCustomizer ftpInboundChannelAdapterSpecCustomizer) { - - FtpInboundChannelAdapterSpec messageSourceBuilder = Ftp.inboundAdapter(ftpSessionFactory) - .preserveTimestamp(this.ftpSupplierProperties.isPreserveTimestamp()) - .remoteDirectory(this.ftpSupplierProperties.getRemoteDir()) - .remoteFileSeparator(this.ftpSupplierProperties.getRemoteFileSeparator()) - .localDirectory(this.ftpSupplierProperties.getLocalDir()) - .autoCreateLocalDirectory(this.ftpSupplierProperties.isAutoCreateLocalDir()) - .temporaryFileSuffix(this.ftpSupplierProperties.getTmpFileSuffix()) - .deleteRemoteFiles(this.ftpSupplierProperties.isDeleteRemoteFiles()); - - ChainFileListFilter chainFileListFilter = new ChainFileListFilter<>(); - - String filenamePattern = this.ftpSupplierProperties.getFilenamePattern(); - Pattern filenameRegex = this.ftpSupplierProperties.getFilenameRegex(); - if (StringUtils.hasText(filenamePattern)) { - chainFileListFilter.addFilter(new FtpSimplePatternFileListFilter(filenamePattern)); - } - else if (filenameRegex != null) { - chainFileListFilter.addFilter(new FtpRegexPatternFileListFilter(filenameRegex)); - } - - chainFileListFilter.addFilter(new FtpPersistentAcceptOnceFileListFilter(this.metadataStore, "ftpSource/")); - - messageSourceBuilder.filter(chainFileListFilter); - if (ftpInboundChannelAdapterSpecCustomizer != null) { - ftpInboundChannelAdapterSpecCustomizer.customize(messageSourceBuilder); - } - return messageSourceBuilder; - } - - @Bean - public Flux> ftpMessageFlux() { - return Mono.>create(monoSink -> - monoSink.onRequest(value -> - monoSink.success(this.ftpMessageSource.receive()))) - .subscribeOn(Schedulers.boundedElastic()) - .repeatWhenEmpty(it -> it.delayElements(this.ftpSupplierProperties.getDelayWhenEmpty())) - .repeat(); - } - - @Bean - @ConditionalOnExpression("environment['file.consumer.mode'] != 'ref'") - public Publisher> ftpReadingFlow(FtpInboundFileSynchronizingMessageSource ftpMessageSource) { - return FileUtils.enhanceFlowForReadingMode(IntegrationFlow - .from(IntegrationReactiveUtils.messageSourceToFlux(ftpMessageSource)), fileConsumerProperties) - .toReactivePublisher(); - } - - @Bean - public Supplier>> ftpSupplier(@Nullable Publisher> ftpReadingFlow) { - if (this.fileConsumerProperties.getMode() == FileReadingMode.ref) { - return this::ftpMessageFlux; - } - else if (ftpReadingFlow != null) { - return () -> Flux.from(ftpReadingFlow); - } - else { - throw new BeanInitializationException( - "Cannot creat 'ftpSupplier' bean: no 'ftpReadingFlow' dependency and is not 'FileReadingMode.ref'."); - } - } - -} diff --git a/functions/supplier/ftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierProperties.java b/functions/supplier/ftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierProperties.java deleted file mode 100644 index a156c4f1..00000000 --- a/functions/supplier/ftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierProperties.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.ftp; - -import java.io.File; -import java.time.Duration; -import java.util.regex.Pattern; - -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * @author David Turanski - * @author Gary Russell - * @author Artem Bilan - */ -@ConfigurationProperties("ftp.supplier") -@Validated -public class FtpSupplierProperties { - - /** - * The remote FTP directory. - */ - private String remoteDir = "/"; - - /** - * The suffix to use while the transfer is in progress. - */ - private String tmpFileSuffix = ".tmp"; - - /** - * The remote file separator. - */ - private String remoteFileSeparator = "/"; - - /** - * Set to true to delete remote files after successful transfer. - */ - private boolean deleteRemoteFiles = false; - - /** - * The local directory to use for file transfers. - */ - private File localDir = new File(System.getProperty("java.io.tmpdir"), "ftp-source"); - - /** - * Set to true to create the local directory if it does not exist. - */ - private boolean autoCreateLocalDir = true; - - /** - * A filter pattern to match the names of files to transfer. - */ - private String filenamePattern; - - /** - * A filter regex pattern to match the names of files to transfer. - */ - private Pattern filenameRegex; - - /** - * Set to true to preserve the original timestamp. - */ - private boolean preserveTimestamp = true; - - /** - * Duration of delay when no new files are detected. - */ - private Duration delayWhenEmpty = Duration.ofSeconds(1); - - public boolean isAutoCreateLocalDir() { - return this.autoCreateLocalDir; - } - - public void setAutoCreateLocalDir(boolean autoCreateLocalDir) { - this.autoCreateLocalDir = autoCreateLocalDir; - } - - public boolean isDeleteRemoteFiles() { - return this.deleteRemoteFiles; - } - - public void setDeleteRemoteFiles(boolean deleteRemoteFiles) { - this.deleteRemoteFiles = deleteRemoteFiles; - } - - @NotNull - public File getLocalDir() { - return this.localDir; - } - - public final void setLocalDir(File localDir) { - this.localDir = localDir; - } - - public String getFilenamePattern() { - return this.filenamePattern; - } - - public void setFilenamePattern(String filenamePattern) { - this.filenamePattern = filenamePattern; - } - - public Pattern getFilenameRegex() { - return this.filenameRegex; - } - - public void setFilenameRegex(Pattern filenameRegex) { - this.filenameRegex = filenameRegex; - } - - public boolean isPreserveTimestamp() { - return this.preserveTimestamp; - } - - public void setPreserveTimestamp(boolean preserveTimestamp) { - this.preserveTimestamp = preserveTimestamp; - } - - @NotBlank - public String getRemoteDir() { - return this.remoteDir; - } - - public final void setRemoteDir(String remoteDir) { - this.remoteDir = remoteDir; - } - - @NotBlank - public String getTmpFileSuffix() { - return this.tmpFileSuffix; - } - - public void setTmpFileSuffix(String tmpFileSuffix) { - this.tmpFileSuffix = tmpFileSuffix; - } - - @NotBlank - public String getRemoteFileSeparator() { - return this.remoteFileSeparator; - } - - public void setRemoteFileSeparator(String remoteFileSeparator) { - this.remoteFileSeparator = remoteFileSeparator; - } - - @AssertTrue(message = "filenamePattern and filenameRegex are mutually exclusive") - public boolean isExclusivePatterns() { - return !(this.filenamePattern != null && this.filenameRegex != null); - } - - public Duration getDelayWhenEmpty() { - return delayWhenEmpty; - } - - public void setDelayWhenEmpty(Duration delayWhenEmpty) { - this.delayWhenEmpty = delayWhenEmpty; - } - -} diff --git a/functions/supplier/ftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierPropertiesTests.java b/functions/supplier/ftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierPropertiesTests.java deleted file mode 100644 index efe08e72..00000000 --- a/functions/supplier/ftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierPropertiesTests.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.ftp; - -import java.io.File; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.context.annotation.Configuration; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author David Turanski - * @author Gary Russell - * @author Artem Bilan - */ -public class FtpSupplierPropertiesTests { - - @Test - public void localDirCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.supplier.localDir:local") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpSupplierProperties properties = context.getBean(FtpSupplierProperties.class); - assertThat(properties.getLocalDir()).isEqualTo(new File("local")); - context.close(); - } - - @Test - public void remoteDirCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.supplier.remoteDir:/remote") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpSupplierProperties properties = context.getBean(FtpSupplierProperties.class); - assertThat(properties.getRemoteDir()).isEqualTo("/remote"); - context.close(); - } - - @Test - public void deleteRemoteFilesCanBeEnabled() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.supplier.deleteRemoteFiles:true") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpSupplierProperties properties = context.getBean(FtpSupplierProperties.class); - assertThat(properties.isDeleteRemoteFiles()).isTrue(); - context.close(); - } - - @Test - public void autoCreateLocalDirCanBeDisabled() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.supplier.autoCreateLocalDir:false") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpSupplierProperties properties = context.getBean(FtpSupplierProperties.class); - assertThat(!properties.isAutoCreateLocalDir()).isTrue(); - context.close(); - } - - @Test - public void tmpFileSuffixCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.supplier.tmpFileSuffix:.foo") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpSupplierProperties properties = context.getBean(FtpSupplierProperties.class); - assertThat(properties.getTmpFileSuffix()).isEqualTo(".foo"); - context.close(); - } - - @Test - public void filenamePatternCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.supplier.filenamePattern:*.foo") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpSupplierProperties properties = context.getBean(FtpSupplierProperties.class); - assertThat(properties.getFilenamePattern()).isEqualTo("*.foo"); - context.close(); - } - - @Test - public void remoteFileSeparatorCanBeCustomized() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.supplier.remoteFileSeparator:\\") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpSupplierProperties properties = context.getBean(FtpSupplierProperties.class); - assertThat(properties.getRemoteFileSeparator()).isEqualTo("\\"); - context.close(); - } - - - @Test - public void preserveTimestampDirCanBeDisabled() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("ftp.supplier.preserveTimestamp:false") - .applyTo(context); - context.register(Conf.class); - context.refresh(); - FtpSupplierProperties properties = context.getBean(FtpSupplierProperties.class); - assertThat(!properties.isPreserveTimestamp()).isTrue(); - context.close(); - } - - @Configuration - @EnableConfigurationProperties(FtpSupplierProperties.class) - static class Conf { - - } -} diff --git a/functions/supplier/ftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierTests.java b/functions/supplier/ftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierTests.java deleted file mode 100644 index e74e8bf8..00000000 --- a/functions/supplier/ftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/ftp/FtpSupplierTests.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.ftp; - -import java.io.File; -import java.util.function.Supplier; - -import org.apache.commons.net.ftp.FTPFile; -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -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.test.support.ftp.FtpTestSupport; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Primary; -import org.springframework.integration.file.remote.session.CachingSessionFactory; -import org.springframework.integration.file.remote.session.SessionFactory; -import org.springframework.integration.metadata.ConcurrentMetadataStore; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { - "ftp.factory.username = foo", - "ftp.factory.password = foo", - "file.consumer.mode = ref", - "ftp.factory.cacheSessions = true" - }) -@DirtiesContext -public class FtpSupplierTests extends FtpTestSupport { - - @Autowired - Supplier>> ftpSupplier; - - @Autowired - private ConcurrentMetadataStore metadataStore; - - @Autowired - FtpSupplierProperties config; - - @Autowired - SessionFactory sessionFactory; - - @Test - public void testSourceFileAsRef() { - final Flux> messageFlux = ftpSupplier.get(); - assertThat(this.sessionFactory).isInstanceOf(CachingSessionFactory.class); - StepVerifier stepVerifier = - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(new File(message.getPayload().toString().replaceAll("\"", ""))).isEqualTo( - new File(this.config.getLocalDir(), "ftpSource1.txt")); - } - ) - .assertNext((message) -> { - assertThat(new File(message.getPayload().toString().replaceAll("\"", ""))).isEqualTo( - new File(this.config.getLocalDir(), "ftpSource2.txt")); - }) - .thenCancel() - .verifyLater(); - stepVerifier.verify(); - } - - @SpringBootApplication - static class FtpSupplierTestApplication { - - // These properties can be moved into the SpringBootApplication annotation, but providing here - // as a way to demonstrate how we can provide ConfigurationProperties as a bean in the application itself - // This way, it is less error-prone from typos. - @Bean - @Primary - public FtpSupplierProperties ftpSupplierProperties() { - final FtpSupplierProperties ftpSupplierProperties = new FtpSupplierProperties(); - ftpSupplierProperties.setRemoteDir("ftpSource"); - ftpSupplierProperties.setFilenamePattern("*"); - return ftpSupplierProperties; - } - } -} diff --git a/functions/supplier/http-supplier/README.adoc b/functions/supplier/http-supplier/README.adoc deleted file mode 100644 index 9725e100..00000000 --- a/functions/supplier/http-supplier/README.adoc +++ /dev/null @@ -1,35 +0,0 @@ -# HTTP Supplier - -This module provides an HTTP supplier that can be reused and composed in other applications. -The `Supplier` uses the `WebFluxInboundEndpoint` from Spring Integration. -`httpSupplier` is implemented as a `java.util.function.Supplier`. -This supplier gives you a reactive stream from the http endpoint. The supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and then receive the data. - -## Beans for injection - -You can import the `HttpSupplierConfiguration` in the application and then inject the following bean. - -`httpSupplier` - -You need to inject this as `Supplier>>`. - -You can use `httpSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `http`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/http/HttpSupplierProperties.java[HttpSupplierProperties]. - -The `HeaderMapper` bean can be provided in the target configuration to override a default one in the `HttpSupplierConfiguration`. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/http/HttpSupplierApplicationTests.java[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/http-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes an HTTP Source. \ No newline at end of file diff --git a/functions/supplier/http-supplier/pom.xml b/functions/supplier/http-supplier/pom.xml deleted file mode 100644 index 6c5ac9e2..00000000 --- a/functions/supplier/http-supplier/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/http-supplier/src/main/java/org/springframework/cloud/fn/supplier/http/HttpSupplierConfiguration.java b/functions/supplier/http-supplier/src/main/java/org/springframework/cloud/fn/supplier/http/HttpSupplierConfiguration.java deleted file mode 100644 index 2cbef92a..00000000 --- a/functions/supplier/http-supplier/src/main/java/org/springframework/cloud/fn/supplier/http/HttpSupplierConfiguration.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2011-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.http; - -import java.util.function.Supplier; - -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.codec.ServerCodecConfigurer; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.expression.ValueExpression; -import org.springframework.integration.http.support.DefaultHttpHeaderMapper; -import org.springframework.integration.mapping.HeaderMapper; -import org.springframework.integration.webflux.dsl.WebFlux; -import org.springframework.integration.webflux.inbound.WebFluxInboundEndpoint; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; - -/** - * Configuration for the HTTP Supplier. - * - * @author Artem Bilan - */ -@EnableConfigurationProperties(HttpSupplierProperties.class) -@Configuration -public class HttpSupplierConfiguration { - - @Bean - @ConditionalOnMissingBean - public HeaderMapper httpHeaderMapper(HttpSupplierProperties httpSupplierProperties) { - DefaultHttpHeaderMapper defaultHttpHeaderMapper = DefaultHttpHeaderMapper.inboundMapper(); - defaultHttpHeaderMapper.setInboundHeaderNames(httpSupplierProperties.getMappedRequestHeaders()); - return defaultHttpHeaderMapper; - } - - @Bean - public Publisher> httpSupplierFlow(HttpSupplierProperties httpSupplierProperties, - HeaderMapper httpHeaderMapper, - ServerCodecConfigurer serverCodecConfigurer) { - - return IntegrationFlow.from( - WebFlux.inboundChannelAdapter(httpSupplierProperties.getPathPattern()) - .requestPayloadType(byte[].class) - .statusCodeExpression(new ValueExpression<>(HttpStatus.ACCEPTED)) - .headerMapper(httpHeaderMapper) - .codecConfigurer(serverCodecConfigurer) - .crossOrigin(crossOrigin -> - crossOrigin.origin(httpSupplierProperties.getCors().getAllowedOrigins()) - .allowedHeaders(httpSupplierProperties.getCors().getAllowedHeaders()) - .allowCredentials(httpSupplierProperties.getCors().getAllowCredentials())) - .autoStartup(false)) - .enrichHeaders((headers) -> - headers.headerFunction(MessageHeaders.CONTENT_TYPE, - (message) -> - (MediaType.APPLICATION_FORM_URLENCODED.equals( - message.getHeaders().get(MessageHeaders.CONTENT_TYPE, MediaType.class))) - ? MediaType.APPLICATION_JSON - : null, - true)) - .toReactivePublisher(); - } - - @Bean - public Supplier>> httpSupplier( - Publisher> httpRequestPublisher, - WebFluxInboundEndpoint webFluxInboundEndpoint) { - - return () -> Flux.from(httpRequestPublisher) - .doOnSubscribe((subscription) -> webFluxInboundEndpoint.start()) - .doOnTerminate(webFluxInboundEndpoint::stop); - } - -} diff --git a/functions/supplier/http-supplier/src/main/java/org/springframework/cloud/fn/supplier/http/HttpSupplierProperties.java b/functions/supplier/http-supplier/src/main/java/org/springframework/cloud/fn/supplier/http/HttpSupplierProperties.java deleted file mode 100644 index 76f5a345..00000000 --- a/functions/supplier/http-supplier/src/main/java/org/springframework/cloud/fn/supplier/http/HttpSupplierProperties.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.http; - -import jakarta.validation.constraints.NotEmpty; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.integration.http.support.DefaultHttpHeaderMapper; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.cors.CorsConfiguration; - -/** - * Configuration properties for the HTTP Supplier. - * - * @author Artem Bilan - */ -@ConfigurationProperties("http") -@Validated -public class HttpSupplierProperties { - - /** - * HTTP endpoint path mapping. - */ - private String pathPattern = "/"; - - /** - * Headers that will be mapped. - */ - private String[] mappedRequestHeaders = {DefaultHttpHeaderMapper.HTTP_REQUEST_HEADER_NAME_PATTERN}; - - /** - * CORS properties. - */ - private Cors cors = new Cors(); - - @NotEmpty - public String getPathPattern() { - return this.pathPattern; - } - - public void setPathPattern(String pathPattern) { - this.pathPattern = pathPattern; - } - - public String[] getMappedRequestHeaders() { - return this.mappedRequestHeaders; - } - - public void setMappedRequestHeaders(String[] mappedRequestHeaders) { - this.mappedRequestHeaders = mappedRequestHeaders; - } - - public Cors getCors() { - return this.cors; - } - - public void setCors(Cors cors) { - this.cors = cors; - } - - public static class Cors { - - /** - * List of allowed origins, e.g. https://domain1.com. - */ - private String[] allowedOrigins = {CorsConfiguration.ALL}; - - /** - * List of request headers that can be used during the actual request. - */ - private String[] allowedHeaders = {CorsConfiguration.ALL}; - - /** - * Whether the browser should include any cookies associated with the domain of the request being annotated. - */ - private Boolean allowCredentials; - - @NotEmpty - public String[] getAllowedOrigins() { - return this.allowedOrigins; - } - - public void setAllowedOrigins(String[] allowedOrigins) { - this.allowedOrigins = allowedOrigins; - } - - @NotEmpty - public String[] getAllowedHeaders() { - return this.allowedHeaders; - } - - public void setAllowedHeaders(String[] allowedHeaders) { - this.allowedHeaders = allowedHeaders; - } - - public Boolean getAllowCredentials() { - return allowCredentials; - } - - public void setAllowCredentials(Boolean allowCredentials) { - this.allowCredentials = allowCredentials; - } - - } - -} diff --git a/functions/supplier/http-supplier/src/main/resources/application.properties b/functions/supplier/http-supplier/src/main/resources/application.properties deleted file mode 100644 index 8b137891..00000000 --- a/functions/supplier/http-supplier/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/functions/supplier/http-supplier/src/test/java/org/springframework/cloud/fn/supplier/http/HttpSupplierApplicationTests.java b/functions/supplier/http-supplier/src/test/java/org/springframework/cloud/fn/supplier/http/HttpSupplierApplicationTests.java deleted file mode 100644 index 968e9cde..00000000 --- a/functions/supplier/http-supplier/src/test/java/org/springframework/cloud/fn/supplier/http/HttpSupplierApplicationTests.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright 2020-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.http; - -import java.nio.charset.StandardCharsets; -import java.time.Duration; -import java.util.function.Supplier; - -import javax.net.ssl.SSLException; - -import io.netty.handler.ssl.SslContext; -import io.netty.handler.ssl.SslContextBuilder; -import io.netty.handler.ssl.SslProvider; -import io.netty.handler.ssl.util.InsecureTrustManagerFactory; -import org.assertj.core.api.InstanceOfAssertFactories; -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.netty.http.client.HttpClient; -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.boot.test.web.server.LocalServerPort; -import org.springframework.http.MediaType; -import org.springframework.http.client.reactive.ReactorClientHttpConnector; -import org.springframework.http.codec.ServerCodecConfigurer; -import org.springframework.http.codec.json.AbstractJackson2Decoder; -import org.springframework.integration.http.HttpHeaders; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.integration.webflux.inbound.WebFluxInboundEndpoint; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.web.reactive.function.client.WebClient; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * The test for HTTP Supplier. - * - * @author Artem Bilan - */ -@SpringBootTest( - webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, - properties = { - "server.ssl.key-store=classpath:test.jks", - "server.ssl.key-password=password", - "server.ssl.trust-store=classpath:test.jks", - "server.ssl.client-auth=want", - "spring.codec.max-in-memory-size=10MB" - }) -@DirtiesContext -public class HttpSupplierApplicationTests { - - @Autowired - private Supplier>> httpSupplier; - - @Autowired - private WebFluxInboundEndpoint webFluxInboundEndpoint; - - @LocalServerPort - private int port; - - @Test - public void testHttpSupplier() throws SSLException { - ServerCodecConfigurer codecConfigurer = - TestUtils.getPropertyValue(this.webFluxInboundEndpoint, "codecConfigurer", ServerCodecConfigurer.class); - - final ServerCodecConfigurer.ServerDefaultCodecs serverDefaultCodecs = codecConfigurer.defaultCodecs(); - assertThat(TestUtils.getPropertyValue(serverDefaultCodecs, "maxInMemorySize", Integer.class)) - .isEqualTo(1024 * 1024 * 10); - - AbstractJackson2Decoder jackson2JsonDecoder = - TestUtils.getPropertyValue(serverDefaultCodecs, "jackson2JsonDecoder", AbstractJackson2Decoder.class); - - assertThat(jackson2JsonDecoder).isNotNull() - .extracting("maxInMemorySize") - .isEqualTo(1024 * 1024 * 10); - - Flux> messageFlux = this.httpSupplier.get(); - - StepVerifier stepVerifier = - StepVerifier.create(messageFlux) - .assertNext((message) -> - assertThat(message) - .satisfies((msg) -> assertThat(msg) - .extracting(Message::getPayload) - .isEqualTo("test1".getBytes())) - .satisfies((msg) -> assertThat(msg.getHeaders()) - .containsEntry(MessageHeaders.CONTENT_TYPE, - new MediaType("text", "plain", StandardCharsets.UTF_8)) - .extractingByKey(HttpHeaders.REQUEST_URL).asString() - .startsWith("https://")) - ) - .assertNext((message) -> - assertThat(message) - .extracting(Message::getPayload) - .isEqualTo("{\"name\":\"test2\"}".getBytes())) - .assertNext((message) -> - assertThat(message) - .extracting(Message::getPayload) - .isEqualTo("{\"name\":\"test3\"}".getBytes())) - .assertNext((message) -> - assertThat(message) - .satisfies((msg) -> assertThat(msg) - .extracting(Message::getPayload) - .asInstanceOf(InstanceOfAssertFactories.MAP) - .isEmpty()) - .satisfies((msg) -> assertThat(msg.getHeaders()) - .doesNotContainKey(MessageHeaders.CONTENT_TYPE))) - .thenCancel() - .verifyLater(); - - SslContext sslContext = - SslContextBuilder.forClient() - .sslProvider(SslProvider.JDK) - .trustManager(InsecureTrustManagerFactory.INSTANCE) - .build(); - - HttpClient httpClient = - HttpClient.create() - .secure(sslSpec -> sslSpec.sslContext(sslContext)); - - WebClient webClient = - WebClient.builder() - .clientConnector(new ReactorClientHttpConnector(httpClient)) - .baseUrl("https://localhost:" + port) - .build(); - - webClient.post() - .uri("/") - .bodyValue("test1") - .retrieve() - .toBodilessEntity() - .block(Duration.ofSeconds(10)); - - webClient.post() - .uri("/") - .bodyValue(new TestPojo("test2")) - .retrieve() - .toBodilessEntity() - .block(Duration.ofSeconds(10)); - - webClient.post() - .uri("/") - .bodyValue(new TestPojo("test3")) - .retrieve() - .toBodilessEntity() - .block(Duration.ofSeconds(10)); - - webClient.post().uri("/") - .retrieve() - .toBodilessEntity() - .block(Duration.ofSeconds(10)); - - stepVerifier.verify(); - } - - private static class TestPojo { - - private String name; - - TestPojo() { - } - - TestPojo(String name) { - this.name = name; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - } - - @SpringBootApplication - static class HttpSupplierTestApplication { - - } - -} diff --git a/functions/supplier/http-supplier/src/test/resources/test.jks b/functions/supplier/http-supplier/src/test/resources/test.jks deleted file mode 100644 index 0fc3e802f75461dd074facb9611d350db4d5960f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1276 zcmezO_TO6u1_mZ5W@O+hNi8nXP0YzmEM{O}OjTL=XFE`?-k{cikBv*4jgf^>i%F1? zk(GfZ`?F{4vBFug6<%MmmXJ+)mEgQoslXV6!5_H^yana6V1?kw1w zbE0Bi&GHlLHzfosgjrwL)qKcc5I;l0LF?W2lpQg%-cHp$l(#o)?Jkath1@gQN{hG8 zig@wKv#0R7vd_QC=JG%%Ffy=4=$RT=0v*d`(8R=M(8RcU0W%XL6BCP-)w&Y~JZv0V zZ64=rS(uqv84M~6g$xAPm_u3EggJBalM{0?@{3DgVjNh+*s+LlVG-lTBF2m)W*{fd zYiMC$VQ64zW@K(?5e4L0B5?=MWswHLZ0z7LVq$~_7BeF|vl9agPmO-znfkD()@R+bGrT$(AXmN24#zv*XRX z#$UNu(Lmln78u;Jd@N!tBKmU@J0!OJc3G%!N>OO@P1n+F-CorAVRmOQaA8six!iWP z)M3lXpnJ*TI=kIlH(Yxia-ls?xvctEx&P5B6()tKm`>%bo~@fX9{j%TtMU1G!|pw& zZ6BRjIqQ^`bIxR@OmMno&8^H%tpq36Esh&T(+MJ_la+#pV>+3scS%` when you are not splitting the rows. -If you are splitting the output, you need to inject this as `Supplier>>`. - -You can use `jdbcSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it. -In the case of splitting you get a `Flux` which you have to subscribe in your applications. - -## Configuration Options - -All configuration properties are prefixed with `jdbc.supplier`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/jdbc/JdbcSupplierProperties.java[JdbcSupplierProperties] - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `JdbcPollingChannelAdapter` configuration used by the `jdbcSupplier`. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/jdbc[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/jdbc-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a JDBC Source. diff --git a/functions/supplier/jdbc-supplier/pom.xml b/functions/supplier/jdbc-supplier/pom.xml deleted file mode 100644 index 749f4144..00000000 --- a/functions/supplier/jdbc-supplier/pom.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/jdbc-supplier/src/main/java/org/springframework/cloud/fn/supplier/jdbc/JdbcSupplierConfiguration.java b/functions/supplier/jdbc-supplier/src/main/java/org/springframework/cloud/fn/supplier/jdbc/JdbcSupplierConfiguration.java deleted file mode 100644 index a10013b1..00000000 --- a/functions/supplier/jdbc-supplier/src/main/java/org/springframework/cloud/fn/supplier/jdbc/JdbcSupplierConfiguration.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.jdbc; - -import java.util.List; -import java.util.function.Function; -import java.util.function.Supplier; - -import javax.sql.DataSource; - -import reactor.core.publisher.Flux; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.cloud.fn.splitter.SplitterFunctionConfiguration; -import org.springframework.cloud.function.context.PollableBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.integration.core.MessageSource; -import org.springframework.integration.jdbc.JdbcPollingChannelAdapter; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - -/** - * @author Soby Chacko - * @author Artem Bilan - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(JdbcSupplierProperties.class) -@Import(SplitterFunctionConfiguration.class) -public class JdbcSupplierConfiguration { - - private final JdbcSupplierProperties properties; - - private final DataSource dataSource; - - public JdbcSupplierConfiguration(JdbcSupplierProperties properties, DataSource dataSource) { - this.properties = properties; - this.dataSource = dataSource; - } - - @Bean - public MessageSource jdbcMessageSource( - @Nullable ComponentCustomizer jdbcPollingChannelAdapterCustomizer) { - - JdbcPollingChannelAdapter jdbcPollingChannelAdapter = - new JdbcPollingChannelAdapter(this.dataSource, this.properties.getQuery()); - jdbcPollingChannelAdapter.setMaxRows(this.properties.getMaxRows()); - jdbcPollingChannelAdapter.setUpdateSql(this.properties.getUpdate()); - if (jdbcPollingChannelAdapterCustomizer != null) { - jdbcPollingChannelAdapterCustomizer.customize(jdbcPollingChannelAdapter); - } - return jdbcPollingChannelAdapter; - } - - @Bean(name = "jdbcSupplier") - @PollableBean - @ConditionalOnProperty(prefix = "jdbc.supplier", name = "split", matchIfMissing = true) - public Supplier>> splittedSupplier(MessageSource jdbcMessageSource, - Function, List>> splitterFunction) { - return () -> { - Message received = jdbcMessageSource.receive(); - if (received != null) { - return Flux.fromIterable(splitterFunction.apply(received)); // multiple Message> - } - else { - return Flux.empty(); - } - }; - } - - @Bean - @ConditionalOnProperty(prefix = "jdbc.supplier", name = "split", havingValue = "false") - public Supplier> jdbcSupplier(MessageSource jdbcMessageSource) { - return jdbcMessageSource::receive; - } - -} diff --git a/functions/supplier/jdbc-supplier/src/main/java/org/springframework/cloud/fn/supplier/jdbc/JdbcSupplierProperties.java b/functions/supplier/jdbc-supplier/src/main/java/org/springframework/cloud/fn/supplier/jdbc/JdbcSupplierProperties.java deleted file mode 100644 index 45d0ed8f..00000000 --- a/functions/supplier/jdbc-supplier/src/main/java/org/springframework/cloud/fn/supplier/jdbc/JdbcSupplierProperties.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2019-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.jdbc; - -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * @author Soby Chacko - * @author Artem Bilan - */ -@ConfigurationProperties("jdbc.supplier") -@Validated -public class JdbcSupplierProperties { - - /** - * The query to use to select data. - */ - private String query; - - /** - * An SQL update statement to execute for marking polled messages as 'seen'. - */ - private String update; - - /** - * Whether to split the SQL result as individual messages. - */ - private boolean split = true; - - /** - * Max numbers of rows to process for query. - */ - private int maxRows = 0; - - @NotNull - public String getQuery() { - return query; - } - - public void setQuery(String query) { - this.query = query; - } - - public String getUpdate() { - return update; - } - - public void setUpdate(String update) { - this.update = update; - } - - public boolean isSplit() { - return split; - } - - public void setSplit(boolean split) { - this.split = split; - } - - public int getMaxRows() { - return maxRows; - } - - public void setMaxRows(int maxRows) { - this.maxRows = maxRows; - } - -} diff --git a/functions/supplier/jdbc-supplier/src/main/resources/application.properties b/functions/supplier/jdbc-supplier/src/main/resources/application.properties deleted file mode 100644 index 532da3b2..00000000 --- a/functions/supplier/jdbc-supplier/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.integration.jdbc.initialize-schema=NEVER diff --git a/functions/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/DefaultJdbcSupplierTests.java b/functions/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/DefaultJdbcSupplierTests.java deleted file mode 100644 index 44073f55..00000000 --- a/functions/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/DefaultJdbcSupplierTests.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.jdbc; - -import java.util.Map; -import java.util.function.Supplier; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -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.jdbc.BadSqlGrammarException; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatExceptionOfType; - -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = "jdbc.supplier.query=select id, name from test order by id") -@DirtiesContext -public class DefaultJdbcSupplierTests { - - @Autowired - Supplier>> jdbcSupplier; - - @Autowired - JdbcTemplate jdbcTemplate; - - @Test - void testExtraction() { - final Flux> messageFlux = jdbcSupplier.get(); - StepVerifier stepVerifier = - StepVerifier.create(messageFlux) - .assertNext((message) -> - assertThat(message) - .satisfies((msg) -> assertThat(msg) - .extracting(Message::getPayload) - .matches(o -> { - Map map = (Map) o; - return map.get("ID").equals(1L) && map.get("NAME").equals("Bob"); - }) - )) - .assertNext((message) -> - assertThat(message) - .satisfies((msg) -> assertThat(msg) - .extracting(Message::getPayload) - .matches(o -> { - Map map = (Map) o; - return map.get("ID").equals(2L) && map.get("NAME").equals("Jane"); - }) - )) - .assertNext((message) -> - assertThat(message) - .satisfies((msg) -> assertThat(msg) - .extracting(Message::getPayload) - .matches(o -> { - Map map = (Map) o; - return map.get("ID").equals(3L) && map.get("NAME").equals("John"); - }) - )) - .thenCancel() - .verifyLater(); - stepVerifier.verify(); - } - - /* - The test to verify that DB is not initialized with Spring Integration DDL - (spring.integration.jdbc.initialize-schema=NEVER) what happens by default via IntegrationAutoConfiguration.IntegrationJdbcConfiguration. - This is not a functionality of this JDBC Supplier. - */ - @Test - void verifyNoIntMessageGroupTable() { - assertThatExceptionOfType(BadSqlGrammarException.class) - .isThrownBy(() -> this.jdbcTemplate.queryForList("SELECT * FROM INT_MESSAGE_GROUP")) - .havingCause() - .withMessageContaining("Table \"INT_MESSAGE_GROUP\" not found;"); - } - - @SpringBootApplication - static class JdbcSupplierTestApplication { - } -} diff --git a/functions/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/NonSplitJdbcSupplierTests.java b/functions/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/NonSplitJdbcSupplierTests.java deleted file mode 100644 index eb6f550f..00000000 --- a/functions/supplier/jdbc-supplier/src/test/java/org/springframework/cloud/fn/supplier/jdbc/NonSplitJdbcSupplierTests.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.jdbc; - -import java.util.List; -import java.util.Map; -import java.util.function.Supplier; - -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Soby Chacko - * @author Artem Bilan - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = {"jdbc.supplier.query=select id, name from test order by id", "jdbc.supplier.split=false"}) -@DirtiesContext -public class NonSplitJdbcSupplierTests { - - @Autowired - Supplier> jdbcSupplier; - - @Test - void testExtraction() { - final Message message = jdbcSupplier.get(); - final List> payload = (List>) message.getPayload(); - assertThat(payload.size()).isEqualTo(3); - Map map = payload.get(0); - assertThat(map.get("ID")).isEqualTo(1L); - assertThat(map.get("NAME")).isEqualTo("Bob"); - map = payload.get(1); - assertThat(map.get("ID")).isEqualTo(2L); - assertThat(map.get("NAME")).isEqualTo("Jane"); - map = payload.get(2); - assertThat(map.get("ID")).isEqualTo(3L); - assertThat(map.get("NAME")).isEqualTo("John"); - } - - @SpringBootApplication - static class JdbcSupplierTestApplication { - } -} diff --git a/functions/supplier/jdbc-supplier/src/test/resources/schema.sql b/functions/supplier/jdbc-supplier/src/test/resources/schema.sql deleted file mode 100644 index bb5835cb..00000000 --- a/functions/supplier/jdbc-supplier/src/test/resources/schema.sql +++ /dev/null @@ -1,10 +0,0 @@ --- Run by default by Boot infrastructure - -create table test( - id bigint, - name varchar (2000), - tag char(1) -); -insert into test values (1, 'Bob', NULL); -insert into test values (2, 'Jane', NULL); -insert into test values (3, 'John', NULL); \ No newline at end of file diff --git a/functions/supplier/jms-supplier/README.adoc b/functions/supplier/jms-supplier/README.adoc deleted file mode 100644 index 4aa18754..00000000 --- a/functions/supplier/jms-supplier/README.adoc +++ /dev/null @@ -1,35 +0,0 @@ -# JMS Supplier - -This module provides a JMS supplier that can be reused and composed in other applications. -The `Supplier` uses the JMS support provided by Spring Framework and Spring Integration under the covers. -`jmsSupplier` is implemented as a `java.util.function.Supplier`. -This supplier gives you a reactive stream from JMS sources. The supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and then receive the data. - -## Beans for injection - -You can import the `JmsSupplierConfiguration` in the application and then inject the following bean. - -`jmsSupplier` - -You need to inject this as `Supplier>>`. - -You can use `jmsSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `jms`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/jms/JmsSupplierProperties.java[JmsSupplierProperties]. - -A `ComponentCustomizer>` bean can be added in the target project to provide any custom options for the `JmsMessageDrivenChannelAdapterSpec` configuration used by the `jmsSupplier`. - -## Examples - -See this link:src/test/java/org/springframework/cloud/fn/supplier/jms/[test suite] for the various ways, this supplier is used. - -## Other usage - -See this link:../../../applications/source/jms-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream JMS Source. diff --git a/functions/supplier/jms-supplier/pom.xml b/functions/supplier/jms-supplier/pom.xml deleted file mode 100644 index b115f536..00000000 --- a/functions/supplier/jms-supplier/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/jms-supplier/src/main/java/org/springframework/cloud/fn/supplier/jms/JmsSupplierConfiguration.java b/functions/supplier/jms-supplier/src/main/java/org/springframework/cloud/fn/supplier/jms/JmsSupplierConfiguration.java deleted file mode 100644 index d4e040a0..00000000 --- a/functions/supplier/jms-supplier/src/main/java/org/springframework/cloud/fn/supplier/jms/JmsSupplierConfiguration.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.jms; - -import java.util.function.Supplier; - -import jakarta.jms.ConnectionFactory; -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.jms.JmsProperties; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.jms.dsl.Jms; -import org.springframework.integration.jms.dsl.JmsMessageDrivenChannelAdapterSpec; -import org.springframework.jms.listener.AbstractMessageListenerContainer; -import org.springframework.jms.listener.DefaultMessageListenerContainer; -import org.springframework.jms.listener.SimpleMessageListenerContainer; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(JmsSupplierProperties.class) -public class JmsSupplierConfiguration { - - @Autowired - JmsSupplierProperties properties; - - @Autowired - private JmsProperties jmsProperties; - - @Autowired - private ConnectionFactory connectionFactory; - - @Bean - public Supplier>> jmsSupplier(Publisher> jmsPublisher) { - return () -> Flux.from(jmsPublisher); - } - - @Bean - public Publisher> jmsPublisher( - AbstractMessageListenerContainer container, - @Nullable ComponentCustomizer> - jmsMessageDrivenChannelAdapterSpecCustomizer) { - - JmsMessageDrivenChannelAdapterSpec messageProducerSpec = Jms.messageDrivenChannelAdapter(container); - - if (jmsMessageDrivenChannelAdapterSpecCustomizer != null) { - jmsMessageDrivenChannelAdapterSpecCustomizer.customize(messageProducerSpec); - } - - return IntegrationFlow.from(messageProducerSpec) - .toReactivePublisher(true); - } - - @Bean - public AbstractMessageListenerContainer container() { - AbstractMessageListenerContainer container; - JmsProperties.Listener listenerProperties = this.jmsProperties.getListener(); - if (this.properties.isSessionTransacted()) { - DefaultMessageListenerContainer dmlc = new DefaultMessageListenerContainer(); - dmlc.setSessionTransacted(true); - if (listenerProperties.getConcurrency() != null) { - dmlc.setConcurrentConsumers(listenerProperties.getConcurrency()); - } - if (listenerProperties.getMaxConcurrency() != null) { - dmlc.setMaxConcurrentConsumers(listenerProperties.getMaxConcurrency()); - } - container = dmlc; - } - else { - SimpleMessageListenerContainer smlc = new SimpleMessageListenerContainer(); - smlc.setSessionTransacted(false); - if (listenerProperties != null && listenerProperties.getConcurrency() != null) { - smlc.setConcurrentConsumers(listenerProperties.getConcurrency()); - } - container = smlc; - } - container.setConnectionFactory(this.connectionFactory); - if (this.properties.getClientId() != null) { - container.setClientId(this.properties.getClientId()); - } - container.setDestinationName(this.properties.getDestination()); - if (this.properties.getMessageSelector() != null) { - container.setMessageSelector(this.properties.getMessageSelector()); - } - container.setPubSubDomain(this.jmsProperties.isPubSubDomain()); - if (this.properties.getMessageSelector() != null - && listenerProperties.getAcknowledgeMode() != null) { - container.setSessionAcknowledgeMode(listenerProperties.getAcknowledgeMode().getMode()); - } - if (this.properties.getSubscriptionDurable() != null) { - container.setSubscriptionDurable(this.properties.getSubscriptionDurable()); - } - if (this.properties.getSubscriptionName() != null) { - container.setSubscriptionName(this.properties.getSubscriptionName()); - } - if (this.properties.getSubscriptionShared() != null) { - container.setSubscriptionShared(this.properties.getSubscriptionShared()); - } - return container; - } - -} diff --git a/functions/supplier/jms-supplier/src/main/java/org/springframework/cloud/fn/supplier/jms/JmsSupplierProperties.java b/functions/supplier/jms-supplier/src/main/java/org/springframework/cloud/fn/supplier/jms/JmsSupplierProperties.java deleted file mode 100644 index 245f9cb8..00000000 --- a/functions/supplier/jms-supplier/src/main/java/org/springframework/cloud/fn/supplier/jms/JmsSupplierProperties.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.jms; - -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * Properties for the JMS Supplier. - * - * @author Gary Russell - * - */ -@ConfigurationProperties(prefix = "jms.supplier") -@Validated -public class JmsSupplierProperties { - - /** - * True to enable transactions and select a DefaultMessageListenerContainer, false to - * select a SimpleMessageListenerContainer. - */ - private boolean sessionTransacted = true; - - /** - * Client id for durable subscriptions. - */ - private String clientId; - - /** - * The destination from which to receive messages (queue or topic). - */ - private String destination; - - /** - * The name of a durable or shared subscription. - */ - private String subscriptionName; - - /** - * A selector for messages. - */ - private String messageSelector = null; - - /** - * True for a durable subscription. - */ - private Boolean subscriptionDurable; - - /** - * True for a shared subscription. - */ - private Boolean subscriptionShared; - - public String getClientId() { - return this.clientId; - } - - public void setClientId(String clientId) { - this.clientId = clientId; - } - - @NotNull - public String getDestination() { - return this.destination; - } - - public void setDestination(String destination) { - this.destination = destination; - } - - public String getSubscriptionName() { - return this.subscriptionName; - } - - public void setSubscriptionName(String subscriptionName) { - this.subscriptionName = subscriptionName; - } - - public String getMessageSelector() { - return this.messageSelector; - } - - public void setMessageSelector(String messageSelector) { - this.messageSelector = messageSelector; - } - - public Boolean getSubscriptionDurable() { - return this.subscriptionDurable; - } - - public void setSubscriptionDurable(Boolean subscriptionDurable) { - this.subscriptionDurable = subscriptionDurable; - } - - public Boolean getSubscriptionShared() { - return this.subscriptionShared; - } - - public void setSubscriptionShared(Boolean subscriptionShared) { - this.subscriptionShared = subscriptionShared; - } - - public boolean isSessionTransacted() { - return this.sessionTransacted; - } - - public void setSessionTransacted(boolean sessionTransacted) { - this.sessionTransacted = sessionTransacted; - } -} diff --git a/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/AbstractJmsSupplierTests.java b/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/AbstractJmsSupplierTests.java deleted file mode 100644 index 81d8675d..00000000 --- a/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/AbstractJmsSupplierTests.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.jms; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.integration.jms.JmsMessageDrivenEndpoint; -import org.springframework.test.annotation.DirtiesContext; - -@SpringBootTest -@DirtiesContext -public class AbstractJmsSupplierTests { - - @Autowired - protected JmsMessageDrivenEndpoint endpoint; - - @SpringBootApplication - public static class JmsSupplierTestApplication { - - } -} diff --git a/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated1Tests.java b/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated1Tests.java deleted file mode 100644 index 4b38d482..00000000 --- a/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated1Tests.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.jms; - -import jakarta.jms.Session; -import org.junit.jupiter.api.Test; - -import org.springframework.integration.test.util.TestUtils; -import org.springframework.jms.listener.AbstractMessageListenerContainer; -import org.springframework.jms.listener.SimpleMessageListenerContainer; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { - "jms.supplier.sessionTransacted = false", - "jms.supplier.destination = topic", - "jms.supplier.messageSelector = JMSCorrelationId=foo", - "jms.supplier.subscriptionDurable = false", - "jms.supplier.subscriptionShared = false", - "spring.jms.listener.acknowledgeMode = DUPS_OK", - "spring.jms.listener.concurrency = 3", - "spring.jms.listener.maxConcurrency = 4", - "spring.jms.pubSubDomain = true" -}) -public class PropertiesPopulated1Tests extends AbstractJmsSupplierTests { - - @Test - public void test() { - AbstractMessageListenerContainer container = TestUtils.getPropertyValue(this.endpoint, "listenerContainer", - AbstractMessageListenerContainer.class); - assertThat(container).isInstanceOf(SimpleMessageListenerContainer.class); - assertThat(TestUtils.getPropertyValue(container, "sessionAcknowledgeMode")).isEqualTo(Session.DUPS_OK_ACKNOWLEDGE); - assertThat(TestUtils.getPropertyValue(container, "sessionTransacted", Boolean.class)).isFalse(); - assertThat(TestUtils.getPropertyValue(container, "clientId")).isNull(); - assertThat(TestUtils.getPropertyValue(container, "destination")).isEqualTo("topic"); - assertThat(TestUtils.getPropertyValue(container, "messageSelector")).isEqualTo("JMSCorrelationId=foo"); - assertThat(TestUtils.getPropertyValue(container, "subscriptionDurable", Boolean.class)).isFalse(); - assertThat(TestUtils.getPropertyValue(container, "subscriptionShared", Boolean.class)).isFalse(); - assertThat(TestUtils.getPropertyValue(container, "concurrentConsumers")).isEqualTo(3); - assertThat(TestUtils.getPropertyValue(container, "pubSubDomain", Boolean.class)).isTrue(); - } -} diff --git a/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated2Tests.java b/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated2Tests.java deleted file mode 100644 index c9b7e0cb..00000000 --- a/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated2Tests.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.jms; - -import jakarta.jms.Session; -import org.junit.jupiter.api.Test; - -import org.springframework.integration.test.util.TestUtils; -import org.springframework.jms.listener.AbstractMessageListenerContainer; -import org.springframework.jms.listener.DefaultMessageListenerContainer; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { - "jms.supplier.sessionTransacted = true", "jms.supplier.clientId = client", "jms.supplier.destination = topic", - "jms.supplier.subscriptionName = subName", "jms.supplier.subscriptionDurable = true", - "jms.supplier.subscriptionShared = false", "spring.jms.listener.acknowledgeMode = AUTO", - "spring.jms.listener.concurrency = 3", - "spring.jms.listener.maxConcurrency = 4" -}) -public class PropertiesPopulated2Tests extends AbstractJmsSupplierTests { - - @Test - public void test() { - - AbstractMessageListenerContainer container = TestUtils.getPropertyValue(this.endpoint, "listenerContainer", - AbstractMessageListenerContainer.class); - assertThat(container).isInstanceOf(DefaultMessageListenerContainer.class); - - assertThat(TestUtils.getPropertyValue(container, "sessionAcknowledgeMode")).isEqualTo(Session.AUTO_ACKNOWLEDGE); - assertThat(TestUtils.getPropertyValue(container, "sessionTransacted", Boolean.class)).isTrue(); - assertThat(TestUtils.getPropertyValue(container, "clientId")).isEqualTo("client"); - assertThat(TestUtils.getPropertyValue(container, "destination")).isEqualTo("topic"); - assertThat(TestUtils.getPropertyValue(container, "subscriptionDurable", Boolean.class)).isTrue(); - assertThat(TestUtils.getPropertyValue(container, "subscriptionName")).isEqualTo("subName"); - assertThat(TestUtils.getPropertyValue(container, "subscriptionShared", Boolean.class)).isFalse(); - assertThat(TestUtils.getPropertyValue(container, "concurrentConsumers")).isEqualTo(3); - assertThat(TestUtils.getPropertyValue(container, "maxConcurrentConsumers")).isEqualTo(4); - assertThat(TestUtils.getPropertyValue(container, "pubSubDomain", Boolean.class)).isTrue(); - } -} diff --git a/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated3Tests.java b/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated3Tests.java deleted file mode 100644 index d1b826e9..00000000 --- a/functions/supplier/jms-supplier/src/test/java/org/springframework/cloud/fn/supplier/jms/PropertiesPopulated3Tests.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.jms; - -import java.util.function.Supplier; - -import jakarta.jms.Session; -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.jms.core.JmsTemplate; -import org.springframework.jms.listener.AbstractMessageListenerContainer; -import org.springframework.jms.listener.DefaultMessageListenerContainer; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { - "jms.supplier.sessionTransacted = true", "jms.supplier.destination = jmssource.test.queue", - "jms.supplier.messageSelector = JMSCorrelationId=foo", - "jms.supplier.subscriptionDurable = false", "jms.supplier.subscriptionShared = false", - "spring.jms.listener.acknowledgeMode = AUTO", - "spring.jms.listener.concurrency = 3", - "spring.jms.listener.maxConcurrency = 4", - "spring.jms.pubSubDomain = false" }) -public class PropertiesPopulated3Tests extends AbstractJmsSupplierTests { - - @Autowired - private JmsTemplate template; - - @Autowired - private Supplier>> jmsSupplier; - - @Test - public void test() throws Exception { - AbstractMessageListenerContainer container = TestUtils.getPropertyValue(this.endpoint, "listenerContainer", - AbstractMessageListenerContainer.class); - assertThat(container).isInstanceOf(DefaultMessageListenerContainer.class); - assertThat(TestUtils.getPropertyValue(container, "sessionAcknowledgeMode")).isEqualTo(Session.AUTO_ACKNOWLEDGE); - assertThat(TestUtils.getPropertyValue(container, "sessionTransacted", Boolean.class)).isTrue(); - assertThat(TestUtils.getPropertyValue(container, "destination")).isEqualTo("jmssource.test.queue"); - assertThat(TestUtils.getPropertyValue(container, "messageSelector")).isEqualTo("JMSCorrelationId=foo"); - assertThat(TestUtils.getPropertyValue(container, "subscriptionDurable", Boolean.class)).isFalse(); - assertThat(TestUtils.getPropertyValue(container, "subscriptionShared", Boolean.class)).isFalse(); - assertThat(TestUtils.getPropertyValue(container, "concurrentConsumers")).isEqualTo(3); - assertThat(TestUtils.getPropertyValue(container, "maxConcurrentConsumers")).isEqualTo(4); - assertThat(TestUtils.getPropertyValue(container, "pubSubDomain", Boolean.class)).isFalse(); - - final Flux> messageFlux = jmsSupplier.get(); - - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(message.getPayload()) - .isEqualTo("Hello, world!"); - } - ) - .thenCancel() - .verifyLater(); - - template.convertAndSend("jmssource.test.queue", "Hello, world!"); - - stepVerifier.verify(); - } -} diff --git a/functions/supplier/kafka-supplier/README.adoc b/functions/supplier/kafka-supplier/README.adoc deleted file mode 100644 index f84bc8c8..00000000 --- a/functions/supplier/kafka-supplier/README.adoc +++ /dev/null @@ -1,28 +0,0 @@ -# Apache Kafka (Consumer) Supplier - -A `Supplier` that allows to consume messages from Apache Kafka topic. - - -## Beans for injection - -The `KafkaSupplierConfiguration` is an auto-configuration, so no need to import anything. - -The `Supplier>> kafkaSupplier` bean can be injected into the target service for consuming data from Kafka topics. - -## Configuration Options - -All configuration properties are prefixed with `kafka.supplier`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierProperties.java[KafkaSupplierProperties]. -Also, this artifact fully depends on Spring for Apache Kafka auto-configuration and injects a `ConcurrentKafkaListenerContainerFactory` from there. - -A `ComponentCustomizer>` bean can be added in the target project to provide any custom options for the `KafkaMessageDrivenChannelAdapterSpec` configuration used by the `kafkaSupplier`. - -See more information about `KafkaMessageDrivenChannelAdapter` configuration and behavior in Spring Integration https://docs.spring.io/spring-integration/docs/current/reference/html/kafka.html#kafka-inbound[documentation]. - -## Tests - - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/kafka-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes an Apache Kafka source. diff --git a/functions/supplier/kafka-supplier/pom.xml b/functions/supplier/kafka-supplier/pom.xml deleted file mode 100644 index 815d2625..00000000 --- a/functions/supplier/kafka-supplier/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/kafka-supplier/src/main/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierConfiguration.java b/functions/supplier/kafka-supplier/src/main/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierConfiguration.java deleted file mode 100644 index e55aceeb..00000000 --- a/functions/supplier/kafka-supplier/src/main/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierConfiguration.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.kafka; - -import java.util.function.Supplier; -import java.util.regex.Pattern; - -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.expression.spel.support.StandardEvaluationContext; -import org.springframework.integration.context.IntegrationContextUtils; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.kafka.dsl.Kafka; -import org.springframework.integration.kafka.dsl.KafkaMessageDrivenChannelAdapterSpec; -import org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter; -import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory; -import org.springframework.kafka.listener.ConcurrentMessageListenerContainer; -import org.springframework.kafka.listener.adapter.RecordFilterStrategy; -import org.springframework.kafka.support.converter.BatchMessageConverter; -import org.springframework.kafka.support.converter.BatchMessagingMessageConverter; -import org.springframework.kafka.support.converter.RecordMessageConverter; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - -/** - * An auto-configuration for Kafka Supplier. - * Uses a {@link KafkaMessageDrivenChannelAdapterSpec} to consumer records from Kafka topic. - * - * @author Artem Bilan - * - * @since 4.0 - */ -@AutoConfiguration(after = KafkaAutoConfiguration.class) -@EnableConfigurationProperties(KafkaSupplierProperties.class) -public class KafkaSupplierConfiguration { - - @Bean - public Supplier>> kafkaSupplier(Publisher> kafkaSupplierPublisher) { - return () -> Flux.from(kafkaSupplierPublisher); - } - - @Bean - public Publisher> kafkaSupplierPublisher( - KafkaMessageDrivenChannelAdapterSpec kafkaMessageDrivenChannelAdapterSpec) { - - return IntegrationFlow.from(kafkaMessageDrivenChannelAdapterSpec) - .toReactivePublisher(true); - } - - @Bean - public KafkaMessageDrivenChannelAdapterSpec kafkaMessageDrivenChannelAdapterSpec( - KafkaSupplierProperties kafkaSupplierProperties, - ConcurrentKafkaListenerContainerFactory kafkaListenerContainerFactory, - ObjectProvider recordMessageConverterProvider, - ObjectProvider> recordFilterStrategyProvider, - ObjectProvider batchMessageConverterProvider, - @Nullable ComponentCustomizer> kafkaChannelAdapterComponentCustomizer) { - - ConcurrentMessageListenerContainer container; - - Pattern topicPattern = kafkaSupplierProperties.getTopicPattern(); - if (topicPattern != null) { - container = kafkaListenerContainerFactory.createContainer(topicPattern); - } - else { - container = kafkaListenerContainerFactory.createContainer(kafkaSupplierProperties.getTopics()); - } - - KafkaMessageDrivenChannelAdapter.ListenerMode listenerMode = - Boolean.TRUE.equals(kafkaListenerContainerFactory.isBatchListener()) - ? KafkaMessageDrivenChannelAdapter.ListenerMode.batch - : KafkaMessageDrivenChannelAdapter.ListenerMode.record; - - KafkaMessageDrivenChannelAdapterSpec kafkaMessageDrivenChannelAdapterSpec = - Kafka.messageDrivenChannelAdapter(container, listenerMode) - .ackDiscarded(kafkaSupplierProperties.isAckDiscarded()) - .autoStartup(false); - - RecordMessageConverter recordMessageConverter = recordMessageConverterProvider.getIfUnique(); - - if (KafkaMessageDrivenChannelAdapter.ListenerMode.batch.equals(listenerMode)) { - BatchMessageConverter batchMessageConverter = - batchMessageConverterProvider.getIfUnique( - () -> new BatchMessagingMessageConverter(recordMessageConverter)); - - kafkaMessageDrivenChannelAdapterSpec.batchMessageConverter(batchMessageConverter); - } - else if (recordMessageConverter != null) { - kafkaMessageDrivenChannelAdapterSpec.recordMessageConverter(recordMessageConverter); - } - - recordFilterStrategyProvider.ifUnique(kafkaMessageDrivenChannelAdapterSpec::recordFilterStrategy); - - if (kafkaChannelAdapterComponentCustomizer != null) { - kafkaChannelAdapterComponentCustomizer.customize(kafkaMessageDrivenChannelAdapterSpec); - } - - return kafkaMessageDrivenChannelAdapterSpec; - } - - @Bean - @ConditionalOnMissingBean - @ConditionalOnProperty("kafka.supplier.recordFilter") - RecordFilterStrategy recordFilterStrategy(KafkaSupplierProperties kafkaSupplierProperties, - BeanFactory beanFactory) { - - StandardEvaluationContext evaluationContext = IntegrationContextUtils.getEvaluationContext(beanFactory); - - return consumerRecord -> - Boolean.TRUE.equals( - kafkaSupplierProperties.getRecordFilter() - .getValue(evaluationContext, consumerRecord, Boolean.class)); - } - -} diff --git a/functions/supplier/kafka-supplier/src/main/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierProperties.java b/functions/supplier/kafka-supplier/src/main/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierProperties.java deleted file mode 100644 index 6a509ac6..00000000 --- a/functions/supplier/kafka-supplier/src/main/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierProperties.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.kafka; - -import java.util.regex.Pattern; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; - -/** - * Auto-configuration properties for the Kafka Supplier. - * - * @author Artem Bilan - * - * @since 4.0 - */ -@ConfigurationProperties("kafka.supplier") -public class KafkaSupplierProperties { - - /** - * Apache Kafka topics to subscribe. - */ - private String[] topics; - - /** - * Apache Kafka topics pattern to subscribe. - */ - private Pattern topicPattern; - - /** - * Whether to acknowledge discarded records after 'RecordFilterStrategy'. - */ - private boolean ackDiscarded; - - /** - * SpEL expression for 'RecordFilterStrategy' with a 'ConsumerRecord' as a root object. - */ - Expression recordFilter; - - public String[] getTopics() { - return this.topics; - } - - public void setTopics(String[] topics) { - this.topics = topics; - } - - public Pattern getTopicPattern() { - return this.topicPattern; - } - - public void setTopicPattern(Pattern topicPattern) { - this.topicPattern = topicPattern; - } - - public boolean isAckDiscarded() { - return this.ackDiscarded; - } - - public void setAckDiscarded(boolean ackDiscarded) { - this.ackDiscarded = ackDiscarded; - } - - public Expression getRecordFilter() { - return this.recordFilter; - } - - public void setRecordFilter(Expression recordFilter) { - this.recordFilter = recordFilter; - } - -} diff --git a/functions/supplier/kafka-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/functions/supplier/kafka-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 3a9a43ac..00000000 --- a/functions/supplier/kafka-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.fn.supplier.kafka.KafkaSupplierConfiguration diff --git a/functions/supplier/kafka-supplier/src/test/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierTests.java b/functions/supplier/kafka-supplier/src/test/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierTests.java deleted file mode 100644 index b4621378..00000000 --- a/functions/supplier/kafka-supplier/src/test/java/org/springframework/cloud/fn/supplier/kafka/KafkaSupplierTests.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright 2023-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.kafka; - -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; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration; -import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration; -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.messaging.Message; - -/** - * @author Artem Bilan - * - * @since 4.0 - */ -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, - KafkaAutoConfiguration.class, - KafkaSupplierConfiguration.class, - SpelExpressionConverterConfiguration.class)); - - @BeforeAll - static void initializeEmbeddedKafka() { - EMBEDDED_KAFKA.afterPropertiesSet(); - } - - @Test - void recordModeAndTopicPattern() { - this.contextRunner.withPropertyValues( - "spring.kafka.template.defaultTopic=defaultTopic", - "spring.kafka.consumer.group-id=test-group1", - "spring.kafka.consumer.auto-offset-reset=earliest", - "kafka.supplier.topicPattern=default.+") - .run((context) -> { - String testPayload1 = "test data #1"; - String testPayload2 = "test data #2"; - - KafkaTemplate kafkaTemplate = getKafkaTemplate(context); - kafkaTemplate.sendDefault(testPayload1); - kafkaTemplate.sendDefault(testPayload2); - kafkaTemplate.flush(); - - Supplier>> kafkaSupplier = getKafkaSupplier(context); - StepVerifier.create( - kafkaSupplier.get() - .map(Message::getPayload) - .cast(String.class)) - .expectNext(testPayload1, testPayload2) - .thenCancel() - .verify(Duration.ofSeconds(30)); - }); - } - - @Test - void batchMode() { - this.contextRunner.withPropertyValues( - "spring.kafka.consumer.group-id=test-group2", - "spring.kafka.consumer.auto-offset-reset=earliest", - "spring.kafka.listener.type=BATCH", - "kafka.supplier.topics=testTopic1,testTopic2", - "kafka.supplier.recordFilter=value() == 'test data #2'") - .run((context) -> { - String testPayload1 = "test data #1"; - String testPayload2 = "test data #2"; - - Supplier>> kafkaSupplier = getKafkaSupplier(context); - StepVerifier stepVerifier = StepVerifier.create( - kafkaSupplier.get() - .map(Message::getPayload) - .cast(List.class)) - .expectNext(List.of(testPayload1)) - .thenCancel() - .verifyLater(); - - - KafkaTemplate kafkaTemplate = getKafkaTemplate(context); - kafkaTemplate.send("testTopic1", testPayload1); - kafkaTemplate.send("testTopic2", testPayload2); - kafkaTemplate.flush(); - - stepVerifier.verify(Duration.ofSeconds(30)); - }); - } - - @SuppressWarnings("unchecked") - private static KafkaTemplate getKafkaTemplate(ApplicationContext applicationContext) { - return applicationContext.getBean(KafkaTemplate.class); - } - - @SuppressWarnings("unchecked") - private static Supplier>> getKafkaSupplier(ApplicationContext applicationContext) { - return (Supplier>>) applicationContext.getBean("kafkaSupplier"); - } - -} diff --git a/functions/supplier/mail-supplier/README.adoc b/functions/supplier/mail-supplier/README.adoc deleted file mode 100644 index e5f1f4a1..00000000 --- a/functions/supplier/mail-supplier/README.adoc +++ /dev/null @@ -1,36 +0,0 @@ -# Mail Supplier - -This module provides a File supplier that can be reused and composed in other applications. -The `Supplier` uses the mail IMAP and POP3 support from Spring Integration. -The `mailSupplier` bean is implemented as a `java.util.function.Supplier`. -This supplier gives you a reactive stream of emails from the provided url (imap or pop3). -The supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and receive the data. - -## Beans for injection - -You can import the `MailSupplierConfiguration` in the application and then inject the following bean. - -`mailSupplier` - -You need to inject this as `Supplier>>`. - -You can use `mailSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `mail.supplier`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierProperties.java[MailSupplierProperties]. - -A `ComponentCustomizer>` (or `ComponentCustomizer` when `mail.supplier.idle-imap = true`) bean can be added in the target project to provide any custom options for the `MailInboundChannelAdapterSpec` (or `ImapIdleChannelAdapterSpec`, respectively) configuration used by the `mailSupplier`. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/mail[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/mail-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a Mail Source. diff --git a/functions/supplier/mail-supplier/pom.xml b/functions/supplier/mail-supplier/pom.xml deleted file mode 100644 index bfc0447f..00000000 --- a/functions/supplier/mail-supplier/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierConfiguration.java b/functions/supplier/mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierConfiguration.java deleted file mode 100644 index 35ba4e82..00000000 --- a/functions/supplier/mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierConfiguration.java +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mail; - -import java.util.Arrays; -import java.util.List; -import java.util.Properties; -import java.util.function.Supplier; - -import jakarta.mail.URLName; -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.core.MessageSource; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.MessageProducerSpec; -import org.springframework.integration.dsl.MessageSourceSpec; -import org.springframework.integration.endpoint.MessageProducerSupport; -import org.springframework.integration.endpoint.ReactiveMessageSourceProducer; -import org.springframework.integration.mail.MailHeaders; -import org.springframework.integration.mail.dsl.ImapIdleChannelAdapterSpec; -import org.springframework.integration.mail.dsl.Mail; -import org.springframework.integration.mail.dsl.MailInboundChannelAdapterSpec; -import org.springframework.integration.transformer.support.AbstractHeaderValueMessageProcessor; -import org.springframework.integration.transformer.support.HeaderValueMessageProcessor; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - -/** - * Mail supplier components. - * - * @author Amol - * @author Artem Bilan - * @author Chris Schaefer - * @author Soby Chacko - * @author Corneil du Plessis - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(MailSupplierProperties.class) -public class MailSupplierConfiguration { - - - final private MailSupplierProperties properties; - - public MailSupplierConfiguration(MailSupplierProperties properties) { - this.properties = properties; - } - - @Bean - public Publisher> mailInboundFlow(MessageProducerSupport messageProducer) { - - return IntegrationFlow.from(messageProducer) - .transform(Mail.toStringTransformer(this.properties.getCharset())) - .enrichHeaders(h -> h - .defaultOverwrite(true) - .header(MailHeaders.TO, arrayToListProcessor(MailHeaders.TO)) - .header(MailHeaders.CC, arrayToListProcessor(MailHeaders.CC)) - .header(MailHeaders.BCC, arrayToListProcessor(MailHeaders.BCC))) - .toReactivePublisher(true); - } - - @Bean - public Supplier>> mailSupplier(Publisher> messagePublisher) { - return () -> Flux.from(messagePublisher); - } - - private HeaderValueMessageProcessor arrayToListProcessor(final String header) { - return new AbstractHeaderValueMessageProcessor>() { - - @Override - public List processMessage(Message message) { - return Arrays.asList(message.getHeaders().get(header, String[].class)); - } - - }; - } - - @Bean("mailChannelAdapter") - @ConditionalOnProperty("mail.supplier.idle-imap") - MessageProducerSpec imapIdleProducer( - @Nullable ComponentCustomizer imapIdleChannelAdapterSpecCustomizer) { - - URLName urlName = this.properties.getUrl(); - ImapIdleChannelAdapterSpec imapIdleChannelAdapterSpec = Mail.imapIdleAdapter(urlName.toString()) - .shouldDeleteMessages(this.properties.isDelete()) - .userFlag(this.properties.getUserFlag()) - .javaMailProperties(getJavaMailProperties(urlName)) - .selectorExpression(this.properties.getExpression()) - .shouldMarkMessagesAsRead(this.properties.isMarkAsRead()); - - if (imapIdleChannelAdapterSpecCustomizer != null) { - imapIdleChannelAdapterSpecCustomizer.customize(imapIdleChannelAdapterSpec); - } - return imapIdleChannelAdapterSpec; - } - - @Bean - @ConditionalOnProperty(value = "mail.supplier.idle-imap", matchIfMissing = true, havingValue = "false") - MessageSourceSpec mailMessageSource( - @Nullable ComponentCustomizer> - mailInboundChannelAdapterSpecCustomizer) { - - MailInboundChannelAdapterSpec adapterSpec; - URLName urlName = this.properties.getUrl(); - switch (urlName.getProtocol().toUpperCase()) { - case "IMAP": - case "IMAPS": - adapterSpec = getImapChannelAdapterSpec(urlName); - break; - case "POP3": - case "POP3S": - adapterSpec = getPop3ChannelAdapterSpec(urlName); - break; - default: - throw new IllegalArgumentException( - "Unsupported mail protocol: " + urlName.getProtocol()); - } - adapterSpec.javaMailProperties(getJavaMailProperties(urlName)) - .userFlag(this.properties.getUserFlag()) - .selectorExpression(this.properties.getExpression()) - .shouldDeleteMessages(this.properties.isDelete()); - - if (mailInboundChannelAdapterSpecCustomizer != null) { - mailInboundChannelAdapterSpecCustomizer.customize(adapterSpec); - } - - return adapterSpec; - } - - @Bean("mailChannelAdapter") - @ConditionalOnProperty(value = "mail.supplier.idle-imap", matchIfMissing = true, havingValue = "false") - MessageProducerSupport mailMessageProducer(MessageSource mailMessageSource) { - return new ReactiveMessageSourceProducer(mailMessageSource); - } - - /** - * Method to build Mail Channel Adapter for POP3. - * @param urlName Mail source URL. - * @return Mail Channel for POP3 - */ - @SuppressWarnings("rawtypes") - private MailInboundChannelAdapterSpec getPop3ChannelAdapterSpec(URLName urlName) { - return Mail.pop3InboundAdapter(urlName.toString()); - } - - /** - * Method to build Mail Channel Adapter for IMAP. - * @param urlName Mail source URL. - * @return Mail Channel for IMAP - */ - @SuppressWarnings("rawtypes") - private MailInboundChannelAdapterSpec getImapChannelAdapterSpec(URLName urlName) { - return Mail.imapInboundAdapter(urlName.toString()) - .shouldMarkMessagesAsRead(this.properties.isMarkAsRead()); - } - - private Properties getJavaMailProperties(URLName urlName) { - Properties javaMailProperties = new Properties(); - - switch (urlName.getProtocol().toUpperCase()) { - case "IMAP": - javaMailProperties.setProperty("mail.imap.socketFactory.class", "javax.net.SocketFactory"); - javaMailProperties.setProperty("mail.imap.socketFactory.fallback", "false"); - javaMailProperties.setProperty("mail.store.protocol", "imap"); - break; - - case "IMAPS": - javaMailProperties.setProperty("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); - javaMailProperties.setProperty("mail.imap.socketFactory.fallback", "false"); - javaMailProperties.setProperty("mail.store.protocol", "imaps"); - break; - - case "POP3": - javaMailProperties.setProperty("mail.pop3.socketFactory.class", "javax.net.SocketFactory"); - javaMailProperties.setProperty("mail.pop3.socketFactory.fallback", "false"); - javaMailProperties.setProperty("mail.store.protocol", "pop3"); - break; - - case "POP3S": - javaMailProperties.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); - javaMailProperties.setProperty("mail.pop3.socketFactory.fallback", "false"); - javaMailProperties.setProperty("mail.store.protocol", "pop3s"); - break; - } - - javaMailProperties.putAll(this.properties.getJavaMailProperties()); - return javaMailProperties; - } - -} diff --git a/functions/supplier/mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierProperties.java b/functions/supplier/mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierProperties.java deleted file mode 100644 index 05ccde23..00000000 --- a/functions/supplier/mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierProperties.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mail; - -import java.util.Properties; - -import jakarta.mail.URLName; -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.integration.mail.AbstractMailReceiver; -import org.springframework.validation.annotation.Validated; - -/** - * Properties for the file supplier. - * - * @author Gary Russell - * @author Artem Bilan - * @author Soby Chacko - */ -@ConfigurationProperties("mail.supplier") -@Validated -public class MailSupplierProperties { - - /** - * Mail connection URL for connection to Mail server e.g. - * 'imaps://username:password@imap.server.com:993/Inbox'. - */ - private URLName url; - - /** - * Set to true to mark email as read. - */ - private boolean markAsRead = false; - - /** - * Set to true to delete email after download. - */ - private boolean delete = false; - - /** - * Set to true to use IdleImap Configuration. - */ - private boolean idleImap = false; - - /** - * JavaMail properties as a new line delimited string of name-value pairs, e.g. - * 'foo=bar\n baz=car'. - */ - private Properties javaMailProperties = new Properties(); - - /** - * Configure a SpEL expression to select messages. - */ - private String expression = "true"; - - /** - * The charset for byte[] mail-to-string transformation. - */ - private String charset = "UTF-8"; - - /** - * The flag to mark messages when the server does not support \Recent. - */ - private String userFlag = AbstractMailReceiver.DEFAULT_SI_USER_FLAG; - - /** - * @return the markAsRead - */ - public boolean isMarkAsRead() { - return this.markAsRead; - } - - /** - * @param markAsRead the markAsRead to set - */ - public void setMarkAsRead(boolean markAsRead) { - this.markAsRead = markAsRead; - } - - /** - * @return the delete - */ - public boolean isDelete() { - return this.delete; - } - - /** - * @param delete the delete to set - */ - public void setDelete(boolean delete) { - this.delete = delete; - } - - /** - * @return the idleImap - */ - public boolean isIdleImap() { - return this.idleImap; - } - - /** - * @param idleImap the idleImap to set - */ - public void setIdleImap(boolean idleImap) { - this.idleImap = idleImap; - } - - /** - * @return the javaMailProperties - */ - @NotNull - public Properties getJavaMailProperties() { - return this.javaMailProperties; - } - - /** - * @param javaMailProperties the javaMailProperties to set - */ - public void setJavaMailProperties(Properties javaMailProperties) { - this.javaMailProperties = javaMailProperties; - } - - /** - * @return the url - */ - @NotNull - public URLName getUrl() { - return this.url; - } - - /** - * @param url the url to set - */ - public void setUrl(URLName url) { - this.url = url; - } - - /** - * @return the expression - */ - @NotNull - public String getExpression() { - return this.expression; - } - - /** - * @param expression the expression to set - */ - public void setExpression(String expression) { - this.expression = expression; - } - - @NotNull - public String getCharset() { - return this.charset; - } - - public void setCharset(String charset) { - this.charset = charset; - } - - @NotNull - public String getUserFlag() { - return this.userFlag; - } - - public void setUserFlag(String userFlag) { - this.userFlag = userFlag; - } -} diff --git a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/AbstractMailSupplierTests.java b/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/AbstractMailSupplierTests.java deleted file mode 100644 index af5362cd..00000000 --- a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/AbstractMailSupplierTests.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mail; - -import java.util.function.Supplier; - -import com.icegreen.greenmail.user.GreenMailUser; -import com.icegreen.greenmail.util.GreenMail; -import com.icegreen.greenmail.util.GreenMailUtil; -import com.icegreen.greenmail.util.ServerSetup; -import com.icegreen.greenmail.util.ServerSetupTest; -import org.junit.jupiter.api.BeforeAll; -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.integration.dsl.StandardIntegrationFlow; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; - -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, properties = { - "mail.supplier.mark-as-read=true", - "mail.supplier.delete=false", - "mail.supplier.user-flag=testSIUserFlag", - "mail.supplier.java-mail-properties=mail.imap.socketFactory.fallback=true\\n mail.store.protocol=imap\\n mail.debug=true"}) -@DirtiesContext -public abstract class AbstractMailSupplierTests { - - protected static GreenMail mailServer; - - protected static GreenMailUser mailUser; - - @Autowired - protected Supplier>> mailSupplier; - - @Autowired - protected StandardIntegrationFlow integrationFlow; - - protected void sendMessage(String subject, String body) { - mailUser.deliver(GreenMailUtil.createTextEmail("bar@bax", "test@test", subject, body, mailServer.getSmtp().getServerSetup())); - } - - @BeforeAll - public static void setup() { - ServerSetup imap = ServerSetupTest.IMAP.dynamicPort(); - imap.setServerStartupTimeout(10000); - ServerSetup pop3 = ServerSetupTest.POP3.dynamicPort(); - pop3.setServerStartupTimeout(10000); - ServerSetup smtp = ServerSetupTest.SMTP.dynamicPort(); - smtp.setServerStartupTimeout(10000); - - mailServer = new GreenMail(new ServerSetup[] {imap, pop3, smtp}); - mailUser = mailServer.setUser("user", "pw"); - mailServer.start(); - } - - @DynamicPropertySource - static void mongoDbProperties(DynamicPropertyRegistry registry) { - registry.add("test.mail.server.imap.port", mailServer.getImap().getServerSetup()::getPort); - registry.add("test.mail.server.pop3.port", mailServer.getPop3().getServerSetup()::getPort); - registry.add("test.mail.server.smtp.port", mailServer.getSmtp().getServerSetup()::getPort); - } - - @SpringBootApplication - public static class MailSupplierTestApplication { - - } - -} diff --git a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapFailTests.java b/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapFailTests.java deleted file mode 100644 index 63b89f1a..00000000 --- a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapFailTests.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mail; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.integration.mail.transformer.MailToStringTransformer; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { - "mail.supplier.url=imap://user:pw@localhost:${test.mail.server.imap.port}/INBOX", - "mail.supplier.charset=cp1251"}) -public class ImapFailTests extends AbstractMailSupplierTests { - - @Autowired - protected MailToStringTransformer mailToStringTransformer; - - - @Test - public void testSimpleTest() { - // given - sendMessage("test", "foo"); - // when - final Flux> messageFlux = mailSupplier.get(); - // then - assertThat(TestUtils.getPropertyValue(mailToStringTransformer, "charset").equals("cp1251")).isTrue(); - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((String) message.getPayload())).isNotEqualTo("Test Mail"); - } - ) - .thenCancel() - .verify(); - } -} diff --git a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapIdleFailTests.java b/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapIdleFailTests.java deleted file mode 100644 index 001f041e..00000000 --- a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapIdleFailTests.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mail; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { - "mail.supplier.idle-imap=true", - "mail.supplier.url=imap://user:pw@localhost:${test.mail.server.imap.port}/INBOX"}) -public class ImapIdleFailTests extends AbstractMailSupplierTests { - @Test - public void testSimpleTest() { - // given - sendMessage("test", "foo"); - // when - final Flux> messageFlux = mailSupplier.get(); - // then - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((String) message.getPayload())).isNotEqualTo("Test Mail"); - } - ) - .thenCancel() - .verify(); - } -} diff --git a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapIdlePassTests.java b/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapIdlePassTests.java deleted file mode 100644 index 1ed7aec3..00000000 --- a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapIdlePassTests.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mail; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { - "mail.supplier.idle-imap=true", - "mail.supplier.url=imap://user:pw@localhost:${test.mail.server.imap.port}/INBOX"}) -public class ImapIdlePassTests extends AbstractMailSupplierTests { - - @Test - public void testSimpleTest() { - // given - sendMessage("test", "foo"); - // when - final Flux> messageFlux = mailSupplier.get(); - // then - StepVerifier.create(messageFlux) - .assertNext((message) -> { - System.out.println("Message:" + message); - assertThat(((String) message.getPayload())).isEqualTo("foo"); - } - ) - .thenCancel() - .verify(); - } -} diff --git a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapPassTests.java b/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapPassTests.java deleted file mode 100644 index 97cc2a3f..00000000 --- a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/ImapPassTests.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mail; - -import java.io.UnsupportedEncodingException; -import java.util.List; - -import com.icegreen.greenmail.util.GreenMailUtil; -import jakarta.mail.MessagingException; -import jakarta.mail.internet.InternetAddress; -import jakarta.mail.internet.MimeMessage; -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.integration.mail.MailHeaders; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = "mail.supplier.url=imap://user:pw@localhost:${test.mail.server.imap.port}/INBOX") -public class ImapPassTests extends AbstractMailSupplierTests { - - - @Test - public void testSimpleTest() throws UnsupportedEncodingException, MessagingException { - // given - MimeMessage mailMessage = GreenMailUtil.createTextEmail("bar@foo", "test@test", "test", "foo", mailServer.getSmtp().getServerSetup()); - mailMessage.addRecipients(jakarta.mail.Message.RecipientType.TO, new InternetAddress[]{new InternetAddress("foo@bar", "Foo")}); - mailMessage.addRecipients(jakarta.mail.Message.RecipientType.CC, new InternetAddress[]{new InternetAddress("a@b"), new InternetAddress("c@d")}); - mailMessage.addRecipients(jakarta.mail.Message.RecipientType.BCC, new InternetAddress[]{new InternetAddress("e@f"), new InternetAddress("g@h")}); - mailUser.deliver(mailMessage); - // when - final Flux> messageFlux = mailSupplier.get(); - // then - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((String) message.getPayload())).isEqualTo("foo"); - MessageHeaders headers = message.getHeaders(); - assertThat(headers.get(MailHeaders.TO)).isInstanceOf(List.class); - assertThat(headers.get(MailHeaders.CC)).isInstanceOf(List.class); - assertThat(headers.get(MailHeaders.BCC)).isInstanceOf(List.class); - assertThat(headers.get(MailHeaders.TO).toString()).isEqualTo("[bar@foo, Foo ]"); - assertThat(headers.get(MailHeaders.CC).toString()).isEqualTo("[a@b, c@d]"); - assertThat(headers.get(MailHeaders.BCC).toString()).isEqualTo("[e@f, g@h]"); - } - ) - .thenCancel() - .verify(); - } -} diff --git a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/Pop3FailTests.java b/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/Pop3FailTests.java deleted file mode 100644 index 52a17c88..00000000 --- a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/Pop3FailTests.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mail; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = "mail.supplier.url=pop3://user:pw@localhost:${test.mail.server.pop3.port}/INBOX") -public class Pop3FailTests extends AbstractMailSupplierTests { - - - @Test - public void testSimpleTest() { - // given - sendMessage("test", "foo"); - // when - final Flux> messageFlux = mailSupplier.get(); - // then - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((String) message.getPayload())).isNotEqualTo("Test Mail"); - } - ) - .thenCancel() - .verify(); - } - -} diff --git a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/Pop3PassTests.java b/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/Pop3PassTests.java deleted file mode 100644 index fb1166d7..00000000 --- a/functions/supplier/mail-supplier/src/test/java/org/springframework/cloud/fn/supplier/mail/Pop3PassTests.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mail; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = "mail.supplier.url=pop3://user:pw@localhost:${test.mail.server.pop3.port}/INBOX") -public class Pop3PassTests extends AbstractMailSupplierTests { - - - @Test - public void testSimpleTest() { - // given - sendMessage("test", "foo"); - final Flux> messageFlux = mailSupplier.get(); - - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((String) message.getPayload())).contains("foo"); - } - ) - .thenCancel() - .verify(); - - } -} diff --git a/functions/supplier/mongodb-supplier/README.adoc b/functions/supplier/mongodb-supplier/README.adoc deleted file mode 100644 index 79fc60fc..00000000 --- a/functions/supplier/mongodb-supplier/README.adoc +++ /dev/null @@ -1,39 +0,0 @@ -# MongoDB Supplier - -This module provides a MongoDB supplier that can be reused and composed in other applications. -The `Supplier` uses the `MongoDBMessageSource` from Spring Integration. -`MongoDBSupplier` is implemented as a `java.util.function.Supplier`. -When you have use-cases such as periodical execution of querying MongoDB, based on some external trigger such as a REST endpoint call for example, then you can use this `Supplier` to query. - -## Beans for injection - -You can import the `MongoDBSupplierConfiguration` in the application and then inject the following bean. - -`mongoDBSupplier` - -You can inject it as `Supplier` when you are not splitting the rows. -If you are splitting the output, you need to inject this as `Supplier>>`. - -You can use `mongoDBSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it. -In the case of splitting you get a `Flux` which you have to subscribe in your applications. - -## Configuration Options - -All configuration properties are prefixed with `mongodb.supplier`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierProperties.java[MongoDBSupplierProperties]. - -The `queryExpression` and `updateExpression` options may use Spring Data MongoDB query DSL from the `org.springframework.data.mongodb.core.query`, such as `Query` and `Update` factories respectively. -The `updateExpression` is optional and ca use an item from query result as a root evaluation object to extract some values to update from just fetched data. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `MongoDbMessageSource` configuration used by the `mongodbSupplier`. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierApplicationTests.java[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/mongodb-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a MongoDB Source. diff --git a/functions/supplier/mongodb-supplier/pom.xml b/functions/supplier/mongodb-supplier/pom.xml deleted file mode 100644 index 28d888d9..00000000 --- a/functions/supplier/mongodb-supplier/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/mongodb-supplier/src/main/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierConfiguration.java b/functions/supplier/mongodb-supplier/src/main/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierConfiguration.java deleted file mode 100644 index f63ae1b0..00000000 --- a/functions/supplier/mongodb-supplier/src/main/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierConfiguration.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2019-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mongo; - -import java.util.List; -import java.util.function.Function; -import java.util.function.Supplier; - -import reactor.core.publisher.Flux; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.cloud.fn.splitter.SplitterFunctionConfiguration; -import org.springframework.cloud.function.context.PollableBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.expression.Expression; -import org.springframework.expression.common.LiteralExpression; -import org.springframework.integration.mongodb.inbound.MongoDbMessageSource; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - -/** - * A configuration for MongoDB Source applications. Produces - * {@link MongoDbMessageSource} which polls collection with the query after startup - * according to the polling properties. - * - * @author Adam Zwickey - * @author Artem Bilan - * @author David Turanski - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties({ MongodbSupplierProperties.class }) -@Import(SplitterFunctionConfiguration.class) -public class MongodbSupplierConfiguration { - - private final MongodbSupplierProperties properties; - - private final MongoTemplate mongoTemplate; - - public MongodbSupplierConfiguration(MongodbSupplierProperties properties, MongoTemplate mongoTemplate) { - this.properties = properties; - this.mongoTemplate = mongoTemplate; - } - - @Bean(name = "mongodbSupplier") - @PollableBean - @ConditionalOnProperty(prefix = "mongodb", name = "split", matchIfMissing = true) - public Supplier>> splittedSupplier(MongoDbMessageSource mongoDbSource, - Function, List>> splitterFunction) { - - return () -> { - Message received = mongoDbSource.receive(); - if (received != null) { - return Flux.fromIterable(splitterFunction.apply(received)); // multiple Message> - } - else { - return Flux.empty(); - } - }; - } - - @Bean - @ConditionalOnProperty(prefix = "mongodb", name = "split", havingValue = "false") - public Supplier> mongodbSupplier(MongoDbMessageSource mongoDbSource) { - return mongoDbSource::receive; - } - - @Bean - public MongoDbMessageSource mongoDbSource( - @Nullable ComponentCustomizer mongoDbMessageSourceCustomizer) { - - Expression queryExpression = (this.properties.getQueryExpression() != null - ? this.properties.getQueryExpression() - : new LiteralExpression(this.properties.getQuery())); - MongoDbMessageSource mongoDbMessageSource = new MongoDbMessageSource(this.mongoTemplate, queryExpression); - mongoDbMessageSource.setCollectionNameExpression(new LiteralExpression(this.properties.getCollection())); - mongoDbMessageSource.setEntityClass(String.class); - mongoDbMessageSource.setUpdateExpression(this.properties.getUpdateExpression()); - - if (mongoDbMessageSourceCustomizer != null) { - mongoDbMessageSourceCustomizer.customize(mongoDbMessageSource); - } - - return mongoDbMessageSource; - } - -} diff --git a/functions/supplier/mongodb-supplier/src/main/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierProperties.java b/functions/supplier/mongodb-supplier/src/main/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierProperties.java deleted file mode 100644 index 67fd31c1..00000000 --- a/functions/supplier/mongodb-supplier/src/main/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierProperties.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2016-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mongo; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotEmpty; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.validation.annotation.Validated; - -/** - * @author Adam Zwickey - * @author Artem Bilan - * @author Chris Schaefer - * @author David Turanski - */ -@ConfigurationProperties("mongodb.supplier") -@Validated -public class MongodbSupplierProperties { - - /** - * The MongoDB collection to query. - */ - private String collection; - - /** - * The MongoDB query. - */ - private String query = "{ }"; - - /** - * The SpEL expression in MongoDB query DSL style. - */ - private Expression queryExpression; - - /** - * The SpEL expression in MongoDB update DSL style. - */ - private Expression updateExpression; - - /** - * Whether to split the query result as individual messages. - */ - private boolean split = true; - - @NotEmpty(message = "Query is required") - public String getQuery() { - return query; - } - - public void setQuery(String query) { - this.query = query; - } - - public Expression getQueryExpression() { - return queryExpression; - } - - public void setQueryExpression(Expression queryExpression) { - this.queryExpression = queryExpression; - } - - @NotBlank(message = "Collection name is required") - public String getCollection() { - return collection; - } - - public void setCollection(String collection) { - this.collection = collection; - } - - public boolean isSplit() { - return split; - } - - public void setSplit(boolean split) { - this.split = split; - } - - public Expression getUpdateExpression() { - return this.updateExpression; - } - - public void setUpdateExpression(Expression updateExpression) { - this.updateExpression = updateExpression; - } - -} diff --git a/functions/supplier/mongodb-supplier/src/main/resources/application.properties b/functions/supplier/mongodb-supplier/src/main/resources/application.properties deleted file mode 100644 index 8b137891..00000000 --- a/functions/supplier/mongodb-supplier/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/functions/supplier/mongodb-supplier/src/test/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierApplicationTests.java b/functions/supplier/mongodb-supplier/src/test/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierApplicationTests.java deleted file mode 100644 index 14305fb9..00000000 --- a/functions/supplier/mongodb-supplier/src/test/java/org/springframework/cloud/fn/supplier/mongo/MongodbSupplierApplicationTests.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2019-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mongo; - -import java.util.Map; -import java.util.function.Supplier; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.mongodb.client.MongoClient; -import com.mongodb.client.MongoCollection; -import com.mongodb.client.MongoDatabase; -import org.bson.Document; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -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.messaging.Message; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.entry; - -@SpringBootTest(properties = { - "mongodb.supplier.collection=testing", - "mongodb.supplier.query={ name: { $exists: true }}", - "mongodb.supplier.update-expression='{ $unset: { name: 0 } }'" -}) -class MongodbSupplierApplicationTests implements MongoDbTestContainerSupport { - - @DynamicPropertySource - static void mongoDbProperties(DynamicPropertyRegistry registry) { - registry.add("spring.data.mongodb.port", MONGO_CONTAINER::getFirstMappedPort); - registry.add("spring.data.mongodb.database", () -> "test"); - } - - private final ObjectMapper objectMapper = new ObjectMapper(); - - @Autowired - private Supplier>> mongodbSupplier; - - @Autowired - private MongoClient mongo; - - @BeforeEach - public void setUp() { - MongoDatabase database = this.mongo.getDatabase("test"); - database.createCollection("testing"); - MongoCollection collection = database.getCollection("testing"); - collection.insertOne( - new Document("greeting", "hello") - .append("name", "foo")); - collection.insertOne( - new Document("greeting", "hola") - .append("name", "bar")); - } - - @Test - void testMongodbSupplier() { - // given - Flux> messageFlux = this.mongodbSupplier.get(); - // when - StepVerifier.create(messageFlux) - // then - .assertNext((message) -> - assertThat(toMap(message)).contains( - entry("greeting", "hello"), - entry("name", "foo"))) - .assertNext((message) -> - assertThat(toMap(message)).contains( - entry("greeting", "hola"), - entry("name", "bar"))) - .thenCancel() - .verify(); - - assertThat(this.mongodbSupplier.get().collectList().block()).isEmpty(); - } - - private Map toMap(Message message) { - Map map = null; - try { - map = objectMapper.readValue(message.getPayload().toString(), Map.class); - } - catch (Exception e) { - e.printStackTrace(); - } - return map; - } - - @SpringBootApplication - static class MongoDbSupplierTestApplication { - } -} diff --git a/functions/supplier/mqtt-supplier/README.adoc b/functions/supplier/mqtt-supplier/README.adoc deleted file mode 100644 index 0fc7b2b7..00000000 --- a/functions/supplier/mqtt-supplier/README.adoc +++ /dev/null @@ -1,42 +0,0 @@ -# MQTT Supplier - -This module provides an MQTT supplier that can be reused and composed in other applications. -The `Supplier` uses the `MqttPahoMessageDrivenChannelAdapter` from Spring Integration. -`mqttSupplier` is implemented as a `java.util.function.Supplier`. -This supplier gives you a reactive stream from MQTT sources. The supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and then receive the data. - -## Beans for injection - -You can import the `MqttSupplierConfiguration` in the application and then inject the following bean. - -`mqttSupplier` - -You need to inject this as `Supplier>>`. - -You can use `mqttSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `mqtt.supplier` and `mqtt`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierProperties.java[MqttSupplierProperties]. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `MqttPahoMessageDrivenChannelAdapter` configuration used by the `mqttSupplier`. - -## SSL Configuration - -The MQTT Paho client can accept an SSL configuration via `MqttConnectOptions.setSSLProperties()`. -These properties are exposed on the `MqttProperties.sslProperties` map. -The keys for these SSL properties should be taken from the `org.eclipse.paho.client.mqttv3.internal.security.SSLSocketFactoryFactory` constants, which all start with the `com.ibm.ssl.` prefix. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierTests.java[test suite] for the various ways, this supplier is used. -In addition to this, there is also link:../../common/mqtt-common/src/main/java/org/springframework/cloud/fn/common/mqtt/MqttProperties.java[this set of properties] to consider. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/mqtt-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes an MQTT Source. diff --git a/functions/supplier/mqtt-supplier/pom.xml b/functions/supplier/mqtt-supplier/pom.xml deleted file mode 100644 index 8c2436e0..00000000 --- a/functions/supplier/mqtt-supplier/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - mqtt-supplier - mqtt-supplier - mqtt supplier - - - - org.springframework.cloud.fn - mqtt-common - ${project.version} - - - - diff --git a/functions/supplier/mqtt-supplier/src/main/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierConfiguration.java b/functions/supplier/mqtt-supplier/src/main/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierConfiguration.java deleted file mode 100644 index 82b1bc52..00000000 --- a/functions/supplier/mqtt-supplier/src/main/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierConfiguration.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2017-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mqtt; - -import java.util.function.Supplier; - -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.cloud.fn.common.mqtt.MqttConfiguration; -import org.springframework.cloud.fn.common.mqtt.MqttProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.mqtt.core.MqttPahoClientFactory; -import org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter; -import org.springframework.integration.mqtt.support.DefaultPahoMessageConverter; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; - -/** - * A source module that receives data from Mqtt. - * - * @author Janne Valkealahti - * @author Soby Chacko - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties({MqttProperties.class, MqttSupplierProperties.class}) -@Import(MqttConfiguration.class) -public class MqttSupplierConfiguration { - - @Autowired - private MqttSupplierProperties properties; - - @Autowired - private MqttPahoClientFactory mqttClientFactory; - - @Autowired - private BeanFactory beanFactory; - - @Bean - public Supplier>> mqttSupplier(Publisher> mqttPublisher) { - return () -> Flux.from(mqttPublisher); - } - - @Bean - public MqttPahoMessageDrivenChannelAdapter mqttInbound( - @Nullable ComponentCustomizer mqttMessageProducerCustomizer) { - - MqttPahoMessageDrivenChannelAdapter adapter = - new MqttPahoMessageDrivenChannelAdapter(this.properties.getClientId(), this.mqttClientFactory, - this.properties.getTopics()); - adapter.setQos(this.properties.getQos()); - adapter.setConverter(pahoMessageConverter(this.beanFactory)); - adapter.setAutoStartup(false); - - if (mqttMessageProducerCustomizer != null) { - mqttMessageProducerCustomizer.customize(adapter); - } - - return adapter; - } - - @Bean - public Publisher> mqttPublisher(MqttPahoMessageDrivenChannelAdapter mqttInbound) { - return IntegrationFlow.from(mqttInbound) - .toReactivePublisher(true); - } - - private DefaultPahoMessageConverter pahoMessageConverter(BeanFactory beanFactory) { - DefaultPahoMessageConverter converter = new DefaultPahoMessageConverter(properties.getCharset()); - converter.setPayloadAsBytes(properties.isBinary()); - converter.setBeanFactory(beanFactory); - return converter; - } - -} diff --git a/functions/supplier/mqtt-supplier/src/main/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierProperties.java b/functions/supplier/mqtt-supplier/src/main/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierProperties.java deleted file mode 100644 index 25f671e6..00000000 --- a/functions/supplier/mqtt-supplier/src/main/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierProperties.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2017-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mqtt; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Size; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * Properties for the Mqtt Source. - * - * @author Janne Valkealahti - * @author Soby Chacko - * - */ -@Validated -@ConfigurationProperties("mqtt.supplier") -public class MqttSupplierProperties { - - /** - * identifies the client. - */ - private String clientId = "stream.client.id.source"; - - /** - * the topic(s) (comma-delimited) to which the source will subscribe. - */ - private String[] topics = new String[] { "stream.mqtt" }; - - /** - * the qos; a single value for all topics or a comma-delimited list to match the topics. - */ - private int[] qos = new int[] { 0 }; - - /** - * true to leave the payload as bytes. - */ - private boolean binary = false; - - /** - * the charset used to convert bytes to String (when binary is false). - */ - private String charset = "UTF-8"; - - @NotBlank - @Size(min = 1, max = 23) - public String getClientId() { - return this.clientId; - } - - public void setClientId(String clientId) { - this.clientId = clientId; - } - - public String[] getTopics() { - return this.topics; - } - - public void setTopics(String[] topics) { - this.topics = topics; - } - - public int[] getQos() { - return this.qos; - } - - public void setQos(int[] qos) { - this.qos = qos; - } - - public String getCharset() { - return this.charset; - } - - public void setCharset(String charset) { - this.charset = charset; - } - - public boolean isBinary() { - return this.binary; - } - - public void setBinary(boolean binary) { - this.binary = binary; - } - -} diff --git a/functions/supplier/mqtt-supplier/src/test/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierTests.java b/functions/supplier/mqtt-supplier/src/test/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierTests.java deleted file mode 100644 index d859b0b6..00000000 --- a/functions/supplier/mqtt-supplier/src/test/java/org/springframework/cloud/fn/supplier/mqtt/MqttSupplierTests.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 2017-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.mqtt; - -import java.time.Duration; -import java.util.Properties; -import java.util.function.Supplier; - -import org.eclipse.paho.client.mqttv3.MqttConnectOptions; -import org.eclipse.paho.client.mqttv3.internal.security.SSLSocketFactoryFactory; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; -import org.testcontainers.containers.GenericContainer; -import reactor.core.publisher.Flux; -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.context.annotation.Bean; -import org.springframework.integration.mqtt.core.MqttPahoClientFactory; -import org.springframework.integration.mqtt.outbound.MqttPahoMessageHandler; -import org.springframework.integration.mqtt.support.DefaultPahoMessageConverter; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHandler; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for Mqtt Supplier. - * - * @author Janne Valkealahti - * @author Gary Russell - * @author Soby Chacko - * @author Artem Bilan - * - */ -@SpringBootTest(properties = - { "mqtt.supplier.topics=test,fake", - "mqtt.supplier.qos=0,0", - "mqtt.ssl-properties.com.ibm.ssl.protocol=TLS", - "mqtt.ssl-properties.com.ibm.ssl.keyStoreType=TEST"}) -@DirtiesContext -@Tag("integration") -public class MqttSupplierTests { - - static { - GenericContainer mosquitto = - new GenericContainer<>("eclipse-mosquitto:2.0.13") - .withCommand("mosquitto -c /mosquitto-no-auth.conf") - .withReuse(true) - .withExposedPorts(1883) - .withStartupTimeout(Duration.ofSeconds(120)) - .withStartupAttempts(3); - mosquitto.start(); - final Integer mappedPort = mosquitto.getMappedPort(1883); - System.setProperty("mqtt.url", "tcp://localhost:" + mappedPort); - } - - @AfterAll - public static void cleanup() { - System.clearProperty("mqtt.url"); - } - - @Autowired - private Supplier>> mqttSupplier; - - @Autowired - private MqttPahoMessageHandler mqttOutbound; - - @Test - public void testBasicFlow() { - MqttConnectOptions connectionInfo = this.mqttOutbound.getConnectionInfo(); - Properties sslProperties = connectionInfo.getSSLProperties(); - assertThat(sslProperties) - .containsEntry(SSLSocketFactoryFactory.SSLPROTOCOL, SSLSocketFactoryFactory.DEFAULT_PROTOCOL) - .containsEntry(SSLSocketFactoryFactory.KEYSTORETYPE, "TEST"); - this.mqttOutbound.handleMessage(MessageBuilder.withPayload("hello").build()); - - final Flux> messageFlux = mqttSupplier.get(); - - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(message.getPayload()) - .isEqualTo("hello"); - } - ) - .thenCancel() - .verify(); - } - - @SpringBootApplication - static class MqttSupplierTestApplication { - - @Autowired - private MqttPahoClientFactory mqttClientFactory; - - @Bean - public MessageHandler mqttOutbound() { - MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler("test", mqttClientFactory); - messageHandler.setAsync(true); - messageHandler.setDefaultTopic("test"); - messageHandler.setConverter(producerConverter()); - return messageHandler; - } - - @Bean - public DefaultPahoMessageConverter producerConverter() { - return new DefaultPahoMessageConverter(1, true, "UTF-8"); - } - - } - -} diff --git a/functions/supplier/mqtt-supplier/src/test/resources/logback.xml b/functions/supplier/mqtt-supplier/src/test/resources/logback.xml deleted file mode 100644 index 8e52ae3e..00000000 --- a/functions/supplier/mqtt-supplier/src/test/resources/logback.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - \ No newline at end of file diff --git a/functions/supplier/pom.xml b/functions/supplier/pom.xml deleted file mode 100644 index d51b8349..00000000 --- a/functions/supplier/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud.fn - java-functions-supplier - 5.0.0-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/functions/supplier/rabbit-supplier/README.adoc b/functions/supplier/rabbit-supplier/README.adoc deleted file mode 100644 index c8015051..00000000 --- a/functions/supplier/rabbit-supplier/README.adoc +++ /dev/null @@ -1,34 +0,0 @@ -# RabbitMQ Supplier - -This module provides an RabbitMQ supplier that can be reused and composed in other applications. -The `Supplier` uses the RabbitMQ support provided by Spring Integration. -The `rabbitSupplier` is implemented as a `java.util.function.Supplier`. -This supplier gives you a reactive stream of files from the provided directory as the supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and receive the data. - -## Beans for injection - -You can import the `RabbitSupplierConfiguration` in the application and then inject the following bean. - -`rabbitSupplier` - -You need to inject this as `Supplier>>`. - -You can use `rabbitSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `rabbit.supplier`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/rabbit/RabbitSupplierProperties.java[RabbitSupplierProperties]. -Also see an auto-configuration for RabbitMQ connection and listener container options. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `AmqpInboundChannelAdapterSMLCSpec` configuration used by the `rabbitSupplier`. - -## Tests - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/rabbit-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a RabbitMQ Source. diff --git a/functions/supplier/rabbit-supplier/pom.xml b/functions/supplier/rabbit-supplier/pom.xml deleted file mode 100644 index 90b14f9b..00000000 --- a/functions/supplier/rabbit-supplier/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/rabbit-supplier/src/main/java/org/springframework/cloud/fn/supplier/rabbit/RabbitSupplierConfiguration.java b/functions/supplier/rabbit-supplier/src/main/java/org/springframework/cloud/fn/supplier/rabbit/RabbitSupplierConfiguration.java deleted file mode 100644 index c058e9af..00000000 --- a/functions/supplier/rabbit-supplier/src/main/java/org/springframework/cloud/fn/supplier/rabbit/RabbitSupplierConfiguration.java +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.rabbit; - -import java.util.function.Supplier; - -import com.rabbitmq.client.AMQP; -import com.rabbitmq.client.Envelope; -import com.rabbitmq.client.impl.CredentialsProvider; -import com.rabbitmq.client.impl.CredentialsRefreshService; -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; - -import org.springframework.amqp.core.AcknowledgeMode; -import org.springframework.amqp.core.MessageProperties; -import org.springframework.amqp.rabbit.config.RetryInterceptorBuilder; -import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; -import org.springframework.amqp.rabbit.connection.ConnectionFactory; -import org.springframework.amqp.rabbit.connection.RabbitConnectionFactoryBean; -import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; -import org.springframework.amqp.rabbit.retry.RejectAndDontRequeueRecoverer; -import org.springframework.amqp.rabbit.support.DefaultMessagePropertiesConverter; -import org.springframework.amqp.rabbit.support.MessagePropertiesConverter; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.amqp.CachingConnectionFactoryConfigurer; -import org.springframework.boot.autoconfigure.amqp.ConnectionFactoryCustomizer; -import org.springframework.boot.autoconfigure.amqp.RabbitConnectionFactoryBeanConfigurer; -import org.springframework.boot.autoconfigure.amqp.RabbitProperties; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.io.ResourceLoader; -import org.springframework.integration.amqp.dsl.Amqp; -import org.springframework.integration.amqp.dsl.AmqpInboundChannelAdapterSMLCSpec; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.retry.interceptor.RetryOperationsInterceptor; -import org.springframework.util.Assert; - -/** - * A source module that receives data from RabbitMQ. - * - * @author Gary Russell - * @author Chris Schaefer - * @author Roger Perez - * @author Chris Bono - * @author Artem Bilan - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties(RabbitSupplierProperties.class) -public class RabbitSupplierConfiguration implements DisposableBean { - - private static final MessagePropertiesConverter inboundMessagePropertiesConverter = - new DefaultMessagePropertiesConverter() { - - @Override - public MessageProperties toMessageProperties(AMQP.BasicProperties source, - Envelope envelope, String charset) { - - MessageProperties properties = super.toMessageProperties(source, envelope, charset); - properties.setDeliveryMode(null); - return properties; - } - - }; - - @Autowired - private RabbitProperties rabbitProperties; - - @Autowired - private ResourceLoader resourceLoader; - - @Autowired - private ObjectProvider credentialsProvider; - - @Autowired - private ObjectProvider credentialsRefreshService; - - @Autowired - private ObjectProvider connectionFactoryCustomizers; - - @Autowired - private RabbitSupplierProperties properties; - - @Autowired - private ConnectionFactory rabbitConnectionFactory; - - private CachingConnectionFactory ownConnectionFactory; - - @Bean - public SimpleMessageListenerContainer container(RetryOperationsInterceptor rabbitSourceRetryInterceptor) { - ConnectionFactory connectionFactory = this.properties.isOwnConnection() - ? buildLocalConnectionFactory() - : this.rabbitConnectionFactory; - SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory); - container.setAutoStartup(false); - RabbitProperties.SimpleContainer simpleContainer = this.rabbitProperties.getListener().getSimple(); - - AcknowledgeMode acknowledgeMode = simpleContainer.getAcknowledgeMode(); - if (acknowledgeMode != null) { - container.setAcknowledgeMode(acknowledgeMode); - } - Integer concurrency = simpleContainer.getConcurrency(); - if (concurrency != null) { - container.setConcurrentConsumers(concurrency); - } - Integer maxConcurrency = simpleContainer.getMaxConcurrency(); - if (maxConcurrency != null) { - container.setMaxConcurrentConsumers(maxConcurrency); - } - Integer prefetch = simpleContainer.getPrefetch(); - if (prefetch != null) { - container.setPrefetchCount(prefetch); - } - Integer transactionSize = simpleContainer.getBatchSize(); - if (transactionSize != null) { - container.setBatchSize(transactionSize); - } - container.setDefaultRequeueRejected(this.properties.getRequeue()); - container.setChannelTransacted(this.properties.getTransacted()); - String[] queues = this.properties.getQueues(); - Assert.state(queues.length > 0, "At least one queue is required"); - Assert.noNullElements(queues, "queues cannot have null elements"); - container.setQueueNames(queues); - if (this.properties.isEnableRetry()) { - container.setAdviceChain(rabbitSourceRetryInterceptor); - } - container.setMessagePropertiesConverter(inboundMessagePropertiesConverter); - return container; - } - - @Bean - public Publisher> rabbitPublisher(SimpleMessageListenerContainer container, - @Nullable ComponentCustomizer amqpMessageProducerCustomizer) { - - AmqpInboundChannelAdapterSMLCSpec messageProducerSpec = - Amqp.inboundAdapter(container) - .mappedRequestHeaders(properties.getMappedRequestHeaders()); - - if (amqpMessageProducerCustomizer != null) { - amqpMessageProducerCustomizer.customize(messageProducerSpec); - } - - return IntegrationFlow.from(messageProducerSpec) - .toReactivePublisher(true); - } - - @Bean - public Supplier>> rabbitSupplier(Publisher> rabbitPublisher) { - return () -> Flux.from(rabbitPublisher); - } - - @Bean - public RetryOperationsInterceptor rabbitSourceRetryInterceptor() { - return RetryInterceptorBuilder.stateless() - .maxAttempts(this.properties.getMaxAttempts()) - .backOffOptions(this.properties.getInitialRetryInterval(), this.properties.getRetryMultiplier(), - this.properties.getMaxRetryInterval()) - .recoverer(new RejectAndDontRequeueRecoverer()) - .build(); - } - - @Override - public void destroy() { - if (this.ownConnectionFactory != null) { - this.ownConnectionFactory.destroy(); - } - } - - private ConnectionFactory buildLocalConnectionFactory() { - try { - this.ownConnectionFactory = rabbitConnectionFactory( - this.rabbitProperties, this.resourceLoader, this.credentialsProvider, this.credentialsRefreshService, - this.connectionFactoryCustomizers); - - } - catch (Exception exception) { - throw new IllegalStateException("Error building connection factory", exception); - } - - return this.ownConnectionFactory; - } - - /* NOTE: This is based on RabbitAutoConfiguration.RabbitConnectionFactoryCreator - * https://github.com/spring-projects/spring-boot/blob/c820ad01a108d419d8548265b8a34ed7c5591f7c/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java#L95 - * [UPGRADE_CONSIDERATION] this should stay somewhat in sync w/ the functionality provided by its original source. - */ - private static CachingConnectionFactory rabbitConnectionFactory(RabbitProperties properties, - ResourceLoader resourceLoader, - ObjectProvider credentialsProvider, - ObjectProvider credentialsRefreshService, - ObjectProvider connectionFactoryCustomizers) throws Exception { - - RabbitConnectionFactoryBean connectionFactoryBean = new RabbitConnectionFactoryBean(); - RabbitConnectionFactoryBeanConfigurer connectionFactoryBeanConfigurer = - new RabbitConnectionFactoryBeanConfigurer(resourceLoader, properties); - connectionFactoryBeanConfigurer.setCredentialsProvider(credentialsProvider.getIfUnique()); - connectionFactoryBeanConfigurer.setCredentialsRefreshService(credentialsRefreshService.getIfUnique()); - connectionFactoryBeanConfigurer.configure(connectionFactoryBean); - connectionFactoryBean.afterPropertiesSet(); - - com.rabbitmq.client.ConnectionFactory connectionFactory = connectionFactoryBean.getObject(); - connectionFactoryCustomizers.orderedStream() - .forEach((customizer) -> customizer.customize(connectionFactory)); - - CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory(connectionFactory); - CachingConnectionFactoryConfigurer cachingConnectionFactoryConfigurer = - new CachingConnectionFactoryConfigurer(properties); - cachingConnectionFactoryConfigurer.setConnectionNameStrategy(cf -> "rabbit.supplier.own.connection"); - cachingConnectionFactoryConfigurer.configure(cachingConnectionFactory); - cachingConnectionFactory.afterPropertiesSet(); - - return cachingConnectionFactory; - } - -} diff --git a/functions/supplier/rabbit-supplier/src/main/java/org/springframework/cloud/fn/supplier/rabbit/RabbitSupplierProperties.java b/functions/supplier/rabbit-supplier/src/main/java/org/springframework/cloud/fn/supplier/rabbit/RabbitSupplierProperties.java deleted file mode 100644 index 0cb390ca..00000000 --- a/functions/supplier/rabbit-supplier/src/main/java/org/springframework/cloud/fn/supplier/rabbit/RabbitSupplierProperties.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright 2019-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.rabbit; - -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -@ConfigurationProperties("rabbit.supplier") -@Validated -public class RabbitSupplierProperties { - - /** - * Whether rejected messages should be requeued. - */ - private boolean requeue = true; - - /** - * Whether the channel is transacted. - */ - private boolean transacted = false; - - /** - * The queues to which the source will listen for messages. - */ - private String[] queues; - - /** - * Headers that will be mapped. - */ - private String[] mappedRequestHeaders = {"STANDARD_REQUEST_HEADERS"}; - - /** - * Initial retry interval when retry is enabled. - */ - private int initialRetryInterval = 1000; - - /** - * Max retry interval when retry is enabled. - */ - private int maxRetryInterval = 30000; - - /** - * Retry backoff multiplier when retry is enabled. - */ - private double retryMultiplier = 2.0; - - /** - * The maximum delivery attempts when retry is enabled. - */ - private int maxAttempts = 3; - - /** - * true to enable retry. - */ - private boolean enableRetry = false; - - /** - * When true, use a separate connection based on the boot properties. - */ - private boolean ownConnection; - - public boolean getRequeue() { - return requeue; - } - - public void setRequeue(boolean requeue) { - this.requeue = requeue; - } - - public boolean getTransacted() { - return transacted; - } - - public void setTransacted(boolean transacted) { - this.transacted = transacted; - } - - @NotNull(message = "queue(s) are required") - @Size(min = 1, message = "At least one queue is required") - public String[] getQueues() { - return queues; - } - - public void setQueues(String[] queues) { - this.queues = queues; - } - - @NotNull - public String[] getMappedRequestHeaders() { - return mappedRequestHeaders; - } - - public void setMappedRequestHeaders(String[] mappedRequestHeaders) { - this.mappedRequestHeaders = mappedRequestHeaders; - } - - public int getInitialRetryInterval() { - return initialRetryInterval; - } - - public void setInitialRetryInterval(int initialRetryInterval) { - this.initialRetryInterval = initialRetryInterval; - } - - public int getMaxRetryInterval() { - return maxRetryInterval; - } - - public void setMaxRetryInterval(int maxRetryInterval) { - this.maxRetryInterval = maxRetryInterval; - } - - public double getRetryMultiplier() { - return retryMultiplier; - } - - public void setRetryMultiplier(double retryMultiplier) { - this.retryMultiplier = retryMultiplier; - } - - public int getMaxAttempts() { - return maxAttempts; - } - - public void setMaxAttempts(int maxAttempts) { - this.maxAttempts = maxAttempts; - } - - public boolean isEnableRetry() { - return enableRetry; - } - - public void setEnableRetry(boolean enableRetry) { - this.enableRetry = enableRetry; - } - - public boolean isOwnConnection() { - return this.ownConnection; - } - - public void setOwnConnection(boolean ownConnection) { - this.ownConnection = ownConnection; - } -} diff --git a/functions/supplier/s3-supplier/README.adoc b/functions/supplier/s3-supplier/README.adoc deleted file mode 100644 index 760a086e..00000000 --- a/functions/supplier/s3-supplier/README.adoc +++ /dev/null @@ -1,38 +0,0 @@ -= AWS S3 Supplier - -This module provides an S3 supplier that can be reused and composed in other applications. -The `Supplier` uses the AWS S3 support provided by Spring Integration and spring cloud aws project -`S3Supplier` is implemented as a `java.util.function.Supplier`. -This supplier gives you a reactive stream of files from the provided directory as the supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and receive the data. - -== Beans for injection - -You can import the `AwsS3SupplierConfiguration` in the application and then inject the following bean. - -`s3Supplier` - -You need to inject this as `Supplier>>`. - -You can use `s3Supplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -== Configuration Options - -All configuration properties are prefixed with `s3.supplier`. -There are also properties that need to be used with the prefix `s3.common` and `file.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/s3/AwsS3SupplierProperties.java[AwsS3SupplierProperties], -link:../../common/file-common/src/main/java/org/springframework/cloud/fn/common/file/FileConsumerProperties.java[FileConsumerProperties], and -`io.awspring.cloud.autoconfigure.s3.properties.S3Properties` from Spring Cloud AWS auto-configuration.. - -A `ComponentCustomizer` bean can be added in the target project to provide any custom options for the `S3InboundFileSynchronizingMessageSource` configuration used by the `s3Supplier`. - -== Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/s3[test suite] for the various ways, this supplier is used. - -== Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/s3-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes an AWS S3 Source. diff --git a/functions/supplier/s3-supplier/pom.xml b/functions/supplier/s3-supplier/pom.xml deleted file mode 100644 index 53af2be6..00000000 --- a/functions/supplier/s3-supplier/pom.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/s3-supplier/src/main/java/org/springframework/cloud/fn/supplier/s3/AwsS3SupplierConfiguration.java b/functions/supplier/s3-supplier/src/main/java/org/springframework/cloud/fn/supplier/s3/AwsS3SupplierConfiguration.java deleted file mode 100644 index be44f4fd..00000000 --- a/functions/supplier/s3-supplier/src/main/java/org/springframework/cloud/fn/supplier/s3/AwsS3SupplierConfiguration.java +++ /dev/null @@ -1,239 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.s3; - -import java.util.List; -import java.util.function.Predicate; -import java.util.function.Supplier; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; -import software.amazon.awssdk.services.s3.S3Client; -import software.amazon.awssdk.services.s3.model.ListObjectsRequest; -import software.amazon.awssdk.services.s3.model.S3Object; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.config.ComponentCustomizer; -import org.springframework.cloud.fn.common.file.FileConsumerProperties; -import org.springframework.cloud.fn.common.file.FileUtils; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.aws.inbound.S3InboundFileSynchronizer; -import org.springframework.integration.aws.inbound.S3InboundFileSynchronizingMessageSource; -import org.springframework.integration.aws.support.S3SessionFactory; -import org.springframework.integration.aws.support.filters.S3PersistentAcceptOnceFileListFilter; -import org.springframework.integration.aws.support.filters.S3RegexPatternFileListFilter; -import org.springframework.integration.aws.support.filters.S3SimplePatternFileListFilter; -import org.springframework.integration.core.MessageSource; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.endpoint.ReactiveMessageSourceProducer; -import org.springframework.integration.file.filters.ChainFileListFilter; -import org.springframework.integration.metadata.ConcurrentMetadataStore; -import org.springframework.integration.util.IntegrationReactiveUtils; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.util.StringUtils; - -/** - * @author Artem Bilan - * @author David Turanski - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties({AwsS3SupplierProperties.class, FileConsumerProperties.class}) -public class AwsS3SupplierConfiguration { - - protected static final String METADATA_STORE_PREFIX = "s3-metadata-"; - - protected final AwsS3SupplierProperties awsS3SupplierProperties; - - protected final FileConsumerProperties fileConsumerProperties; - - protected final S3SessionFactory s3SessionFactory; - - protected final ConcurrentMetadataStore metadataStore; - - public AwsS3SupplierConfiguration(AwsS3SupplierProperties awsS3SupplierProperties, - FileConsumerProperties fileConsumerProperties, - S3SessionFactory s3SessionFactory, - ConcurrentMetadataStore metadataStore) { - - this.awsS3SupplierProperties = awsS3SupplierProperties; - this.fileConsumerProperties = fileConsumerProperties; - this.s3SessionFactory = s3SessionFactory; - this.metadataStore = metadataStore; - } - - @Configuration - @ConditionalOnProperty(prefix = "s3.supplier", name = "list-only", havingValue = "false", matchIfMissing = true) - static class SynchronizingConfiguration extends AwsS3SupplierConfiguration { - - @Bean - public Supplier>> s3Supplier(Publisher> s3SupplierFlow) { - return () -> Flux.from(s3SupplierFlow); - } - - @Bean - public ChainFileListFilter filter(ConcurrentMetadataStore metadataStore) { - ChainFileListFilter chainFilter = new ChainFileListFilter<>(); - if (StringUtils.hasText(this.awsS3SupplierProperties.getFilenamePattern())) { - chainFilter.addFilter( - new S3SimplePatternFileListFilter(this.awsS3SupplierProperties.getFilenamePattern())); - } - else if (this.awsS3SupplierProperties.getFilenameRegex() != null) { - chainFilter - .addFilter(new S3RegexPatternFileListFilter(this.awsS3SupplierProperties.getFilenameRegex())); - } - - chainFilter.addFilter(new S3PersistentAcceptOnceFileListFilter(metadataStore, METADATA_STORE_PREFIX)); - return chainFilter; - } - - SynchronizingConfiguration(AwsS3SupplierProperties awsS3SupplierProperties, - FileConsumerProperties fileConsumerProperties, - S3SessionFactory s3SessionFactory, - ConcurrentMetadataStore concurrentMetadataStore) { - - super(awsS3SupplierProperties, fileConsumerProperties, s3SessionFactory, concurrentMetadataStore); - } - - @Bean - public Publisher> s3SupplierFlow(S3InboundFileSynchronizingMessageSource s3MessageSource) { - return FileUtils.enhanceFlowForReadingMode( - IntegrationFlow.from( - IntegrationReactiveUtils.messageSourceToFlux(s3MessageSource) - .doOnSubscribe((s) -> s3MessageSource.start())), - fileConsumerProperties) - .toReactivePublisher(true); - } - - @Bean - public S3InboundFileSynchronizer s3InboundFileSynchronizer(ChainFileListFilter filter) { - - S3InboundFileSynchronizer synchronizer = new S3InboundFileSynchronizer(s3SessionFactory); - synchronizer.setDeleteRemoteFiles(this.awsS3SupplierProperties.isDeleteRemoteFiles()); - synchronizer.setPreserveTimestamp(this.awsS3SupplierProperties.isPreserveTimestamp()); - String remoteDir = this.awsS3SupplierProperties.getRemoteDir(); - synchronizer.setRemoteDirectory(remoteDir); - synchronizer.setRemoteFileSeparator(this.awsS3SupplierProperties.getRemoteFileSeparator()); - synchronizer.setTemporaryFileSuffix(this.awsS3SupplierProperties.getTmpFileSuffix()); - synchronizer.setFilter(filter); - - return synchronizer; - } - - @Bean - public S3InboundFileSynchronizingMessageSource s3MessageSource( - S3InboundFileSynchronizer s3InboundFileSynchronizer, - @Nullable ComponentCustomizer s3MessageSourceCustomizer) { - - S3InboundFileSynchronizingMessageSource s3MessageSource = new S3InboundFileSynchronizingMessageSource( - s3InboundFileSynchronizer); - s3MessageSource.setLocalDirectory(this.awsS3SupplierProperties.getLocalDir()); - s3MessageSource.setAutoCreateLocalDirectory(this.awsS3SupplierProperties.isAutoCreateLocalDir()); - s3MessageSource.setUseWatchService(true); - - if (s3MessageSourceCustomizer != null) { - s3MessageSourceCustomizer.customize(s3MessageSource); - } - return s3MessageSource; - } - - } - - @Configuration - @ConditionalOnProperty(prefix = "s3.supplier", name = "list-only", havingValue = "true") - static class ListOnlyConfiguration extends AwsS3SupplierConfiguration { - - ListOnlyConfiguration(AwsS3SupplierProperties awsS3SupplierProperties, - FileConsumerProperties fileConsumerProperties, - S3SessionFactory s3SessionFactory, - ConcurrentMetadataStore metadataStore) { - - super(awsS3SupplierProperties, fileConsumerProperties, s3SessionFactory, metadataStore); - } - - @Bean - public Supplier>> s3Supplier(Publisher> s3SupplierFlow) { - return () -> Flux.from(s3SupplierFlow); - } - - @Bean - public Publisher> s3SupplierFlow(ReactiveMessageSourceProducer s3ListingProducer) { - return IntegrationFlow.from(s3ListingProducer).split().toReactivePublisher(true); - } - - @Bean - Predicate listOnlyFilter(AwsS3SupplierProperties awsS3SupplierProperties) { - Predicate predicate = s -> true; - if (StringUtils.hasText(this.awsS3SupplierProperties.getFilenamePattern())) { - Pattern pattern = Pattern.compile(this.awsS3SupplierProperties.getFilenamePattern()); - predicate = (S3Object summary) -> pattern.matcher(summary.key()).matches(); - } - else if (this.awsS3SupplierProperties.getFilenameRegex() != null) { - predicate = (S3Object summary) -> this.awsS3SupplierProperties.getFilenameRegex() - .matcher(summary.key()).matches(); - } - predicate = predicate.and((S3Object summary) -> { - final String key = METADATA_STORE_PREFIX + awsS3SupplierProperties.getRemoteDir() + "-" + summary.key(); - final String lastModified = String.valueOf(summary.lastModified().toEpochMilli()); - final String storedLastModified = this.metadataStore.get(key); - boolean result = !lastModified.equals(storedLastModified); - if (result) { - metadataStore.put(key, lastModified); - } - return result; - }); - - return predicate; - } - - @Bean - ReactiveMessageSourceProducer s3ListingMessageProducer( - S3Client amazonS3, - ObjectMapper objectMapper, - AwsS3SupplierProperties awsS3SupplierProperties, - Predicate filter - ) { - return new ReactiveMessageSourceProducer( - (MessageSource>) () -> { - List summaryList = - amazonS3.listObjects(ListObjectsRequest.builder() - .bucket(awsS3SupplierProperties.getRemoteDir()) - .build()) - .contents() - .stream() - .filter(filter) - .map(s3Object -> { - try { - return objectMapper.writeValueAsString(s3Object.toBuilder()); - } - catch (JsonProcessingException ex) { - throw new RuntimeException(ex); - } - }) - .collect(Collectors.toList()); - return summaryList.isEmpty() ? null : new GenericMessage<>(summaryList); - }); - } - } -} diff --git a/functions/supplier/s3-supplier/src/main/java/org/springframework/cloud/fn/supplier/s3/AwsS3SupplierProperties.java b/functions/supplier/s3-supplier/src/main/java/org/springframework/cloud/fn/supplier/s3/AwsS3SupplierProperties.java deleted file mode 100644 index 86d3c098..00000000 --- a/functions/supplier/s3-supplier/src/main/java/org/springframework/cloud/fn/supplier/s3/AwsS3SupplierProperties.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.s3; - -import java.io.File; -import java.util.regex.Pattern; - -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import org.hibernate.validator.constraints.Length; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * @author Artem Bilan - */ -@ConfigurationProperties("s3.supplier") -@Validated -public class AwsS3SupplierProperties { - - /** - * AWS S3 bucket resource. - */ - private String remoteDir = "bucket"; - - /** - * Temporary file suffix. - */ - private String tmpFileSuffix = ".tmp"; - - /** - * Remote File separator. - */ - private String remoteFileSeparator = "/"; - - /** - * Delete or not remote files after processing. - */ - private boolean deleteRemoteFiles = false; - - /** - * The local directory to store files. - */ - private File localDir = new File(System.getProperty("java.io.tmpdir"), "s3-supplier"); - - /** - * Create or not the local directory. - */ - private boolean autoCreateLocalDir = true; - - /** - * The pattern to filter remote files. - */ - private String filenamePattern; - - /** - * The regexp to filter remote files. - */ - private Pattern filenameRegex; - - /** - * To transfer or not the timestamp of the remote file to the local one. - */ - private boolean preserveTimestamp = true; - - /** - * Set to true to return s3 object metadata without copying file to a local directory. - */ - private boolean listOnly = false; - - @Length(min = 3) - public String getRemoteDir() { - return this.remoteDir; - } - - public final void setRemoteDir(String remoteDir) { - this.remoteDir = remoteDir; - } - - @NotBlank - public String getTmpFileSuffix() { - return tmpFileSuffix; - } - - public void setTmpFileSuffix(String tmpFileSuffix) { - this.tmpFileSuffix = tmpFileSuffix; - } - - @NotBlank - public String getRemoteFileSeparator() { - return remoteFileSeparator; - } - - public void setRemoteFileSeparator(String remoteFileSeparator) { - this.remoteFileSeparator = remoteFileSeparator; - } - - public boolean isAutoCreateLocalDir() { - return autoCreateLocalDir; - } - - public void setAutoCreateLocalDir(boolean autoCreateLocalDir) { - this.autoCreateLocalDir = autoCreateLocalDir; - } - - public boolean isDeleteRemoteFiles() { - return deleteRemoteFiles; - } - - public void setDeleteRemoteFiles(boolean deleteRemoteFiles) { - this.deleteRemoteFiles = deleteRemoteFiles; - } - - @NotNull - public File getLocalDir() { - return localDir; - } - - public final void setLocalDir(File localDir) { - this.localDir = localDir; - } - - public String getFilenamePattern() { - return filenamePattern; - } - - public void setFilenamePattern(String filenamePattern) { - this.filenamePattern = filenamePattern; - } - - public Pattern getFilenameRegex() { - return filenameRegex; - } - - public void setFilenameRegex(Pattern filenameRegex) { - this.filenameRegex = filenameRegex; - } - - public boolean isPreserveTimestamp() { - return preserveTimestamp; - } - - public void setPreserveTimestamp(boolean preserveTimestamp) { - this.preserveTimestamp = preserveTimestamp; - } - - @AssertTrue(message = "filenamePattern and filenameRegex are mutually exclusive") - public boolean isExclusivePatterns() { - return !(this.filenamePattern != null && this.filenameRegex != null); - } - - public boolean isListOnly() { - return listOnly; - } - - public void setListOnly(boolean listOnly) { - this.listOnly = listOnly; - } -} diff --git a/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AbstractAwsS3SupplierMockTests.java b/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AbstractAwsS3SupplierMockTests.java deleted file mode 100644 index 23b2ba4c..00000000 --- a/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AbstractAwsS3SupplierMockTests.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.s3; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Path; -import java.time.Instant; -import java.time.Period; -import java.util.HashMap; -import java.util.Map; -import java.util.function.Supplier; - -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.io.TempDir; -import reactor.core.publisher.Flux; -import software.amazon.awssdk.core.ResponseInputStream; -import software.amazon.awssdk.services.s3.S3Client; -import software.amazon.awssdk.services.s3.model.GetObjectRequest; -import software.amazon.awssdk.services.s3.model.GetObjectResponse; -import software.amazon.awssdk.services.s3.model.ListObjectsRequest; -import software.amazon.awssdk.services.s3.model.ListObjectsResponse; -import software.amazon.awssdk.services.s3.model.S3Object; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Primary; -import org.springframework.integration.dsl.StandardIntegrationFlow; -import org.springframework.integration.test.context.SpringIntegrationTest; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.util.FileCopyUtils; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.BDDMockito.willAnswer; -import static org.mockito.Mockito.mock; - -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { - "spring.cloud.aws.credentials.accessKey=" + AbstractAwsS3SupplierMockTests.AWS_ACCESS_KEY, - "spring.cloud.aws.credentials.secretKey=" + AbstractAwsS3SupplierMockTests.AWS_SECRET_KEY, - "spring.cloud.aws.region.static=" + AbstractAwsS3SupplierMockTests.AWS_REGION, - "spring.cloud.aws.s3.endpoint=s3://foo", - "s3.supplier.remoteDir=" + AbstractAwsS3SupplierMockTests.S3_BUCKET - }) -@DirtiesContext -@SpringIntegrationTest(noAutoStartup = "*") -public abstract class AbstractAwsS3SupplierMockTests { - - @TempDir - protected static Path temporaryRemoteFolder; - - protected static final String AWS_ACCESS_KEY = "test.accessKey"; - - protected static final String AWS_SECRET_KEY = "test.secretKey"; - - protected static final String AWS_REGION = "us-gov-west-1"; - - protected static final String S3_BUCKET = "S3_BUCKET"; - - protected static Map S3_OBJECTS; - - @Autowired - Supplier>> s3Supplier; - - @Autowired - protected AwsS3SupplierProperties awsS3SupplierProperties; - - @Autowired - StandardIntegrationFlow standardIntegrationFlow; - - @BeforeAll - public static void setup() throws IOException { - final String remote = temporaryRemoteFolder.toAbsolutePath() + "/remote"; - File f = new File(remote); - f.mkdirs(); - File aFile = new File(f, "1.test"); - FileCopyUtils.copy("Hello".getBytes(), aFile); - File bFile = new File(f, "2.test"); - FileCopyUtils.copy("Bye".getBytes(), bFile); - File otherFile = new File(f, "otherFile"); - FileCopyUtils.copy("Other\nOther2".getBytes(), otherFile); - - S3_OBJECTS = new HashMap<>(); - - Instant instant = Instant.now().plus(Period.ofDays(1)); - - for (File file : f.listFiles()) { - S3Object s3Object = - S3Object.builder() - .key("subdir/" + file.getName()) - .lastModified(instant) - .build(); - - S3_OBJECTS.put(s3Object, new FileInputStream(file)); - } - - final String local = temporaryRemoteFolder.toAbsolutePath() + "/local"; - File f1 = new File(local); - f1.mkdirs(); - System.setProperty("s3.supplier.localDir", f1.getAbsolutePath()); - } - - @AfterAll - public static void tearDown() { - System.clearProperty("s3.supplier.localDir"); - S3_OBJECTS.values() - .forEach(stream -> { - try { - stream.close(); - } - catch (IOException e) { - // Ignore - } - }); - } - - @SpringBootApplication - public static class S3SupplierTestApplication { - - @Bean - @Primary - public S3Client amazonS3Mock() { - S3Client amazonS3 = mock(S3Client.class); - - ListObjectsResponse listObjectsResponse = - ListObjectsResponse.builder().contents(S3_OBJECTS.keySet()).isTruncated(false).build(); - - willAnswer(invocation -> listObjectsResponse) - .given(amazonS3) - .listObjects(any(ListObjectsRequest.class)); - - for (Map.Entry s3Object : S3_OBJECTS.entrySet()) { - willAnswer(invocation -> - new ResponseInputStream<>(GetObjectResponse.builder().build(), s3Object.getValue())) - .given(amazonS3) - .getObject(GetObjectRequest.builder() - .bucket(S3_BUCKET) - .key(s3Object.getKey().key()) - .build()); - } - return amazonS3; - } - - } - -} diff --git a/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3FilesTransferredTests.java b/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3FilesTransferredTests.java deleted file mode 100644 index f5e4b197..00000000 --- a/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3FilesTransferredTests.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.s3; - -import java.io.File; -import java.time.Duration; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = {"file.consumer.mode=ref", - "s3.supplier.filenameRegex=.*\\\\.test$"}) -public class AmazonS3FilesTransferredTests extends AbstractAwsS3SupplierMockTests { - - @Test - public void test() { - final Flux> messageFlux = s3Supplier.get(); - StepVerifier stepVerifier = - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(new File(message.getPayload().toString().replaceAll("\"", ""))) - .isEqualTo(new File(this.awsS3SupplierProperties.getLocalDir() + File.separator + "subdir" + File.separator + "1.test")); - } - ) - .assertNext((message) -> { - assertThat(new File(message.getPayload().toString().replaceAll("\"", ""))) - .isEqualTo(new File(this.awsS3SupplierProperties.getLocalDir() + File.separator + "subdir" + File.separator + "2.test")); - }) - .thenCancel() - .verifyLater(); - standardIntegrationFlow.start(); - stepVerifier.verify(Duration.ofSeconds(10)); - } - -} diff --git a/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3LinesTransferredTests.java b/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3LinesTransferredTests.java deleted file mode 100644 index 8f2713d3..00000000 --- a/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3LinesTransferredTests.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2016-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.s3; - -import java.io.File; -import java.time.Duration; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.integration.file.FileHeaders; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { - "file.consumer.mode=lines", - "s3.supplier.filenamePattern=*/otherFile", - "file.consumer.with-markers=false"}) -public class AmazonS3LinesTransferredTests extends AbstractAwsS3SupplierMockTests { - - @Test - public void test() { - final Flux> messageFlux = s3Supplier.get(); - StepVerifier stepVerifier = - StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(message.getPayload()).isEqualTo("Other"); - assertThat(message.getHeaders()).containsKey(FileHeaders.ORIGINAL_FILE); - assertThat(message.getHeaders()).containsValue( - new File(this.awsS3SupplierProperties.getLocalDir(), "subdir/otherFile")); - } - ) - .assertNext((message) -> { - assertThat(message.getPayload().toString()).isEqualTo("Other2"); - }) - .thenCancel() - .verifyLater(); - standardIntegrationFlow.start(); - stepVerifier.verify(Duration.ofSeconds(10)); - - assertThat(this.awsS3SupplierProperties.getLocalDir().list()).hasSize(1); - } -} diff --git a/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3ListOnlyTests.java b/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3ListOnlyTests.java deleted file mode 100644 index bb8d324c..00000000 --- a/functions/supplier/s3-supplier/src/test/java/org/springframework/cloud/fn/supplier/s3/AmazonS3ListOnlyTests.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2020-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.s3; - -import java.io.IOException; -import java.io.UncheckedIOException; -import java.time.Duration; -import java.util.HashSet; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.integration.json.JsonPathUtils; -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { - "s3.supplier.list-only=true" -}) -public class AmazonS3ListOnlyTests extends AbstractAwsS3SupplierMockTests { - - @Test - public void test() { - final Flux> messageFlux = s3Supplier.get(); - final HashSet keys = new HashSet<>(); - keys.add("subdir/1.test"); - keys.add("subdir/2.test"); - keys.add("subdir/otherFile"); - StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext(message -> { - String s3Object = (String) message.getPayload(); - String key = jsonPathKey(s3Object); - assertThat(keys).contains(key); - keys.remove(key); - }) - .assertNext(message -> { - String s3Object = (String) message.getPayload(); - String key = jsonPathKey(s3Object); - assertThat(keys).contains(key); - keys.remove(key); - }) - .assertNext(message -> { - String s3Object = (String) message.getPayload(); - String key = jsonPathKey(s3Object); - assertThat(keys).contains(key); - keys.remove(key); - }) - .thenCancel() - .verifyLater(); - standardIntegrationFlow.start(); - stepVerifier.verify(Duration.ofSeconds(10)); - } - - private static String jsonPathKey(String s3Object) { - try { - return JsonPathUtils.evaluate(s3Object, "$.key"); - } - catch (IOException ex) { - throw new UncheckedIOException(ex); - } - } - -} diff --git a/functions/supplier/sftp-supplier/README.adoc b/functions/supplier/sftp-supplier/README.adoc deleted file mode 100644 index b1748b1b..00000000 --- a/functions/supplier/sftp-supplier/README.adoc +++ /dev/null @@ -1,87 +0,0 @@ -# SFTP Supplier - -This module provides a SFTP supplier that can be reused and composed in other applications. -The `Supplier` uses various `Sftp` inbound adapters from Spring Integration to support a range of modes to consume data from an SFTP server. -These include: - -* Synchronize remote files to a local directory and supplying the File contents, the File reference, or a message per line. -* Stream remote file contents as a byte array directly without copying to a local directory. -* List the remote file names only. - -Messages emitted by the supplier are provided as a byte array by default. However, this can be customized using the `mode` option: - -- *ref* Provides a `java.io.File` reference -- *lines* Will split files line-by-line and emit a new message for each line -- *contents* The default. Provides the contents of a file as a byte array - -NOTE: The `ref` mode (`file.consumer.mode=ref`) is not compatible when streaming results (`sftp.stream=true`). - -NOTE: When using the `lines` mode, you can provide an additional `withMarker` option (via the `file.consumer.with-marker` property). -If set to `true`, the underlying `FileSplitter` will emit additional _start-of-file_ and _end-of-file_ marker messages before and after the actual data. -The payload of these 2 additional marker messages is of type `FileSplitter.FileMarker`. -When not explicitly set, the option defaults to `false`. - -When configuring the `sftp.factory.known-hosts-expression` option, the root object of the evaluation is the application context, an example might be `sftp.factory.known-hosts-expression = @systemProperties['user.home'] + '/.ssh/known_hosts'`. - -## Idempotency - -By default the supplier uses a https://docs.spring.io/spring-integration/api/org/springframework/integration/metadata/SimpleMetadataStore.html[SimpleMetadataStore], storing the last modified time to track files that have already been processed in memory. -If an application using this supplier is restarted, any existing files will be reprocessed. You can inject on of the persistent https://docs.spring.io/spring-integration/reference/html/meta-data-store.html[MetadataStore implementations] provided by Spring Integration, or your own of course, to maintain this state permanently. -See also link:../../common/metadata-store-common/README.adoc[`MetadataStore`] options for possible shared persistent store configuration for the `SftpPersistentAcceptOnceFileListFilter` used in the SFTP Source. - - -## Multiple SFTP Servers -This source supports consuming from multiple SFTP servers. -This requires configuring an SFTP Session Factory for each server. -The labels `one` and `two` shown below can be replaced by any names you want. -The following configuration will rotate between two SFTP servers (this can also be used for multiple directories on the same server), consuming files in a round-robin fashion: - -``` -sftp.supplier.factories.one.host=host1 -sftp.supplier.factories.one.port=1234, -sftp.supplier.factories.one.username = user1, -sftp.supplier.factories.one.password = pass1, -... -sftp.supplier.factories.two.host=host2, -sftp.supplier.factories.two.port=2345, -sftp.supplier.factories.two.username = user2, -sftp.supplier.factories.two.password = pass2, -sftp.supplier.directories=one.sftpSource,two.sftpSecondSource, -sftp.supplier.max-fetch=1, -sftp.supplier.fair=true -``` ---- - - - -`SFtpSupplier` is implemented as a `java.util.function.Supplier`. -This supplier gives you a reactive stream of objects from the provided directory(ies) as the supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and receive the data. - -## Beans for injection - -You can import the `SftpSupplierConfiguration` in the application and then inject the following bean. - -`sftpSupplier` - -You need to inject this as `Supplier>>`. - -You can use `sftpSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `sftp.supplier`. -There are also properties that need to be used with the prefix `file.consumer`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierProperties.java[SftpSupplierProperties]. -Also see link:src/main/java/org/springframework/cloud/fn/supplier/file/FileConsumerProperties.java[FileConsumerProperties]. - -## Examples - -See this link:src/test/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierApplicationTests.java[test suite] for the various ways, this supplier is used. - -## Other usage - -See this link:../../../applications/source/sftp-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application that provides an Sftp Source. diff --git a/functions/supplier/sftp-supplier/pom.xml b/functions/supplier/sftp-supplier/pom.xml deleted file mode 100644 index 8bfe5b7d..00000000 --- a/functions/supplier/sftp-supplier/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierConfiguration.java b/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierConfiguration.java deleted file mode 100644 index 9ff6450a..00000000 --- a/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierConfiguration.java +++ /dev/null @@ -1,458 +0,0 @@ -/* - * Copyright 2018-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.sftp; - -import java.io.IOException; -import java.util.List; -import java.util.function.Predicate; -import java.util.function.Supplier; -import java.util.regex.Pattern; -import java.util.stream.Stream; - -import org.apache.sshd.sftp.client.SftpClient; -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; -import reactor.core.publisher.MonoProcessor; -import reactor.util.context.Context; - -import org.springframework.aop.framework.ProxyFactoryBean; -import org.springframework.aop.support.NameMatchMethodPointcutAdvisor; -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.file.FileConsumerProperties; -import org.springframework.cloud.fn.common.file.FileUtils; -import org.springframework.cloud.fn.common.file.remote.RemoteFileDeletingAdvice; -import org.springframework.cloud.fn.common.file.remote.RemoteFileRenamingAdvice; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; -import org.springframework.http.MediaType; -import org.springframework.integration.aop.ReceiveMessageAdvice; -import org.springframework.integration.channel.QueueChannel; -import org.springframework.integration.core.GenericSelector; -import org.springframework.integration.core.MessageSource; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlowBuilder; -import org.springframework.integration.endpoint.MessageProducerSupport; -import org.springframework.integration.file.FileHeaders; -import org.springframework.integration.file.filters.ChainFileListFilter; -import org.springframework.integration.file.filters.FileListFilter; -import org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway; -import org.springframework.integration.file.remote.session.SessionFactory; -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.SftpOutboundGatewaySpec; -import org.springframework.integration.sftp.filters.SftpPersistentAcceptOnceFileListFilter; -import org.springframework.integration.sftp.filters.SftpRegexPatternFileListFilter; -import org.springframework.integration.sftp.filters.SftpSimplePatternFileListFilter; -import org.springframework.integration.sftp.session.SftpRemoteFileTemplate; -import org.springframework.integration.util.IntegrationReactiveUtils; -import org.springframework.lang.Nullable; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageChannel; -import org.springframework.messaging.MessageHandler; -import org.springframework.messaging.MessageHeaders; -import org.springframework.messaging.MessagingException; -import org.springframework.messaging.PollableChannel; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Chris Schaefer - * @author Christian Tzolov - * @author David Turanski - * @author Corneil du Plessis - */ - -@Configuration -@EnableConfigurationProperties({ SftpSupplierProperties.class, FileConsumerProperties.class }) -@Import({ SftpSupplierFactoryConfiguration.class }) -public class SftpSupplierConfiguration { - - private static final String METADATA_STORE_PREFIX = "sftpSource/"; - - private static final String FILE_MODIFIED_TIME_HEADER = "FILE_MODIFIED_TIME"; - - @Bean - public MonoProcessor subscriptionBarrier() { - return MonoProcessor.create(); - } - - @Bean - public Supplier>> sftpSupplier(MessageSource sftpMessageSource, - @Nullable Publisher> sftpReadingFlow, - MonoProcessor subscriptionBarrier, - SftpSupplierProperties sftpSupplierProperties) { - - Flux> flux = sftpReadingFlow == null - ? sftpMessageFlux(sftpMessageSource, sftpSupplierProperties, subscriptionBarrier) - : Flux.from(sftpReadingFlow); - - return () -> flux.doOnRequest(l -> subscriptionBarrier.onNext(true)); - } - - @Bean - @Primary - public MessageSource sftpMessageSource( - MessageSource messageSource, - BeanFactory beanFactory, - @Nullable List receiveMessageAdvice) { - - if (CollectionUtils.isEmpty(receiveMessageAdvice)) { - return messageSource; - } - - ProxyFactoryBean proxyFactoryBean = new ProxyFactoryBean(); - proxyFactoryBean.setTarget(messageSource); - proxyFactoryBean.setBeanFactory(beanFactory); - receiveMessageAdvice.stream().map(advice -> { - NameMatchMethodPointcutAdvisor advisor = new NameMatchMethodPointcutAdvisor(advice); - advisor.addMethodName("receive"); - return advisor; - }).forEach(proxyFactoryBean::addAdvisor); - - return (MessageSource) proxyFactoryBean.getObject(); - } - - /* - * Configure the standard filters for SFTP inbound adapters. - */ - @Bean - public FileListFilter chainFilter( - SftpSupplierProperties sftpSupplierProperties, - ConcurrentMetadataStore metadataStore - ) { - - ChainFileListFilter chainFilter = new ChainFileListFilter<>(); - - if (StringUtils.hasText(sftpSupplierProperties.getFilenamePattern())) { - chainFilter.addFilter(new SftpSimplePatternFileListFilter(sftpSupplierProperties.getFilenamePattern())); - } - else if (sftpSupplierProperties.getFilenameRegex() != null) { - chainFilter.addFilter(new SftpRegexPatternFileListFilter(sftpSupplierProperties.getFilenameRegex())); - } - - chainFilter.addFilter(new SftpPersistentAcceptOnceFileListFilter(metadataStore, METADATA_STORE_PREFIX)); - return chainFilter; - } - - /* - * Create a Flux from a MessageSource that will be used by the supplier. - */ - private Flux> sftpMessageFlux(MessageSource sftpMessageSource, - SftpSupplierProperties sftpSupplierProperties, MonoProcessor subscriptionBarrier) { - - return IntegrationReactiveUtils.messageSourceToFlux(sftpMessageSource) - .delaySubscription(subscriptionBarrier) - .contextWrite(Context.of(IntegrationReactiveUtils.DELAY_WHEN_EMPTY_KEY, - sftpSupplierProperties.getDelayWhenEmpty())); - - } - - private static String remoteDirectory(SftpSupplierProperties sftpSupplierProperties) { - return sftpSupplierProperties.isMultiSource() - ? SftpSupplierProperties.keyDirectories(sftpSupplierProperties).get(0).getDirectory() - : sftpSupplierProperties.getRemoteDir(); - } - - @Configuration - @ConditionalOnProperty(prefix = "sftp.supplier", name = "stream") - static class StreamingConfiguration { - - @Bean - public SftpRemoteFileTemplate sftpTemplate(SftpSupplierFactoryConfiguration.DelegatingFactoryWrapper wrapper) { - return new SftpRemoteFileTemplate(wrapper.getFactory()); - } - - /** - * Streaming {@link MessageSource} that provides an InputStream for each remote file. It - * does not synchronize files to a local directory. - * @return a {@link MessageSource}. - */ - @Bean - public MessageSource targetMessageSource(SftpRemoteFileTemplate sftpTemplate, - SftpSupplierProperties sftpSupplierProperties, - FileListFilter fileListFilter) { - - return Sftp.inboundStreamingAdapter(sftpTemplate) - .remoteDirectory(remoteDirectory(sftpSupplierProperties)) - .remoteFileSeparator(sftpSupplierProperties.getRemoteFileSeparator()) - .filter(fileListFilter) - .maxFetchSize(sftpSupplierProperties.getMaxFetch()).get(); - } - - @Bean - public Publisher> sftpReadingFlow( - MessageSource sftpMessageSource, - MonoProcessor subscriptionBarrier, - SftpSupplierProperties sftpSupplierProperties, - FileConsumerProperties fileConsumerProperties) { - - return FileUtils.enhanceStreamFlowForReadingMode(IntegrationFlow - .from(IntegrationReactiveUtils.messageSourceToFlux(sftpMessageSource) - .delaySubscription(subscriptionBarrier) - .contextWrite(Context.of(IntegrationReactiveUtils.DELAY_WHEN_EMPTY_KEY, - sftpSupplierProperties.getDelayWhenEmpty()))), - fileConsumerProperties) - .toReactivePublisher(); - } - - @Bean - @ConditionalOnProperty(prefix = "sftp.supplier", value = "delete-remote-files") - public RemoteFileDeletingAdvice remoteFileDeletingAdvice(SftpRemoteFileTemplate sftpTemplate, - SftpSupplierProperties sftpSupplierProperties) { - - return new RemoteFileDeletingAdvice(sftpTemplate, sftpSupplierProperties.getRemoteFileSeparator()); - } - - @Bean - @ConditionalOnProperty(prefix = "sftp.supplier", value = "rename-remote-files-to") - public RemoteFileRenamingAdvice remoteFileRenamingAdvice(SftpRemoteFileTemplate sftpTemplate, - SftpSupplierProperties sftpSupplierProperties) { - - return new RemoteFileRenamingAdvice(sftpTemplate, sftpSupplierProperties.getRemoteFileSeparator(), - sftpSupplierProperties.getRenameRemoteFilesTo()); - } - } - - @Configuration - @ConditionalOnExpression("environment['sftp.supplier.stream']!='true'") - static class NonStreamingConfiguration { - - /** - * Enrich the flow to provide some standard headers, depending on - * {@link FileConsumerProperties}, when consuming file contents. - * @param sftpMessageSource the {@link MessageSource}. - * @param fileConsumerProperties the {@code FileConsumerProperties}. - * @return a {@code Publisher}. - */ - @Bean - @ConditionalOnExpression("environment['file.consumer.mode']!='ref' && environment['sftp.supplier.list-only']!='true'") - public Publisher> sftpReadingFlow( - MessageSource sftpMessageSource, - MonoProcessor subscriptionBarrier, - SftpSupplierProperties sftpSupplierProperties, - FileConsumerProperties fileConsumerProperties, - @Nullable @Qualifier("renameRemoteFileHandler") MessageHandler renameRemoteFileHandler) { - - IntegrationFlowBuilder flowBuilder = FileUtils.enhanceFlowForReadingMode(IntegrationFlow - .from(IntegrationReactiveUtils.messageSourceToFlux(sftpMessageSource) - .delaySubscription(subscriptionBarrier) - .contextWrite(Context.of(IntegrationReactiveUtils.DELAY_WHEN_EMPTY_KEY, - sftpSupplierProperties.getDelayWhenEmpty()))), - fileConsumerProperties); - - if (renameRemoteFileHandler != null) { - flowBuilder.publishSubscribeChannel(pubsub -> - pubsub.subscribe(subFlow -> subFlow.handle(renameRemoteFileHandler).nullChannel()) - ); - } - - return flowBuilder.toReactivePublisher(); - } - - /** - * A {@link MessageSource} that synchronizes files to a local directory. - * @return the {code MessageSource}. - */ - @ConditionalOnExpression("environment['sftp.supplier.list-only'] != 'true'") - @Bean - public SftpInboundChannelAdapterSpec targetMessageSource(SftpSupplierProperties sftpSupplierProperties, - SftpSupplierFactoryConfiguration.DelegatingFactoryWrapper delegatingFactoryWrapper, - FileListFilter fileListFilter) { - - return Sftp - .inboundAdapter(delegatingFactoryWrapper.getFactory()) - .preserveTimestamp(sftpSupplierProperties.isPreserveTimestamp()) - .autoCreateLocalDirectory(sftpSupplierProperties.isAutoCreateLocalDir()) - .deleteRemoteFiles(sftpSupplierProperties.isDeleteRemoteFiles()) - .localDirectory(sftpSupplierProperties.getLocalDir()) - .remoteDirectory(remoteDirectory(sftpSupplierProperties)) - .remoteFileSeparator(sftpSupplierProperties.getRemoteFileSeparator()) - .temporaryFileSuffix(sftpSupplierProperties.getTmpFileSuffix()) - .metadataStorePrefix(METADATA_STORE_PREFIX) - .maxFetchSize(sftpSupplierProperties.getMaxFetch()) - .filter(fileListFilter); - } - - @Bean - @ConditionalOnProperty(prefix = "sftp.supplier", value = "rename-remote-files-to") - public SftpOutboundGatewaySpec renameRemoteFileHandler( - SftpSupplierFactoryConfiguration.DelegatingFactoryWrapper delegatingFactoryWrapper, - SftpSupplierProperties sftpSupplierProperties) { - - return Sftp.outboundGateway(delegatingFactoryWrapper.getFactory(), - AbstractRemoteFileOutboundGateway.Command.MV.getCommand(), - String.format("headers.get('%s') + '%s' + headers.get('%s')", - FileHeaders.REMOTE_DIRECTORY, - sftpSupplierProperties.getRemoteFileSeparator(), - FileHeaders.REMOTE_FILE)) - .renameExpression(sftpSupplierProperties.getRenameRemoteFilesTo()); - } - } - - /* - * List only configuration - */ - @Configuration - @ConditionalOnProperty(prefix = "sftp.supplier", name = "list-only") - static class ListingOnlyConfiguration { - - @Bean - PollableChannel listingChannel() { - return new QueueChannel(); - } - - @Bean - @SuppressWarnings("unchecked") - public MessageSource targetMessageSource(PollableChannel listingChannel, - SftpListingMessageProducer sftpListingMessageProducer) { - return () -> { - sftpListingMessageProducer.listNames(); - return (Message) listingChannel.receive(); - }; - - } - - @Bean - public SftpListingMessageProducer sftpListingMessageProducer(SftpSupplierProperties sftpSupplierProperties, - SftpSupplierFactoryConfiguration.DelegatingFactoryWrapper delegatingFactoryWrapper) { - - return new SftpListingMessageProducer(delegatingFactoryWrapper.getFactory(), - remoteDirectory(sftpSupplierProperties), - sftpSupplierProperties.getRemoteFileSeparator(), - sftpSupplierProperties.getSortBy() - ); - } - - @Bean - GenericSelector listOnlyFilter(SftpSupplierProperties sftpSupplierProperties) { - Predicate predicate = s -> true; - if (StringUtils.hasText(sftpSupplierProperties.getFilenamePattern())) { - predicate = Pattern.compile(sftpSupplierProperties.getFilenamePattern()).asPredicate(); - } - else if (sftpSupplierProperties.getFilenameRegex() != null) { - predicate = sftpSupplierProperties.getFilenameRegex().asPredicate(); - } - - return predicate::test; - } - - @Bean - public IntegrationFlow listingFlow(MessageProducerSupport listingMessageProducer, - MessageChannel listingChannel, MessageProcessor lsEntryToStringTransformer, - GenericSelector> duplicateFilter, - GenericSelector listOnlyFilter) { - - return IntegrationFlow.from(listingMessageProducer) - .split() - .transform(lsEntryToStringTransformer) - .filter(duplicateFilter) - .filter(listOnlyFilter) - .channel(listingChannel) - .get(); - } - - @Bean - public MessageProcessor> lsEntryToStringTransformer() { - return (Message message) -> { - - SftpClient.DirEntry dirEntry = (SftpClient.DirEntry) message.getPayload(); - - String fileName = message.getHeaders().get(FileHeaders.REMOTE_DIRECTORY) + dirEntry.getFilename(); - - return MessageBuilder.withPayload(fileName) - .copyHeaders(message.getHeaders()) - .setHeader(FILE_MODIFIED_TIME_HEADER, String.valueOf(dirEntry.getAttributes().getModifyTime())) - .setHeader(MessageHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN) - .build(); - }; - - } - - @Bean - GenericSelector> duplicateFilter(ConcurrentMetadataStore metadataStore) { - return new GenericSelector>() { - @Override - public boolean accept(Message message) { - - String lastModifiedTime = (String) message.getHeaders().get(FILE_MODIFIED_TIME_HEADER); - String storedLastModifiedTime = metadataStore.get(METADATA_STORE_PREFIX + message.getPayload()); - - boolean result = !lastModifiedTime.equals(storedLastModifiedTime); - - if (result) { - metadataStore.put( - METADATA_STORE_PREFIX + message.getPayload(), - message.getHeaders().get(FILE_MODIFIED_TIME_HEADER).toString()); - } - return result; - } - }; - } - - static class SftpListingMessageProducer extends MessageProducerSupport { - - private final String remoteDirectory; - - private final SessionFactory sessionFactory; - - private final String remoteFileSeparator; - - private final SftpSupplierProperties.SortSpec sort; - - SftpListingMessageProducer(SessionFactory sessionFactory, String remoteDirectory, - String remoteFileSeparator, SftpSupplierProperties.SortSpec sort) { - - this.sessionFactory = sessionFactory; - this.remoteDirectory = remoteDirectory; - this.remoteFileSeparator = remoteFileSeparator; - this.sort = sort; - } - - public void listNames() { - Stream stream; - try { - stream = Stream.of(this.sessionFactory.getSession().list(this.remoteDirectory)) - .filter(x -> !(x.getAttributes().isDirectory() || x.getAttributes().isSymbolicLink())); - - if (sort != null) { - stream = stream.sorted(sort.comparator()); - } - } - catch (IOException e) { - throw new MessagingException(e.getMessage(), e); - } - sendMessage(MessageBuilder.withPayload(stream) - .setHeader(FileHeaders.REMOTE_DIRECTORY, this.remoteDirectory + this.remoteFileSeparator) - .build()); - } - - } - - } - -} diff --git a/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierFactoryConfiguration.java b/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierFactoryConfiguration.java deleted file mode 100644 index 012bee25..00000000 --- a/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierFactoryConfiguration.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2018-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.sftp; - -import java.util.HashMap; -import java.util.Map; - -import org.apache.sshd.sftp.client.SftpClient; - -import org.springframework.beans.factory.DisposableBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.core.io.Resource; -import org.springframework.integration.context.IntegrationContextUtils; -import org.springframework.integration.file.remote.aop.StandardRotationPolicy; -import org.springframework.integration.file.remote.session.CachingSessionFactory; -import org.springframework.integration.file.remote.session.DelegatingSessionFactory; -import org.springframework.integration.file.remote.session.SessionFactory; -import org.springframework.integration.sftp.session.DefaultSftpSessionFactory; -import org.springframework.lang.Nullable; - -/** - * Session factory configuration. - * - * @author Gary Russell - * @author Artem Bilan - * @author David Turanski - * @author Corneil du Plessis - * - */ -public class SftpSupplierFactoryConfiguration { - - @Bean - @ConditionalOnMissingBean - public SessionFactory sftpSessionFactory(SftpSupplierProperties properties, - ApplicationContext applicationContext) { - - return buildFactory(applicationContext, properties.getFactory()); - } - - @Bean - public DelegatingFactoryWrapper delegatingFactoryWrapper(SftpSupplierProperties properties, - SessionFactory defaultFactory, ApplicationContext applicationContext) { - - return new DelegatingFactoryWrapper(properties, defaultFactory, applicationContext); - } - - @Bean - StandardRotationPolicy rotationPolicy(SftpSupplierProperties properties, DelegatingFactoryWrapper factory) { - - return properties.isMultiSource() - ? new StandardRotationPolicy(factory.getFactory(), - SftpSupplierProperties.keyDirectories(properties), properties.isFair()) - : null; - } - - @Bean - public SftpSupplierRotator rotatingAdvice(SftpSupplierProperties properties, - @Nullable StandardRotationPolicy rotationPolicy) { - return properties.isMultiSource() - ? new SftpSupplierRotator(properties, rotationPolicy) - : null; - } - - static SessionFactory buildFactory(ApplicationContext applicationContext, - SftpSupplierProperties.Factory factory) { - - DefaultSftpSessionFactory sftpSessionFactory = new DefaultSftpSessionFactory(); - sftpSessionFactory.setHost(factory.getHost()); - sftpSessionFactory.setPort(factory.getPort()); - sftpSessionFactory.setUser(factory.getUsername()); - sftpSessionFactory.setPassword(factory.getPassword()); - sftpSessionFactory.setPrivateKey(factory.getPrivateKey()); - sftpSessionFactory.setPrivateKeyPassphrase(factory.getPassPhrase()); - sftpSessionFactory.setAllowUnknownKeys(factory.isAllowUnknownKeys()); - if (factory.getKnownHostsExpression() != null) { - String knownHostsLocation = factory.getKnownHostsExpression() - .getValue(IntegrationContextUtils.getEvaluationContext(applicationContext), String.class); - Resource knownHostsResource = applicationContext.getResource(knownHostsLocation); - sftpSessionFactory.setKnownHostsResource(knownHostsResource); - } - - return new CachingSessionFactory<>(sftpSessionFactory); - } - - public final static class DelegatingFactoryWrapper implements DisposableBean { - - private final DelegatingSessionFactory delegatingSessionFactory; - - private final Map> factories = new HashMap<>(); - - DelegatingFactoryWrapper(SftpSupplierProperties properties, SessionFactory defaultFactory, - ApplicationContext applicationContext) { - - properties.getFactories().forEach((key, factory) -> - this.factories.put(key, SftpSupplierFactoryConfiguration.buildFactory(applicationContext, factory))); - this.delegatingSessionFactory = new DelegatingSessionFactory<>(this.factories, defaultFactory); - } - - public DelegatingSessionFactory getFactory() { - return this.delegatingSessionFactory; - } - - @Override - public void destroy() { - this.factories.values().forEach(f -> { - if (f instanceof DisposableBean) { - try { - ((DisposableBean) f).destroy(); - } - catch (Exception e) { - // empty - } - } - }); - } - - } - -} diff --git a/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierProperties.java b/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierProperties.java deleted file mode 100644 index f81f4904..00000000 --- a/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierProperties.java +++ /dev/null @@ -1,517 +0,0 @@ -/* - * Copyright 2018-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.sftp; - -import java.io.File; -import java.time.Duration; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Map; -import java.util.regex.Pattern; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import org.apache.sshd.sftp.client.SftpClient; -import org.hibernate.validator.constraints.Range; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.core.io.Resource; -import org.springframework.expression.Expression; -import org.springframework.integration.file.remote.aop.RotationPolicy; -import org.springframework.util.Assert; -import org.springframework.validation.annotation.Validated; - -/** - * @author Gary Russell - * @author Artem Bilan - * @author Chris Schaefer - * @author David Turanski - * @author Corneil du Plessis - */ -@ConfigurationProperties("sftp.supplier") -@Validated -public class SftpSupplierProperties { - /** - * Session factory properties. - */ - private final Factory factory = new Factory(); - - /** - * The remote FTP directory. - */ - private String remoteDir = "/"; - - /** - * The suffix to use while the transfer is in progress. - */ - private String tmpFileSuffix = ".tmp"; - - /** - * The remote file separator. - */ - private String remoteFileSeparator = "/"; - - /** - * Set to true to delete remote files after successful transfer. - */ - private boolean deleteRemoteFiles = false; - - /** - * A SpEL expression resolving to the new name remote files must be renamed to after successful transfer. - */ - private Expression renameRemoteFilesTo = null; - - /** - * The local directory to use for file transfers. - */ - private File localDir = new File(System.getProperty("java.io.tmpdir"), "sftp-supplier"); - - /** - * Set to true to create the local directory if it does not exist. - */ - private boolean autoCreateLocalDir = true; - - /** - * A filter pattern to match the names of files to transfer. - */ - private String filenamePattern; - - /** - * A filter regex pattern to match the names of files to transfer. - */ - private Pattern filenameRegex; - - /** - * Set to true to preserve the original timestamp. - */ - private boolean preserveTimestamp = true; - - /** - * Set to true to stream the file rather than copy to a local directory. - */ - private boolean stream = false; - - /** - * Set to true to return file metadata without the entire payload. - */ - private boolean listOnly = false; - - /** - * Duration of delay when no new files are detected. - */ - private Duration delayWhenEmpty = Duration.ofSeconds(1); - - /** - * The maximum number of remote files to fetch per poll; default unlimited. Does not apply - * when listing files or building task launch requests. - */ - private int maxFetch = Integer.MIN_VALUE; - - /** - * True for fair rotation of multiple servers/directories. This is false by default so if - * a source has more than one entry, these will be received before the other sources are - * visited. - */ - private boolean fair; - - /** - * A map of factory names to factories. - */ - private Map factories = Collections.emptyMap(); - - /** - * A list of factory "name.directory" pairs. - */ - private String[] directories; - - /** - * Sorting specification for remote files listings. If null, order of entries is undefined. - * Otherwise, entries are sorted by the specified field and direction, according to the type canonical ordering. - */ - private SortSpec sortBy; - - @NotBlank - public String getRemoteDir() { - return remoteDir; - } - - public void setRemoteDir(String remoteDir) { - this.remoteDir = remoteDir; - } - - @NotBlank - public String getTmpFileSuffix() { - return tmpFileSuffix; - } - - public void setTmpFileSuffix(String tmpFileSuffix) { - this.tmpFileSuffix = tmpFileSuffix; - } - - @NotBlank - public String getRemoteFileSeparator() { - return remoteFileSeparator; - } - - public void setRemoteFileSeparator(String remoteFileSeparator) { - this.remoteFileSeparator = remoteFileSeparator; - } - - public boolean isAutoCreateLocalDir() { - return autoCreateLocalDir; - } - - public void setAutoCreateLocalDir(boolean autoCreateLocalDir) { - this.autoCreateLocalDir = autoCreateLocalDir; - } - - public boolean isDeleteRemoteFiles() { - return deleteRemoteFiles; - } - - public void setDeleteRemoteFiles(boolean deleteRemoteFiles) { - this.deleteRemoteFiles = deleteRemoteFiles; - } - - public Expression getRenameRemoteFilesTo() { - return renameRemoteFilesTo; - } - - public void setRenameRemoteFilesTo(Expression renameRemoteFilesTo) { - this.renameRemoteFilesTo = renameRemoteFilesTo; - } - - @NotNull - public File getLocalDir() { - return localDir; - } - - public final void setLocalDir(File localDir) { - this.localDir = localDir; - } - - public String getFilenamePattern() { - return filenamePattern; - } - - public void setFilenamePattern(String filenamePattern) { - this.filenamePattern = filenamePattern; - } - - public Pattern getFilenameRegex() { - return filenameRegex; - } - - public void setFilenameRegex(Pattern filenameRegex) { - this.filenameRegex = filenameRegex; - } - - public boolean isPreserveTimestamp() { - return preserveTimestamp; - } - - public void setPreserveTimestamp(boolean preserveTimestamp) { - this.preserveTimestamp = preserveTimestamp; - } - - @AssertTrue(message = "filenamePattern and filenameRegex are mutually exclusive") - public boolean isExclusivePatterns() { - return !(this.filenamePattern != null && this.filenameRegex != null); - } - - public boolean isListOnly() { - return listOnly; - } - - public void setListOnly(boolean listOnly) { - this.listOnly = listOnly; - } - - public boolean isMultiSource() { - return this.directories != null && this.directories.length > 0; - } - - public int getMaxFetch() { - return maxFetch; - } - - public void setMaxFetch(int maxFetch) { - this.maxFetch = maxFetch; - } - - public boolean isFair() { - return this.fair; - } - - public void setFair(boolean fair) { - this.fair = fair; - } - - public Map getFactories() { - return this.factories; - } - - public void setFactories(Map factories) { - this.factories = factories; - } - - public String[] getDirectories() { - return this.directories; - } - - public void setDirectories(String[] directories) { - this.directories = directories; - } - - public boolean isStream() { - return stream; - } - - public void setStream(boolean stream) { - this.stream = stream; - } - - public Factory getFactory() { - return factory; - } - - public Duration getDelayWhenEmpty() { - return delayWhenEmpty; - } - - public void setDelayWhenEmpty(Duration delayWhenEmpty) { - this.delayWhenEmpty = delayWhenEmpty; - } - - static List keyDirectories(SftpSupplierProperties properties) { - List keyDirs = new ArrayList<>(); - Assert.isTrue(properties.getDirectories().length > 0, "At least one key.directory required"); - for (String keyDir : properties.getDirectories()) { - String[] split = keyDir.split("\\."); - Assert.isTrue(split.length == 2, () -> "key/directory can only have one '.': " + keyDir); - keyDirs.add(new RotationPolicy.KeyDirectory(split[0], split[1])); - } - return keyDirs; - } - - @Valid - public SftpSupplierProperties.SortSpec getSortBy() { - return sortBy; - } - - public void setSortBy(SortSpec sortBy) { - this.sortBy = sortBy; - } - - @AssertTrue(message = "deleteRemoteFiles must be 'false' when renameRemoteFilesTo is set") - public boolean isRenameRemoteFilesValid() { - return renameRemoteFilesTo == null || !deleteRemoteFiles; - } - - public static class Factory { - - /** - * The host name of the server. - */ - private String host = "localhost"; - - /** - * The username to use to connect to the server. - */ - - private String username; - - /** - * The password to use to connect to the server. - */ - private String password; - - /** - * The port of the server. - */ - private int port = 22; - - /** - * Resource location of user's private key. - */ - private Resource privateKey; - - /** - * Passphrase for user's private key. - */ - private String passPhrase = ""; - - /** - * True to allow an unknown or changed key. - */ - private boolean allowUnknownKeys = false; - - /** - * A SpEL expression resolving to the location of the known hosts file. - */ - private Expression knownHostsExpression = null; - - @NotBlank - public String getHost() { - return this.host; - } - - public void setHost(String host) { - this.host = host; - } - - @NotBlank - public String getUsername() { - return this.username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return this.password; - } - - public void setPassword(String password) { - this.password = password; - } - - @Range(min = 0, max = 65535) - public int getPort() { - return this.port; - } - - public void setPort(int port) { - this.port = port; - } - - public Resource getPrivateKey() { - return this.privateKey; - } - - public void setPrivateKey(Resource privateKey) { - this.privateKey = privateKey; - } - - public String getPassPhrase() { - return this.passPhrase; - } - - public void setPassPhrase(String passPhrase) { - this.passPhrase = passPhrase; - } - - public boolean isAllowUnknownKeys() { - return this.allowUnknownKeys; - } - - public void setAllowUnknownKeys(boolean allowUnknownKeys) { - this.allowUnknownKeys = allowUnknownKeys; - } - - public Expression getKnownHostsExpression() { - return this.knownHostsExpression; - } - - public void setKnownHostsExpression(Expression knownHosts) { - this.knownHostsExpression = knownHosts; - } - - } - - public static class SortSpec { - /** - * Attribute of the file listing entry to sort by (FILENAME, ATIME: last access time, MTIME: last modified time). - */ - private Attribute attribute; - - /** - * Sorting direction (ASC or DESC). - */ - private Dir dir = Dir.ASC; - - @NotNull - public Attribute getAttribute() { - return attribute; - } - - public void setAttribute(Attribute attribute) { - this.attribute = attribute; - } - - @NotNull - public Dir getDir() { - return dir; - } - - public void setDir(Dir dir) { - this.dir = dir; - } - - public enum Attribute { - /** - * Filename attribute. - */ - FILENAME, - - /** - * Last access time attribute. - */ - ATIME, - - /** - * Last modified time attribute. - */ - MTIME - } - - public enum Dir { - /** - * Ascending sort direction. - */ - ASC, - - /** - * Descending sort direction. - */ - DESC - } - - private Comparator getAttributeComparator() { - switch (attribute) { - case FILENAME: - return Comparator.comparing(SftpClient.DirEntry::getFilename); - case ATIME: - return Comparator.comparing(x -> x.getAttributes().getAccessTime()); - case MTIME: - return Comparator.comparing(x -> x.getAttributes().getModifyTime()); - } - - throw new UnsupportedOperationException("Unsupported sortBy attribute: " + attribute); - } - - public Comparator comparator() { - Comparator comparator = getAttributeComparator(); - return dir == Dir.ASC ? comparator : comparator.reversed(); - } - } -} diff --git a/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierRotator.java b/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierRotator.java deleted file mode 100644 index 4f3e827a..00000000 --- a/functions/supplier/sftp-supplier/src/main/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierRotator.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2018-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.sftp; - -import org.springframework.integration.core.MessageSource; -import org.springframework.integration.file.remote.aop.RotatingServerAdvice; -import org.springframework.integration.file.remote.aop.StandardRotationPolicy; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.MessageBuilder; - -/** - * An {@link RotatingServerAdvice} for listing files on multiple directories/servers. - * - * @author Gary Russell - * @author David Turanski - * @since 2.0 - */ -public class SftpSupplierRotator extends RotatingServerAdvice { - - private static String SFTP_SELECTED_SERVER_PROPERTY_KEY = "sftp_selectedServer"; - - private final SftpSupplierProperties properties; - - private final StandardRotationPolicy rotationPolicy; - - public SftpSupplierRotator(SftpSupplierProperties properties, StandardRotationPolicy rotationPolicy) { - super(rotationPolicy); - this.properties = properties; - this.rotationPolicy = rotationPolicy; - } - - public String getCurrentKey() { - return this.rotationPolicy.getCurrent().getKey().toString(); - } - - public String getCurrentDirectory() { - return this.rotationPolicy.getCurrent().getDirectory(); - } - - @Override - public Message afterReceive(Message result, MessageSource source) { - if (result != null) { - result = MessageBuilder.fromMessage(result) - .setHeader(SFTP_SELECTED_SERVER_PROPERTY_KEY, this.getCurrentKey()).build(); - } - this.rotationPolicy.afterReceive(result != null, source); - return result; - } -} diff --git a/functions/supplier/sftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierApplicationTests.java b/functions/supplier/sftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierApplicationTests.java deleted file mode 100644 index 5cfd6ffb..00000000 --- a/functions/supplier/sftp-supplier/src/test/java/org/springframework/cloud/fn/supplier/sftp/SftpSupplierApplicationTests.java +++ /dev/null @@ -1,449 +0,0 @@ -/* - * Copyright 2020-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.sftp; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.time.Duration; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Supplier; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.assertj.AssertableApplicationContext; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.cloud.fn.test.support.sftp.SftpTestSupport; -import org.springframework.http.MediaType; -import org.springframework.integration.file.splitter.FileSplitter; -import org.springframework.integration.json.JsonPathUtils; -import org.springframework.integration.metadata.MetadataStore; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; -import static org.awaitility.Awaitility.await; - -public class SftpSupplierApplicationTests extends SftpTestSupport { - - ApplicationContextRunner defaultApplicationContextRunner; - - @BeforeEach - void setUpDefaultProperties() { - defaultApplicationContextRunner = new ApplicationContextRunner() - .withUserConfiguration(SftpSupplierTestApplication.class) - .withPropertyValues( - "sftp.supplier.factory.host=localhost", - "sftp.supplier.factory.port=${sftp.factory.port}", - "sftp.supplier.factory.username=user", - "sftp.supplier.factory.password=pass", - "sftp.supplier.factory.cache-sessions=true", - "sftp.supplier.factory.allowUnknownKeys=true", - "sftp.supplier.localDir=" + this.targetLocalDirectory.getAbsolutePath(), - "sftp.supplier.remoteDir=sftpSource"); - } - - @Test - void supplierForListOnly() { - defaultApplicationContextRunner - .withPropertyValues("sftp.supplier.listOnly=true") - .run(context -> { - Supplier>> sftpSupplier = context.getBean("sftpSupplier", - Supplier.class); - SftpSupplierProperties properties = context.getBean(SftpSupplierProperties.class); - HashSet fileNames = new HashSet<>(); - fileNames.add(String.join(properties.getRemoteFileSeparator(), properties.getRemoteDir(), - "sftpSource1.txt")); - fileNames.add(String.join(properties.getRemoteFileSeparator(), properties.getRemoteDir(), - "sftpSource2.txt")); - final AtomicReference> expectedFileNames = new AtomicReference<>(fileNames); - StepVerifier.create(sftpSupplier.get()) - .assertNext(message -> { - assertThat(expectedFileNames.get()).contains(message.getPayload()); - expectedFileNames.get().remove(message.getPayload()); - assertThat(message.getHeaders().get(MessageHeaders.CONTENT_TYPE)) - .isEqualTo(MediaType.TEXT_PLAIN); - }) - .assertNext(message -> { - assertThat(expectedFileNames.get()).contains(message.getPayload()); - assertThat(message.getHeaders().get(MessageHeaders.CONTENT_TYPE)) - .isEqualTo(MediaType.TEXT_PLAIN); - }) - .expectTimeout(Duration.ofMillis(1000)) - .verify(Duration.ofSeconds(30)); - - }); - } - - @Test - void supplierForListOnlyWithPatternFilter() { - defaultApplicationContextRunner - .withPropertyValues("sftp.supplier.listOnly=true", "sftp.supplier.file-name-pattern=.*1.txt") - .run(context -> { - Supplier>> sftpSupplier = context.getBean("sftpSupplier", - Supplier.class); - SftpSupplierProperties properties = context.getBean(SftpSupplierProperties.class); - - final AtomicReference expectedFileName = new AtomicReference<>( - properties.getRemoteDir() + "/sftpSource1.txt"); - StepVerifier.create(sftpSupplier.get()) - .assertNext(message -> assertThat(expectedFileName.get()).contains(message.getPayload())) - .expectTimeout(Duration.ofMillis(1000)) - .verify(Duration.ofSeconds(30)); - - }); - } - - @Test - void supplierForListSortedByFilenameAsc() { - defaultApplicationContextRunner - .withPropertyValues("sftp.supplier.listOnly=true", "sftp.supplier.sortBy.attribute=filename", "sftp.supplier.sortBy.dir=asc") - .run(context -> { - Supplier>> sftpSupplier = context.getBean("sftpSupplier", - Supplier.class); - SftpSupplierProperties properties = context.getBean(SftpSupplierProperties.class); - List fileNames = new ArrayList<>(); - fileNames.add(String.join(properties.getRemoteFileSeparator(), properties.getRemoteDir(), - "sftpSource1.txt")); - fileNames.add(String.join(properties.getRemoteFileSeparator(), properties.getRemoteDir(), - "sftpSource2.txt")); - final AtomicReference> expectedFileNames = new AtomicReference<>(fileNames); - StepVerifier.create(sftpSupplier.get()) - .assertNext(message -> { - assertThat(message.getPayload()).isEqualTo(expectedFileNames.get().get(0)); - assertThat(message.getHeaders().get(MessageHeaders.CONTENT_TYPE)) - .isEqualTo(MediaType.TEXT_PLAIN); - }) - .assertNext(message -> { - assertThat(message.getPayload()).isEqualTo(expectedFileNames.get().get(1)); - assertThat(message.getHeaders().get(MessageHeaders.CONTENT_TYPE)) - .isEqualTo(MediaType.TEXT_PLAIN); - }) - .expectTimeout(Duration.ofMillis(1000)) - .verify(Duration.ofSeconds(30)); - - }); - } - - @Test - void supplierForListSortedByFilenameDesc() { - defaultApplicationContextRunner - .withPropertyValues("sftp.supplier.listOnly=true", "sftp.supplier.sortBy.attribute=filename", "sftp.supplier.sortBy.dir=desc") - .run(context -> { - Supplier>> sftpSupplier = context.getBean("sftpSupplier", - Supplier.class); - SftpSupplierProperties properties = context.getBean(SftpSupplierProperties.class); - List fileNames = new ArrayList<>(); - fileNames.add(String.join(properties.getRemoteFileSeparator(), properties.getRemoteDir(), - "sftpSource2.txt")); - fileNames.add(String.join(properties.getRemoteFileSeparator(), properties.getRemoteDir(), - "sftpSource1.txt")); - final AtomicReference> expectedFileNames = new AtomicReference<>(fileNames); - StepVerifier.create(sftpSupplier.get()) - .assertNext(message -> { - assertThat(message.getPayload()).isEqualTo(expectedFileNames.get().get(0)); - assertThat(message.getHeaders().get(MessageHeaders.CONTENT_TYPE)) - .isEqualTo(MediaType.TEXT_PLAIN); - }) - .assertNext(message -> { - assertThat(message.getPayload()).isEqualTo(expectedFileNames.get().get(1)); - assertThat(message.getHeaders().get(MessageHeaders.CONTENT_TYPE)) - .isEqualTo(MediaType.TEXT_PLAIN); - }) - .expectTimeout(Duration.ofMillis(1000)) - .verify(Duration.ofSeconds(30)); - - }); - } - - @Test - void supplierForFileRef() { - defaultApplicationContextRunner - .withPropertyValues( - "sftp.supplier.localDir=" + getTargetLocalDirectory().getAbsolutePath(), - "file.consumer.mode=ref") - .run(context -> { - Supplier>> sftpSupplier = context.getBean("sftpSupplier", - Supplier.class); - SftpSupplierProperties properties = context.getBean(SftpSupplierProperties.class); - MetadataStore metadataStore = context.getBean(MetadataStore.class); - HashSet fileNames = new HashSet<>(); - fileNames.add(properties.getLocalDir() + File.separator + "sftpSource1.txt"); - fileNames.add(properties.getLocalDir() + File.separator + "sftpSource2.txt"); - final AtomicReference> expectedFileNames = new AtomicReference<>(fileNames); - StepVerifier.create(sftpSupplier.get()) - .assertNext(message -> { - File file = message.getPayload(); - assertThat(expectedFileNames.get()).contains(file.getAbsolutePath()); - expectedFileNames.get().remove(file.getAbsolutePath()); - }) - .expectNextMatches( - message -> expectedFileNames.get().contains(message.getPayload().getAbsolutePath())) - .thenCancel() - .verify(Duration.ofSeconds(30)); - - assertThat(metadataStore.get("sftpSource/sftpSource1.txt")).isNotNull(); - assertThat(metadataStore.get("sftpSource/sftpSource2.txt")).isNotNull(); - assertThat(Files.exists(Paths.get(getTargetLocalDirectory().getAbsolutePath(), "sftpSource1.txt"))) - .isTrue(); - assertThat(Files.exists(Paths.get(getTargetLocalDirectory().getAbsolutePath(), "sftpSource2.txt"))) - .isTrue(); - }); - } - - @Test - void deleteRemoteFiles() { - defaultApplicationContextRunner - .withPropertyValues( - "sftp.supplier.stream=true", - "sftp.supplier.delete-remote-files=true") - .run(context -> { - Supplier>> sftpSupplier = context.getBean("sftpSupplier", - Supplier.class); - StepVerifier.create(sftpSupplier.get()) - .expectNextMatches(message -> message.getPayload().length > 0) - .expectNextMatches(message -> message.getPayload().length > 0) - .thenCancel() - .verify(Duration.ofSeconds(30)); - await().atMost(Duration.ofSeconds(30)) - .until(() -> getSourceRemoteDirectory().list().length == 0); - }); - - } - - @Test - void renameRemoteFilesStream() { - defaultApplicationContextRunner - .withPropertyValues( - "sftp.supplier.stream=true", - "sftp.supplier.delete-remote-files=false", - "sftp.supplier.rename-remote-files-to='/sftpTarget/' + headers.file_remoteFile") - .run(this::doTestRenameRemoteFiles); - } - - @Test - void renameRemoteFiles() { - defaultApplicationContextRunner - .withPropertyValues( - "sftp.supplier.stream=false", - "sftp.supplier.delete-remote-files=false", - "sftp.supplier.rename-remote-files-to='/sftpTarget/' + headers.file_remoteFile") - .run(this::doTestRenameRemoteFiles); - } - - private void doTestRenameRemoteFiles(AssertableApplicationContext context) { - Supplier>> sftpSupplier = context.getBean("sftpSupplier", - Supplier.class); - - final Set expectedTargetFiles = Arrays.stream(getSourceRemoteDirectory().list()) - .collect(Collectors.toSet()); - - StepVerifier.create(sftpSupplier.get()) - .expectNextMatches(message -> message.getPayload().length > 0) - .expectNextMatches(message -> message.getPayload().length > 0) - .thenCancel() - .verify(Duration.ofSeconds(30)); - await().atMost(Duration.ofSeconds(30)) - .until(() -> - expectedTargetFiles.equals( - Arrays.stream(getTargetRemoteDirectory().list()) - .collect(Collectors.toSet())) - ); - } - - @Test - public void streamSourceFilesInLineMode() { - defaultApplicationContextRunner - .withPropertyValues( - "sftp.supplier.stream=true", - "sftp.supplier.factory.private-key = classpath:id_rsa_pp", - "sftp.supplier.factory.passphrase = secret", - "sftp.supplier.factory.password = badPassword", // ensure public key was used - "sftp.supplier.delete-remote-files=true", - "file.consumer.mode=lines", - "file.consumer.with-markers=true", - "file.consumer.markers-json=true") - .run(context -> { - Supplier>> sftpSupplier = context.getBean("sftpSupplier", - Supplier.class); - StepVerifier.create(sftpSupplier.get()) - .assertNext(message -> { - final Object evaluate; - try { - evaluate = JsonPathUtils.evaluate(message.getPayload(), "$.mark"); - assertThat(evaluate).isEqualTo(FileSplitter.FileMarker.Mark.START.name()); - } - catch (IOException e) { - fail(e.getMessage()); - } - }) - .expectNextMatches(message -> message.getPayload().startsWith("source")) - .assertNext(message -> { - final Object evaluate; - try { - evaluate = JsonPathUtils.evaluate(message.getPayload(), "$.mark"); - assertThat(evaluate).isEqualTo(FileSplitter.FileMarker.Mark.END.name()); - } - catch (IOException e) { - fail(e.getMessage()); - } - }) - .thenCancel() - .verify(Duration.ofSeconds(30)); - }); - } - - @Test - void supplierWithMultiSourceAndStreamContentsSource3ComesSecond() throws Exception { - Path newSource = createNewRemoteSource( - Paths.get(remoteTemporaryFolder.toString(), "sftpSecondSource", "doesNotMatter.txt"), - "source3"); - try { - new ApplicationContextRunner() - .withUserConfiguration(SftpSupplierTestApplication.class) - .withPropertyValues( - "sftp.supplier.stream=true", - "sftp.supplier.factories.one.host=localhost", - "sftp.supplier.factories.one.port=${sftp.factory.port}", - "sftp.supplier.factories.one.username=user", - "sftp.supplier.factories.one.password=pass", - "sftp.supplier.factories.one.cache-sessions=true", - "sftp.supplier.factories.one.allowUnknownKeys=true", - "sftp.supplier.factories.two.host=localhost", - "sftp.supplier.factories.two.port=${sftp.factory.port}", - "sftp.supplier.factories.two.username = user", - "sftp.supplier.factories.two.password = pass", - "sftp.supplier.factories.two.cache-sessions = true", - "sftp.supplier.factories.two.allowUnknownKeys = true", - "sftp.supplier.directories=one.sftpSource,two.sftpSecondSource", - "sftp.supplier.max-fetch=1", - "sftp.supplier.fair=true") - .run(context -> { - - Supplier>> sftpSupplier = context.getBean("sftpSupplier", Supplier.class); - HashSet contents = new HashSet<>(); - contents.add("source1"); - contents.add("source2"); - final AtomicReference> expectedContentsOfAllFiles = new AtomicReference<>(contents); - - StepVerifier.create(sftpSupplier.get()) - .assertNext(message -> { - String payload = new String(message.getPayload()); - assertThat(expectedContentsOfAllFiles.get()).contains(payload); - expectedContentsOfAllFiles.get().remove(payload); - }) - .expectNextMatches(message -> new String(message.getPayload()).equals("source3")) - .expectNextMatches(message -> expectedContentsOfAllFiles.get() - .contains(new String(message.getPayload()))) - .thenCancel() - .verify(Duration.ofSeconds(30)); - }); - } - finally { - deleteNewSource(newSource); - } - } - - @Test - void supplierMultiSourceRefTestsFor200Alex() throws Exception { - Path newSource = createNewRemoteSource( - Paths.get(remoteTemporaryFolder.toString(), "sftpSecondSource", "sftpSource3.txt"), - "doesNotMatter"); - try { - new ApplicationContextRunner() - .withUserConfiguration(SftpSupplierTestApplication.class) - .withPropertyValues( - "file.consumer.mode = ref", - "sftp.supplier.localDir=" + this.targetLocalDirectory.getAbsolutePath(), - "sftp.supplier.factories.one.host=localhost", - "sftp.supplier.factories.one.port=${sftp.factory.port}", - "sftp.supplier.factories.one.username = user", - "sftp.supplier.factories.one.password = pass", - "sftp.supplier.factories.one.cache-sessions = true", - "sftp.supplier.factories.one.allowUnknownKeys = true", - "sftp.supplier.factories.two.host=localhost", - "sftp.supplier.factories.two.port=${sftp.factory.port}", - "sftp.supplier.factories.two.username = user", - "sftp.supplier.factories.two.password = pass", - "sftp.supplier.factories.two.cache-sessions = true", - "sftp.supplier.factories.two.allowUnknownKeys = true", - "sftp.supplier.factories.empty.host=localhost", - "sftp.supplier.factories.empty.port=${sftp.factory.port}", - "sftp.supplier.factories.empty.username=user", - "sftp.supplier.factories.empty.password=pass", - "sftp.supplier.factories.empty.allowUnknownKeys = true", - "sftp.supplier.directories=one.sftpSource,two.sftpSecondSource,empty.sftpSource", - "sftp.supplier.max-fetch=1", - "sftp.supplier.fair=true") - .run(context -> { - Supplier>> sftpSupplier = context.getBean("sftpSupplier", Supplier.class); - SftpSupplierProperties properties = context.getBean(SftpSupplierProperties.class); - String localDir = properties.getLocalDir().getPath(); - HashSet firstSourceFiles = new HashSet<>(); - firstSourceFiles.add(Paths.get(localDir, "sftpSource1.txt").toString()); - firstSourceFiles.add(Paths.get(localDir, "sftpSource2.txt").toString()); - final AtomicReference> expectedFirstSourcePaths = new AtomicReference<>( - firstSourceFiles); - - StepVerifier.create(sftpSupplier.get()) - .assertNext(message -> { - assertThat(expectedFirstSourcePaths.get()).contains(message.getPayload().getPath()); - expectedFirstSourcePaths.get().remove(message.getPayload().getPath()); - }) - .expectNextMatches(message -> message.getPayload().getPath().equals( - Paths.get(localDir, "sftpSource3.txt").toString())) - .expectNextMatches(message -> expectedFirstSourcePaths.get() - .contains(message.getPayload().getPath())) - .thenCancel() - .verify(Duration.ofSeconds(10)); - }); - } - finally { - deleteNewSource(newSource); - } - } - - private Path createNewRemoteSource(Path remotePath, String contents) throws Exception { - Files.createDirectory(remotePath.getParent()); - Files.write(Files.createFile(remotePath), contents.getBytes()); - return remotePath; - } - - private void deleteNewSource(Path newSource) throws IOException { - Files.delete(newSource); - Files.delete(newSource.getParent()); - } - - @SpringBootApplication - static class SftpSupplierTestApplication { - - } - -} diff --git a/functions/supplier/sftp-supplier/src/test/resources/logback.xml b/functions/supplier/sftp-supplier/src/test/resources/logback.xml deleted file mode 100644 index c85b56f1..00000000 --- a/functions/supplier/sftp-supplier/src/test/resources/logback.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - - - diff --git a/functions/supplier/syslog-supplier/README.adoc b/functions/supplier/syslog-supplier/README.adoc deleted file mode 100644 index 85cd3b0e..00000000 --- a/functions/supplier/syslog-supplier/README.adoc +++ /dev/null @@ -1,32 +0,0 @@ -# Syslog Supplier - -Syslog supplier that produces both TCP and UDP based syslog events. -The `Supplier` uses the `TcpSyslogReceivingChannelAdapter` and `UdpSyslogReceivingChannelAdapter` from Spring Integration. -This supplier gives you a reactive stream of messages and the supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and receive the data. - -## Beans for injection - -You can import the `SyslogSupplierConfiguration` in the application and then inject the following bean. - -`syslogSupplier` - -You need to inject this as `Supplier>>`. - -You can use `syslogSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `syslog.supplier`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/syslog/SyslogSupplierProperties.java[SyslogSupplierProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/syslog[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/syslog-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a Syslog Source. \ No newline at end of file diff --git a/functions/supplier/syslog-supplier/pom.xml b/functions/supplier/syslog-supplier/pom.xml deleted file mode 100644 index d0e8cbb8..00000000 --- a/functions/supplier/syslog-supplier/pom.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - syslog-supplier - syslog-supplier - syslog supplier - - - - org.springframework.integration - spring-integration-syslog - - - - diff --git a/functions/supplier/syslog-supplier/src/main/java/org/springframework/cloud/fn/supplier/syslog/SyslogSupplierConfiguration.java b/functions/supplier/syslog-supplier/src/main/java/org/springframework/cloud/fn/supplier/syslog/SyslogSupplierConfiguration.java deleted file mode 100644 index dbd9a093..00000000 --- a/functions/supplier/syslog-supplier/src/main/java/org/springframework/cloud/fn/supplier/syslog/SyslogSupplierConfiguration.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright 2020-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import java.util.function.Supplier; - -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.serializer.Deserializer; -import org.springframework.integration.channel.FluxMessageChannel; -import org.springframework.integration.ip.tcp.connection.AbstractServerConnectionFactory; -import org.springframework.integration.ip.tcp.connection.TcpNetServerConnectionFactory; -import org.springframework.integration.ip.tcp.connection.TcpNioServerConnectionFactory; -import org.springframework.integration.ip.tcp.serializer.ByteArrayLfSerializer; -import org.springframework.integration.syslog.DefaultMessageConverter; -import org.springframework.integration.syslog.MessageConverter; -import org.springframework.integration.syslog.RFC5424MessageConverter; -import org.springframework.integration.syslog.inbound.RFC6587SyslogDeserializer; -import org.springframework.integration.syslog.inbound.SyslogReceivingChannelAdapterSupport; -import org.springframework.integration.syslog.inbound.TcpSyslogReceivingChannelAdapter; -import org.springframework.integration.syslog.inbound.UdpSyslogReceivingChannelAdapter; -import org.springframework.messaging.Message; - -/** - * Configuration class for SYSLOG Supplier. - * - * @author Soby Chacko - */ -@Configuration -@EnableConfigurationProperties(SyslogSupplierProperties.class) -public class SyslogSupplierConfiguration { - - @Autowired - private SyslogSupplierProperties properties; - - @Bean - public FluxMessageChannel syslogInputChannel() { - return new FluxMessageChannel(); - } - - @Bean - public Supplier>> syslogSupplier(ObjectProvider udpAdapterProvider, - ObjectProvider tcpAdapterProvider) { - return () -> Flux.from(syslogInputChannel()) - .doOnSubscribe(subscription -> { - final UdpSyslogReceivingChannelAdapter udpAdapter = udpAdapterProvider.getIfAvailable(); - final TcpSyslogReceivingChannelAdapter tcpAdapter = tcpAdapterProvider.getIfAvailable(); - if (udpAdapter != null) { - udpAdapter.start(); - } - if (tcpAdapter != null) { - tcpAdapter.start(); - } - }); - } - - @Bean - @ConditionalOnProperty(name = "syslog.supplier.protocol", havingValue = "udp") - public UdpSyslogReceivingChannelAdapter udpAdapter() { - return createUdpAdapter(); - } - - @Bean - @ConditionalOnProperty(name = "syslog.supplier.protocol", havingValue = "both") - public UdpSyslogReceivingChannelAdapter udpBothAdapter() { - return createUdpAdapter(); - } - - private UdpSyslogReceivingChannelAdapter createUdpAdapter() { - UdpSyslogReceivingChannelAdapter adapter = new UdpSyslogReceivingChannelAdapter(); - setAdapterProperties(adapter); - return adapter; - } - - @Bean - @ConditionalOnProperty(name = "syslog.supplier.protocol", havingValue = "tcp", matchIfMissing = true) - public TcpSyslogReceivingChannelAdapter tcpAdapter( - @Qualifier("syslogSupplierConnectionFactory") AbstractServerConnectionFactory connectionFactory) { - return createTcpAdapter(connectionFactory); - } - - @Bean - @ConditionalOnProperty(name = "syslog.supplier.protocol", havingValue = "both") - public TcpSyslogReceivingChannelAdapter tcpBothAdapter( - @Qualifier("syslogSupplierConnectionFactory") AbstractServerConnectionFactory connectionFactory) { - return createTcpAdapter(connectionFactory); - } - - @Bean - public MessageConverter syslogConverter() { - if (this.properties.getRfc().equals("5424")) { - return new RFC5424MessageConverter(); - } - else { - return new DefaultMessageConverter(); - } - } - - private TcpSyslogReceivingChannelAdapter createTcpAdapter(AbstractServerConnectionFactory connectionFactory) { - TcpSyslogReceivingChannelAdapter adapter = new TcpSyslogReceivingChannelAdapter(); - adapter.setConnectionFactory(connectionFactory); - setAdapterProperties(adapter); - return adapter; - } - - private void setAdapterProperties(SyslogReceivingChannelAdapterSupport adapter) { - adapter.setPort(this.properties.getPort()); - adapter.setConverter(syslogConverter()); - adapter.setOutputChannel(syslogInputChannel()); - adapter.setAutoStartup(false); - } - - - @Configuration - @ConditionalOnProperty(name = "syslog.supplier.protocol", havingValue = "tcp", matchIfMissing = true) - protected static class TcpBits { - - @Autowired - private SyslogSupplierProperties properties; - - @Bean - public AbstractServerConnectionFactory syslogSupplierConnectionFactory( - @Qualifier("syslogSupplierDecoder") Deserializer decoder) throws Exception { - AbstractServerConnectionFactory factory; - if (this.properties.isNio()) { - factory = new TcpNioServerConnectionFactory(this.properties.getPort()); - } - else { - factory = new TcpNetServerConnectionFactory(this.properties.getPort()); - } - factory.setLookupHost(this.properties.isReverseLookup()); - factory.setDeserializer(decoder); - factory.setSoTimeout(this.properties.getSocketTimeout()); - return factory; - } - - @Bean - public Deserializer syslogSupplierDecoder() { - ByteArrayLfSerializer decoder = new ByteArrayLfSerializer(); - decoder.setMaxMessageSize(this.properties.getBufferSize()); - if (this.properties.getRfc().equals("5424")) { - return new RFC6587SyslogDeserializer(decoder); - } - else { - return decoder; - } - } - } - - @Configuration - @ConditionalOnProperty(name = "syslog.supplier.protocol", havingValue = "both") - protected static class BothBits extends TcpBits { - - } - -} diff --git a/functions/supplier/syslog-supplier/src/main/java/org/springframework/cloud/fn/supplier/syslog/SyslogSupplierProperties.java b/functions/supplier/syslog-supplier/src/main/java/org/springframework/cloud/fn/supplier/syslog/SyslogSupplierProperties.java deleted file mode 100644 index 8240290e..00000000 --- a/functions/supplier/syslog-supplier/src/main/java/org/springframework/cloud/fn/supplier/syslog/SyslogSupplierProperties.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -@ConfigurationProperties("syslog.supplier") -@Validated -public class SyslogSupplierProperties { - - /** - * the buffer size used when decoding messages; larger messages will be rejected. - */ - private int bufferSize = 2048; - - /** - * Protocol used for SYSLOG (tcp or udp). - */ - private Protocol protocol = Protocol.tcp; - - /** - * The port to listen on. - */ - private int port = 1514; - - /** - * whether or not to use NIO (when supporting a large number of connections). - */ - private boolean nio = false; - - /** - * whether or not to perform a reverse lookup on the incoming socket. - */ - private boolean reverseLookup; - - /** - * the socket timeout. - */ - private int socketTimeout; - - /** - * '5424' or '3164' - the syslog format according to the RFC; 3164 is aka 'BSD' format. - */ - private String rfc = "3164"; - - public int getBufferSize() { - return bufferSize; - } - - public void setBufferSize(int bufferSize) { - this.bufferSize = bufferSize; - } - - public Protocol getProtocol() { - return protocol; - } - - public void setProtocol(Protocol protocol) { - this.protocol = protocol; - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } - - public boolean isNio() { - return nio; - } - - public void setNio(boolean nio) { - this.nio = nio; - } - - public boolean isReverseLookup() { - return reverseLookup; - } - - public void setReverseLookup(boolean reverseLookup) { - this.reverseLookup = reverseLookup; - } - - public int getSocketTimeout() { - return socketTimeout; - } - - public void setSocketTimeout(int socketTimeout) { - this.socketTimeout = socketTimeout; - } - - @NotNull - public String getRfc() { - return rfc; - } - - public void setRfc(String rfc) { - this.rfc = rfc; - } - - @AssertTrue(message = "rfc must be 5424 or 3164") - public boolean isSupportedRfc() { - return "5424".equals(this.rfc) || "3164".equals(this.rfc); - } - - public enum Protocol { - /** - * TCP protocol. - */ - tcp, - - /** - * UDP protocol. - */ - udp, - - /** - * Represents both TCP and UDP. - */ - both; - } -} diff --git a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/AbstractSyslogSupplierTests.java b/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/AbstractSyslogSupplierTests.java deleted file mode 100644 index 599f1581..00000000 --- a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/AbstractSyslogSupplierTests.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import java.net.DatagramPacket; -import java.net.DatagramSocket; -import java.net.InetSocketAddress; -import java.net.Socket; -import java.util.function.Supplier; - -import javax.net.SocketFactory; - -import reactor.core.publisher.Flux; - -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.integration.ip.tcp.connection.AbstractServerConnectionFactory; -import org.springframework.integration.ip.udp.UnicastReceivingChannelAdapter; -import org.springframework.integration.syslog.inbound.UdpSyslogReceivingChannelAdapter; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - - -@SpringBootTest(properties = "syslog.supplier.port = 0") -@DirtiesContext -public class AbstractSyslogSupplierTests { - - protected static final String RFC3164_PACKET = "<157>JUL 26 22:08:35 WEBERN TESTING[70729]: TEST SYSLOG MESSAGE"; - - protected static final String RFC5424_PACKET = - "<14>1 2014-06-20T09:14:07+00:00 loggregator d0602076-b14a-4c55-852a-981e7afeed38 DEA - " - + "[exampleSDID@32473 iut=\\\"3\\\" eventSource=\\\"Application\\\" eventID=\\\"1011\\\"]" - + "[exampleSDID@32473 iut=\\\"3\\\" eventSource=\\\"Application\\\" eventID=\\\"1011\\\"] " - + "Removing instance"; - - @Autowired - Supplier>> syslogSupplier; - - @Autowired - protected SyslogSupplierProperties properties; - - @Autowired(required = false) - protected AbstractServerConnectionFactory connectionFactory; - - @Autowired(required = false) - protected UdpSyslogReceivingChannelAdapter udpAdapter; - - protected void sendTcp(String syslog) throws Exception { - int port = getPort(); - Socket socket = SocketFactory.getDefault().createSocket("localhost", port); - socket.getOutputStream().write(syslog.getBytes()); - socket.close(); - } - - private int getPort() throws Exception { - int n = 0; - while (n++ < 100 && !this.connectionFactory.isListening()) { - Thread.sleep(100); - } - assertThat(this.connectionFactory.isListening()).isTrue(); - int port = this.connectionFactory.getPort(); - assertThat(port > 0).isTrue(); - return port; - } - - protected void sendUdp(String syslog) throws Exception { - int port = waitUdp(); - DatagramSocket socket = new DatagramSocket(); - DatagramPacket packet = new DatagramPacket(syslog.getBytes(), syslog.length()); - packet.setSocketAddress(new InetSocketAddress("localhost", port)); - socket.send(packet); - socket.close(); - } - - private int waitUdp() throws Exception { - int n = 0; - DirectFieldAccessor dfa = new DirectFieldAccessor(this.udpAdapter); - while (n++ < 100 && !((UnicastReceivingChannelAdapter) dfa.getPropertyValue("udpAdapter")).isListening()) { - Thread.sleep(100); - } - return ((UnicastReceivingChannelAdapter) dfa.getPropertyValue("udpAdapter")).getPort(); - } - - @SpringBootApplication - public static class SyslogSupplierTestApplication { - - } - -} diff --git a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/NotNioTests.java b/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/NotNioTests.java deleted file mode 100644 index fd485d96..00000000 --- a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/NotNioTests.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.connection.TcpNetServerConnectionFactory; -import org.springframework.integration.test.util.TestUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -public class NotNioTests extends AbstractSyslogSupplierTests { - - @Test - public void test() throws Exception { - assertThat(this.connectionFactory).isInstanceOf(TcpNetServerConnectionFactory.class); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "lookupHost", Boolean.class)).isFalse(); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "soTimeout")).isEqualTo(0); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "deserializer.maxMessageSize")).isEqualTo(2048); - } -} diff --git a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/PropertiesPopulatedTests.java b/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/PropertiesPopulatedTests.java deleted file mode 100644 index 5e2c7dbb..00000000 --- a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/PropertiesPopulatedTests.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.connection.TcpNioServerConnectionFactory; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { "syslog.supplier.port = 0", "syslog.supplier.nio = true", "syslog.supplier.reverseLookup = true", - "syslog.supplier.socketTimeout = 123", "syslog.supplier.bufferSize = 5" }) -public class PropertiesPopulatedTests extends AbstractSyslogSupplierTests { - - @Test - public void test() throws Exception { - assertThat(this.connectionFactory).isInstanceOf(TcpNioServerConnectionFactory.class); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "lookupHost", Boolean.class)).isTrue(); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "soTimeout")).isEqualTo(123); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "deserializer.maxMessageSize")).isEqualTo(5); - } -} diff --git a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Tcp3164Tests.java b/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Tcp3164Tests.java deleted file mode 100644 index 648a4130..00000000 --- a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Tcp3164Tests.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import java.util.Map; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; - -import static org.assertj.core.api.Assertions.assertThat; - -public class Tcp3164Tests extends AbstractSyslogSupplierTests { - - @Test - public void test() throws Exception { - final Flux> messageFlux = syslogSupplier.get(); - - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((Map) message.getPayload()).get("HOST")).isEqualTo("WEBERN"); - } - ) - .thenCancel() - .verifyLater(); - - sendTcp(AbstractSyslogSupplierTests.RFC3164_PACKET + "\n"); - - stepVerifier.verify(); - } -} diff --git a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Tcp5424Tests.java b/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Tcp5424Tests.java deleted file mode 100644 index a0934956..00000000 --- a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Tcp5424Tests.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import java.util.Map; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { "syslog.supplier.port = 0", "syslog.supplier.rfc = 5424" }) -public class Tcp5424Tests extends AbstractSyslogSupplierTests { - - @Test - public void test() throws Exception { - final Flux> messageFlux = syslogSupplier.get(); - - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((Map) message.getPayload()).get("syslog_HOST")).isEqualTo("loggregator"); - } - ) - .thenCancel() - .verifyLater(); - - sendTcp("253 " + RFC5424_PACKET); - - stepVerifier.verify(); - } -} diff --git a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/TcpAndUdp3164Tests.java b/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/TcpAndUdp3164Tests.java deleted file mode 100644 index da19ce97..00000000 --- a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/TcpAndUdp3164Tests.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import java.util.Map; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = "syslog.supplier.protocol = both") -public class TcpAndUdp3164Tests extends AbstractSyslogSupplierTests { - - @Test - public void test() throws Exception { - final Flux> messageFlux = syslogSupplier.get(); - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((Map) message.getPayload()).get("HOST")).isEqualTo("WEBERN"); - } - ) - .assertNext((message) -> { - assertThat(((Map) message.getPayload()).get("HOST")).isEqualTo("WEBERN"); - } - ) - .thenCancel() - .verifyLater(); - - sendTcp(RFC3164_PACKET + "\n"); - sendUdp(RFC3164_PACKET); - stepVerifier.verify(); - } -} diff --git a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/TcpAndUdp5424Tests.java b/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/TcpAndUdp5424Tests.java deleted file mode 100644 index 394ce58c..00000000 --- a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/TcpAndUdp5424Tests.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import java.util.Map; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { "syslog.supplier.protocol = both", "syslog.supplier.rfc = 5424" }) -public class TcpAndUdp5424Tests extends AbstractSyslogSupplierTests { - - @Test - public void test() throws Exception { - final Flux> messageFlux = syslogSupplier.get(); - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((Map) message.getPayload()).get("syslog_HOST")).isEqualTo("loggregator"); - } - ) - .assertNext((message) -> { - assertThat(((Map) message.getPayload()).get("syslog_HOST")).isEqualTo("loggregator"); - } - ) - .thenCancel() - .verifyLater(); - - sendTcp("253 " + RFC5424_PACKET); - sendUdp(RFC5424_PACKET); - stepVerifier.verify(); - } - -} diff --git a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Udp3164Tests.java b/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Udp3164Tests.java deleted file mode 100644 index ab1ccf6a..00000000 --- a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Udp3164Tests.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import java.util.Map; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = "syslog.supplier.protocol = udp") -public class Udp3164Tests extends AbstractSyslogSupplierTests { - - @Test - public void test() throws Exception { - final Flux> messageFlux = syslogSupplier.get(); - - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((Map) message.getPayload()).get("HOST")).isEqualTo("WEBERN"); - } - ) - .thenCancel() - .verifyLater(); - - sendUdp(RFC3164_PACKET); - - stepVerifier.verify(); - - - } - -} diff --git a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Udp5424Tests.java b/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Udp5424Tests.java deleted file mode 100644 index c64cf307..00000000 --- a/functions/supplier/syslog-supplier/src/test/java/org/springframework/cloud/fn/supplier/syslog/Udp5424Tests.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.syslog; - -import java.util.Map; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.messaging.Message; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -@TestPropertySource(properties = { "syslog.supplier.protocol = udp", "syslog.supplier.rfc = 5424" }) -public class Udp5424Tests extends AbstractSyslogSupplierTests { - - @Test - public void test() throws Exception { - final Flux> messageFlux = syslogSupplier.get(); - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(((Map) message.getPayload()).get("syslog_HOST")).isEqualTo("loggregator"); - } - ) - .thenCancel() - .verifyLater(); - - sendUdp(RFC5424_PACKET); - stepVerifier.verify(); - } -} diff --git a/functions/supplier/tcp-supplier/README.adoc b/functions/supplier/tcp-supplier/README.adoc deleted file mode 100644 index a957d350..00000000 --- a/functions/supplier/tcp-supplier/README.adoc +++ /dev/null @@ -1,33 +0,0 @@ -# TCP Supplier - -This module provides a TCP supplier that can be reused and composed in other applications. -The `Supplier` uses the `TcpReceivingChannelAdapter` from Spring Integration. -A `tcpSupplier` bean is implemented as a `java.util.function.Supplier`. -This supplier gives you a reactive stream from TCP sources. -The supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and then receive the data. - -## Beans for injection - -You can import the `TcpSupplierConfiguration` in the application and then inject the following bean: `tcpSupplier`. - -You need to inject this as `Supplier>>`. - -You can use `tcpSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `tcp.supplier` and `tcp`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/tcp/TcpSupplierProperties.java[TcpSupplierProperties]. -In addition to this, there is also link:../../common/tcp-common/src/main/java/org/springframework/cloud/fn/common/tcp/TcpConnectionFactoryProperties.java[this set of properties] to consider. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/tcp[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/tcp-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes an TCP Source. \ No newline at end of file diff --git a/functions/supplier/tcp-supplier/pom.xml b/functions/supplier/tcp-supplier/pom.xml deleted file mode 100644 index 0e22d4ae..00000000 --- a/functions/supplier/tcp-supplier/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - tcp-supplier - tcp-supplier - tcp supplier - - - - org.springframework.cloud.fn - tcp-common - ${project.version} - - - - diff --git a/functions/supplier/tcp-supplier/src/main/java/org/springframework/cloud/fn/supplier/tcp/TcpSupplierConfiguration.java b/functions/supplier/tcp-supplier/src/main/java/org/springframework/cloud/fn/supplier/tcp/TcpSupplierConfiguration.java deleted file mode 100644 index d5370ab0..00000000 --- a/functions/supplier/tcp-supplier/src/main/java/org/springframework/cloud/fn/supplier/tcp/TcpSupplierConfiguration.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2015-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import java.util.function.Supplier; - -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.tcp.EncoderDecoderFactoryBean; -import org.springframework.cloud.fn.common.tcp.TcpConnectionFactoryProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.ip.IpHeaders; -import org.springframework.integration.ip.config.TcpConnectionFactoryFactoryBean; -import org.springframework.integration.ip.tcp.TcpReceivingChannelAdapter; -import org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory; -import org.springframework.integration.ip.tcp.serializer.AbstractByteArraySerializer; -import org.springframework.messaging.Message; - -/** - * A source module that receives data over TCP. - * - * @author Gary Russell - * @author Christian Tzolov - * @author Soby Chacko - * @author Artem Bilan - */ -@Configuration(proxyBeanMethods = false) -@EnableConfigurationProperties({ TcpSupplierProperties.class, TcpConnectionFactoryProperties.class }) -public class TcpSupplierConfiguration { - - @Bean - public EncoderDecoderFactoryBean tcpSourceDecoder(TcpSupplierProperties properties) { - EncoderDecoderFactoryBean factoryBean = new EncoderDecoderFactoryBean(properties.getDecoder()); - factoryBean.setMaxMessageSize(properties.getBufferSize()); - return factoryBean; - } - - @Bean - public TcpConnectionFactoryFactoryBean tcpSourceConnectionFactory( - TcpConnectionFactoryProperties tcpConnectionProperties, - @Qualifier("tcpSourceDecoder") AbstractByteArraySerializer decoder) { - - TcpConnectionFactoryFactoryBean factoryBean = new TcpConnectionFactoryFactoryBean(); - factoryBean.setType("server"); - factoryBean.setPort(tcpConnectionProperties.getPort()); - factoryBean.setUsingNio(tcpConnectionProperties.isNio()); - factoryBean.setUsingDirectBuffers(tcpConnectionProperties.isUseDirectBuffers()); - factoryBean.setLookupHost(tcpConnectionProperties.isReverseLookup()); - factoryBean.setDeserializer(decoder); - factoryBean.setSoTimeout(tcpConnectionProperties.getSocketTimeout()); - return factoryBean; - } - - @Bean - public TcpReceivingChannelAdapter adapter( - @Qualifier("tcpSourceConnectionFactory") AbstractConnectionFactory connectionFactory) { - - TcpReceivingChannelAdapter adapter = new TcpReceivingChannelAdapter(); - adapter.setConnectionFactory(connectionFactory); - adapter.setAutoStartup(false); - return adapter; - } - - @Bean - public Publisher> tcpSupplierFlow(TcpReceivingChannelAdapter adapter) { - return IntegrationFlow.from(adapter) - .headerFilter(IpHeaders.LOCAL_ADDRESS) - .toReactivePublisher(); - } - - @Bean - public Supplier>> tcpSupplier( - Publisher> tcpSupplierFlow, - TcpReceivingChannelAdapter tcpReceivingChannelAdapter) { - - return () -> Flux.from(tcpSupplierFlow) - .doOnSubscribe(subscription -> tcpReceivingChannelAdapter.start()); - } - -} diff --git a/functions/supplier/tcp-supplier/src/main/java/org/springframework/cloud/fn/supplier/tcp/TcpSupplierProperties.java b/functions/supplier/tcp-supplier/src/main/java/org/springframework/cloud/fn/supplier/tcp/TcpSupplierProperties.java deleted file mode 100644 index d1dafe40..00000000 --- a/functions/supplier/tcp-supplier/src/main/java/org/springframework/cloud/fn/supplier/tcp/TcpSupplierProperties.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import jakarta.validation.constraints.NotNull; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.cloud.fn.common.tcp.Encoding; -import org.springframework.validation.annotation.Validated; - -/** - * Properties for the TCP Source. - * - * @author Gary Russell - * @author Christian Tzolov - * - */ -@ConfigurationProperties("tcp.supplier") -@Validated -public class TcpSupplierProperties { - - /** - * The decoder to use when receiving messages. - */ - private Encoding decoder = Encoding.CRLF; - - /** - * The buffer size used when decoding messages; larger messages will be rejected. - */ - private int bufferSize = 2048; - - @NotNull - public Encoding getDecoder() { - return this.decoder; - } - - public void setDecoder(Encoding decoder) { - this.decoder = decoder; - } - - public int getBufferSize() { - return bufferSize; - } - - public void setBufferSize(int bufferSize) { - this.bufferSize = bufferSize; - } - -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/AbstractTcpSupplierTests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/AbstractTcpSupplierTests.java deleted file mode 100644 index d3ab0995..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/AbstractTcpSupplierTests.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2015-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import java.net.Socket; -import java.util.function.Supplier; - -import javax.net.SocketFactory; - -import reactor.core.publisher.Flux; -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.integration.ip.tcp.connection.AbstractServerConnectionFactory; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for TCP Supplier. - * - * @author Gary Russell - * @author Soby Chacko - * @author Artem Bilan - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, properties = "tcp.port = 0") -@DirtiesContext -public class AbstractTcpSupplierTests { - - @Autowired - Supplier>> tcpSupplier; - - @Autowired - protected AbstractServerConnectionFactory connectionFactory; - - @Autowired - protected TcpSupplierProperties properties; - - /* - * Sends two messages with and asserts the - * payload is received on the other side. - */ - protected void doTest(String prefix, String payload, String suffix) throws Exception { - - final Flux> messageFlux = tcpSupplier.get(); - - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> { - assertThat(message.getPayload()) - .isEqualTo(payload.getBytes()); - } - ) - .assertNext((message) -> { - assertThat(message.getPayload()) - .isEqualTo(payload.getBytes()); - } - ) - .thenCancel() - .verifyLater(); - - - int port = getPort(); - Socket socket = SocketFactory.getDefault().createSocket("localhost", port); - socket.getOutputStream().write((prefix + payload + suffix).getBytes()); - if (prefix.length() == 0 && suffix.length() == 0) { - socket.close(); // RAW - for the others, close AFTER the messages are decoded. - socket = SocketFactory.getDefault().createSocket("localhost", port); - } - - socket.getOutputStream().write((prefix + payload + suffix).getBytes()); - if (prefix.length() == 0 && suffix.length() == 0) { - socket.close(); // RAW - for the others, close AFTER the messages are decoded. - } - socket.close(); - - stepVerifier.verify(); - } - - private int getPort() throws Exception { - int n = 0; - while (n++ < 100 && !this.connectionFactory.isListening()) { - Thread.sleep(100); - } - assertThat(this.connectionFactory.isListening()).isTrue(); - int port = this.connectionFactory.getPort(); - assertThat(port > 0).isTrue(); - return port; - } - - @SpringBootApplication - public static class TcpSupplierTestApplication { - - } -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/CRLFTests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/CRLFTests.java deleted file mode 100644 index a19543cb..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/CRLFTests.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import org.junit.jupiter.api.Test; - -/** - * @author Gary Russell - */ -public class CRLFTests extends AbstractTcpSupplierTests { - - @Test - public void test() throws Exception { - doTest("", "foo", "\r\n"); - } -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L1Tests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L1Tests.java deleted file mode 100644 index 7aec2c43..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L1Tests.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = { "tcp.supplier.decoder = L1" }) -public class L1Tests extends AbstractTcpSupplierTests { - - @Test - public void test() throws Exception { - doTest("\u0003", "foo", ""); - } -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L2Tests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L2Tests.java deleted file mode 100644 index f2d7144c..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L2Tests.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = { "tcp.supplier.decoder = L2" }) -public class L2Tests extends AbstractTcpSupplierTests { - - @Test - public void test() throws Exception { - doTest("\u0000\u0003", "foo", ""); - } -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L4Tests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L4Tests.java deleted file mode 100644 index 1d0210a1..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/L4Tests.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = { "tcp.supplier.decoder = L4" }) -public class L4Tests extends AbstractTcpSupplierTests { - - @Test - public void test() throws Exception { - doTest("\u0000\u0000\u0000\u0003", "foo", ""); - } -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/LFTests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/LFTests.java deleted file mode 100644 index cbb89888..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/LFTests.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = { "tcp.supplier.decoder = LF" }) -public class LFTests extends AbstractTcpSupplierTests { - - @Test - public void test() throws Exception { - doTest("", "foo", "\n"); - } -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/NULLTests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/NULLTests.java deleted file mode 100644 index 9aac7d4a..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/NULLTests.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = { "tcp.supplier.decoder = NULL" }) -public class NULLTests extends AbstractTcpSupplierTests { - - @Test - public void test() throws Exception { - doTest("", "foo", "\u0000"); - } -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/NotNioTests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/NotNioTests.java deleted file mode 100644 index 2d7e039d..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/NotNioTests.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.connection.TcpNetServerConnectionFactory; -import org.springframework.integration.test.util.TestUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Gary Russell - */ -public class NotNioTests extends AbstractTcpSupplierTests { - - @Test - public void test() { - assertThat(this.connectionFactory).isInstanceOf(TcpNetServerConnectionFactory.class); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "lookupHost", Boolean.class)).isFalse(); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "soTimeout")).isEqualTo(120000); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "deserializer.maxMessageSize")).isEqualTo(2048); - } -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/PropertiesPopulatedTests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/PropertiesPopulatedTests.java deleted file mode 100644 index d3aff90a..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/PropertiesPopulatedTests.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.integration.ip.tcp.connection.TcpNioServerConnectionFactory; -import org.springframework.integration.test.util.TestUtils; -import org.springframework.test.context.TestPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = {"tcp.nio = true", "tcp.reverseLookup = true", - "tcp.useDirectBuffers = true", "tcp.socketTimeout = 123", "tcp.supplier.bufferSize = 5"}) -public class PropertiesPopulatedTests extends AbstractTcpSupplierTests { - - @Test - public void test() { - assertThat(this.connectionFactory).isInstanceOf(TcpNioServerConnectionFactory.class); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "lookupHost", Boolean.class)).isTrue(); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "usingDirectBuffers", Boolean.class)).isTrue(); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "soTimeout")).isEqualTo(123); - assertThat(TestUtils.getPropertyValue(this.connectionFactory, "deserializer.maxMessageSize")).isEqualTo(5); - } - -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/RAWTests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/RAWTests.java deleted file mode 100644 index 6ab80d62..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/RAWTests.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = { "tcp.supplier.decoder = RAW" }) -public class RAWTests extends AbstractTcpSupplierTests { - - @Test - public void test() throws Exception { - doTest("", "foo", ""); - } -} diff --git a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/STXETXTests.java b/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/STXETXTests.java deleted file mode 100644 index 1f3111a3..00000000 --- a/functions/supplier/tcp-supplier/src/test/java/org/springframework/cloud/fn/supplier/tcp/STXETXTests.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2015-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.tcp; - -import org.junit.jupiter.api.Test; - -import org.springframework.test.context.TestPropertySource; - -/** - * @author Gary Russell - */ -@TestPropertySource(properties = { "tcp.supplier.decoder = STXETX" }) -public class STXETXTests extends AbstractTcpSupplierTests { - - @Test - public void test() throws Exception { - doTest("\u0002", "foo", "\u0003"); - } -} diff --git a/functions/supplier/time-supplier/README.adoc b/functions/supplier/time-supplier/README.adoc deleted file mode 100644 index 66b2657c..00000000 --- a/functions/supplier/time-supplier/README.adoc +++ /dev/null @@ -1,31 +0,0 @@ -# Time Supplier - -This module provides a Time supplier that can be reused and composed in other applications. -The `Supplier` uses the `FastDateFormat` from Apache Commons library. -`timeSupplier` is implemented as a `java.util.function.Supplier`. - -## Beans for injection - -You can import the `TimeSupplierConfiguration` in the application and then inject the following bean. - -`timeSupplier` - -You need to inject this as `Supplier`. - -You can use `timeSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it. - -## Configuration Options - -All configuration properties are prefixed with `time`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierProperties.java[TimeSupplierProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/time[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/time-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes an Time Source. \ No newline at end of file diff --git a/functions/supplier/time-supplier/pom.xml b/functions/supplier/time-supplier/pom.xml deleted file mode 100644 index 04588491..00000000 --- a/functions/supplier/time-supplier/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - time-supplier - time-supplier - time supplier - - - - org.apache.commons - commons-lang3 - - - - diff --git a/functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/DateFormat.java b/functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/DateFormat.java deleted file mode 100644 index 7e94ef58..00000000 --- a/functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/DateFormat.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.time; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.text.SimpleDateFormat; - -import jakarta.validation.Constraint; -import jakarta.validation.ConstraintValidator; -import jakarta.validation.ConstraintValidatorContext; -import jakarta.validation.Payload; - -/** - * The annotated String must be a valid {@link java.text.SimpleDateFormat} pattern. - * - * @author Eric Bottard - * @author Soby Chacko - */ -@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, - ElementType.PARAMETER}) -@Retention(RetentionPolicy.RUNTIME) -@Documented -@Constraint(validatedBy = {DateFormat.DateFormatValidator.class}) -public @interface DateFormat { - - /** - * Default message for validation. - */ - String DEFAULT_MESSAGE = ""; - - String message() default DEFAULT_MESSAGE; - - Class[] groups() default {}; - - Class[] payload() default {}; - - class DateFormatValidator implements ConstraintValidator { - - private String message; - - @Override - public void initialize(DateFormat constraintAnnotation) { - this.message = constraintAnnotation.message(); - } - - @Override - public boolean isValid(CharSequence value, ConstraintValidatorContext context) { - if (value == null) { - return true; - } - try { - new SimpleDateFormat(value.toString()); - } - catch (IllegalArgumentException e) { - if (DEFAULT_MESSAGE.equals(this.message)) { - context.disableDefaultConstraintViolation(); - context.buildConstraintViolationWithTemplate(e.getMessage()).addConstraintViolation(); - } - return false; - } - return true; - } - - } - -} diff --git a/functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierConfiguration.java b/functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierConfiguration.java deleted file mode 100644 index b58b8f1b..00000000 --- a/functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierConfiguration.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.time; - -import java.util.Date; -import java.util.function.Supplier; - -import org.apache.commons.lang3.time.FastDateFormat; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * @author Soby Chacko - */ -@Configuration -@EnableConfigurationProperties(TimeSupplierProperties.class) -public class TimeSupplierConfiguration { - - @Bean - public Supplier timeSupplier(TimeSupplierProperties timeSupplierProperties) { - FastDateFormat fastDateFormat = FastDateFormat.getInstance(timeSupplierProperties.getDateFormat()); - return () -> fastDateFormat.format(new Date()); - } - -} diff --git a/functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierProperties.java b/functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierProperties.java deleted file mode 100644 index 5c6df97c..00000000 --- a/functions/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierProperties.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.time; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * @author Soby Chacko - */ -@ConfigurationProperties("time") -@Validated -public class TimeSupplierProperties { - - /** - * Format for the date value. - */ - private String dateFormat = "MM/dd/yy HH:mm:ss"; - - @DateFormat - public String getDateFormat() { - return this.dateFormat; - } - - public void setDateFormat(String dateFormat) { - this.dateFormat = dateFormat; - } - -} diff --git a/functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/SimpleTimeSupplierTests.java b/functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/SimpleTimeSupplierTests.java deleted file mode 100644 index 6777c8ad..00000000 --- a/functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/SimpleTimeSupplierTests.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.time; - -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatCode; - -/** - * @author Soby Chacko - * @author Artem Bilan - */ -public class SimpleTimeSupplierTests extends TimeSupplierApplicationTests { - - @Test - public void testTimeSupplier() { - final String time = timeSupplier.get(); - SimpleDateFormat dateFormat = new SimpleDateFormat(new TimeSupplierProperties().getDateFormat()); - assertThatCode(() -> { - Date date = dateFormat.parse(time); - assertThat(date).isNotNull(); - }).doesNotThrowAnyException(); - } - -} diff --git a/functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/TimeSupplierApplicationTests.java b/functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/TimeSupplierApplicationTests.java deleted file mode 100644 index 2812f492..00000000 --- a/functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/TimeSupplierApplicationTests.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.time; - -import java.util.function.Supplier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * @author Soby Chacko - * @author Artem Bilan - */ -@SpringBootTest -public abstract class TimeSupplierApplicationTests { - - @Autowired - Supplier timeSupplier; - - @Autowired - TimeSupplierProperties timeSupplierProperties; - - protected abstract void testTimeSupplier(); - - @SpringBootApplication - static class TimeSupplierTestApplication { - } -} diff --git a/functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/VariationToSimpleTests.java b/functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/VariationToSimpleTests.java deleted file mode 100644 index c33edb35..00000000 --- a/functions/supplier/time-supplier/src/test/java/org/springframework/cloud/fn/supplier/time/VariationToSimpleTests.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.time; - -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.test.context.SpringBootTest; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatCode; -import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; - -/** - * @author Soby Chacko - * @author Artem Bilan - */ -@SpringBootTest({"time.dateFormat=MMddyyyy HH:mm:ss"}) -public class VariationToSimpleTests extends TimeSupplierApplicationTests { - - @Test - public void testTimeSupplier() { - final String time = timeSupplier.get(); - SimpleDateFormat dateFormat = new SimpleDateFormat(timeSupplierProperties.getDateFormat()); - assertThatCode(() -> { - Date date = dateFormat.parse(time); - assertThat(date).isNotNull(); - }).doesNotThrowAnyException(); - } - - @Test - public void testInvalidDateFormat() { - TimeSupplierProperties timeSupplierProperties = new TimeSupplierProperties(); - timeSupplierProperties.setDateFormat("AA/dd/yyyy HH:mm:ss"); - assertThatIllegalArgumentException().isThrownBy(() -> new SimpleDateFormat(timeSupplierProperties.getDateFormat())); - } - -} diff --git a/functions/supplier/twitter-supplier/README.adoc b/functions/supplier/twitter-supplier/README.adoc deleted file mode 100644 index 9c795586..00000000 --- a/functions/supplier/twitter-supplier/README.adoc +++ /dev/null @@ -1,143 +0,0 @@ -# Twitter Suppliers - -This module provides a Twitter Status, Message, Friendship suppliers that can be reused and composed in various applications. - -`java.util.function.Supplier` - - -## 1. Twitter Status Search - -The Twitter's https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets.html[Standard search API] (search/tweets) allows simple queries against the indices of recent or popular Tweets. This `Source` provides continuous searches against a sampling of recent Tweets published in the past 7 days. Part of the 'public' set of APIs. - -Returns a collection of relevant Tweets matching a specified query. - -### 1.1 Beans for injection - -You can import the `TwitterSearchSupplierConfiguration` in the application and then inject the following bean. - -`twitterSearchSupplier` - -You need to inject this as `Supplier>`. - -You can use `twitterSearchSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it. - -### 1.2 Configuration Options - -The configuration properties prefixed with `twitter.search`. -There are also properties that need to be used with the prefix `twitter.connection`. - -The `spring.cloud.stream.poller` properties control the interval between consecutive search requests. Rate Limit - 180 requests per 30 min. window (e.g. ~6 r/m, ~ 1 req / 10 sec.) - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/twitter/search/stream/TwitterSearchSupplierProperties.java[TwitterSearchSupplierProperties]. -See link:src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionProperties.java[TwitterConnectionProperties] and https://github.com/spring-cloud/spring-cloud-stream/blob/master/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/DefaultPollerProperties.java[DefaultPollerProperties] - -### 1.3 Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/twitter-search-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a Twitter Search Source. - -## 2. Twitter Status Real-time Retrieval - -Provides real-time, Tweet streaming based on the https://developer.twitter.com/en/docs/tweets/filter-realtime/api-reference/post-statuses-filter.html[Filter] and https://developer.twitter.com/en/docs/tweets/sample-realtime/overview/GET_statuse_sample[Sample] APIs. -The `Filter API` flavor returns public statuses that match one or more filter predicates. -The `Sample API` flavor returns a small random sample of all public statuses. - -This supplier gives you a reactive stream of tweets from the configured connection as the supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and receive the data. - -The default access level allows up to 400 track keywords, 5,000 follow user Ids and 25 0.1-360 degree location boxes. - -### 2.1 Beans for injection - -You can import the `TwitterStreamSupplierConfiguration` in the application and then inject the following bean. - -`twitterStreamSupplier` - -You need to inject this as `Supplier>>`. - -You can use `twitterStreamSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -### 2.2 Configuration Options - -All configuration properties are prefixed with `twitter.stream`. -There are also properties that need to be used with the prefix `twitter.connection`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierProperties.java[TwitterStreamSupplierProperties]. -See link:src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionProperties.java[TwitterConnectionProperties] also. - - -### 2.3 Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/twitter-stream-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a Twitter Stream Source. - -## 3. Twitter Direct Message Supplier - -Repeatedly retrieves the direct messages (both sent and received) within the last 30 days, sorted in reverse-chronological order. -The relieved messages are cached (in a `MetadataStore` cache) to prevent duplications. -By default an in-memory `SimpleMetadataStore` is used. - -The `twitter.message.source.count` controls the number or returned messages. - -The `spring.cloud.stream.poller` properties control the message poll interval. -Must be aligned with used APIs rate limit - -### 3.1 Beans for injection - -You can import the `TwitterMessageSupplierConfiguration` in the application and then inject the following bean. - -`twitterMessageSupplier` - -You need to inject this as `Supplier>`. - -You can use `twitterMessageSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it. - -### 3.2 Configuration Options - -The configuration properties prefixed with `twitter.search`. -There are also properties that need to be used with the prefix `twitter.connection`. - -The `spring.cloud.stream.poller` properties control the interval between consecutive search requests. Rate Limit - 180 requests per 30 min. window (e.g. ~6 r/m, ~ 1 req / 10 sec.) - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/twitter/message/TwitterMessageSupplierProperties.java[TwitterMessageSupplierProperties]. -See link:src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionProperties.java[TwitterConnectionProperties] and https://github.com/spring-cloud/spring-cloud-stream/blob/master/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/DefaultPollerProperties.java[DefaultPollerProperties] - -### 3.3 Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/twitter-message-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a Twitter Message Source. - -## 4. Twitter Friendships Supplier - -Returns a cursored collection of user objects either for the https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-followers-list[users following the specified user] (`followers`) or for https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friends-list[every user the specified user is following] (`friends`). - -The `twitter.friendships.source.type` property allow to select between both types. - -TIP: Rate limit: 15 requests per 30 min window. ~ 1 req/ 2 min - -### 4.1 Beans for injection - -You can import the `TwitterFriendshipsSupplierConfiguration` in the application and then inject one the following beans. - -- `followersSupplier` (only if `twitter.friendships.source.type=followers` ) - retrieves the https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-followers-list[users following the specified user] (`followers`) - -- `friendsSupplier` (only if `twitter.friendships.source.type=friends`) - retrieves the for https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friends-list[every user the specified user is following] (`friends`). - -Both suppliers expose `Supplier>`. - -- `deduplicatedFriendsJsonSupplier` - retrieves either the followers, or the friends collection (controlled by the `twitter.friendships.source.type`) property, . -encoded as JSON `Message` payloads. You need to inject this as `Supplier>`. - - -### 4.2 Configuration Options - -The configuration properties prefixed with `twitter.friendships.source`. -There are also properties that need to be used with the prefix `twitter.connection`. - -The `spring.cloud.stream.poller` properties control the interval between consecutive search requests. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/twitter/friendships/TwitterFriendshipsSupplierProperties.java[TwitterFriendshipsSupplierProperties]. -See link:src/main/java/org/springframework/cloud/fn/common/twitter/TwitterConnectionProperties.java[TwitterConnectionProperties] and https://github.com/spring-cloud/spring-cloud-stream/blob/master/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/DefaultPollerProperties.java[DefaultPollerProperties] diff --git a/functions/supplier/twitter-supplier/pom.xml b/functions/supplier/twitter-supplier/pom.xml deleted file mode 100644 index 4d33b853..00000000 --- a/functions/supplier/twitter-supplier/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/friendships/TwitterFriendshipsSupplierConfiguration.java b/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/friendships/TwitterFriendshipsSupplierConfiguration.java deleted file mode 100644 index 58587056..00000000 --- a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/friendships/TwitterFriendshipsSupplierConfiguration.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.friendships; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Function; -import java.util.function.Supplier; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import twitter4j.PagableResponseList; -import twitter4j.Twitter; -import twitter4j.TwitterException; -import twitter4j.User; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.twitter.Cursor; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.integration.metadata.MetadataStore; -import org.springframework.integration.metadata.SimpleMetadataStore; -import org.springframework.messaging.Message; - -/** - * - * @author Christian Tzolov - */ -@Configuration -@EnableConfigurationProperties(TwitterFriendshipsSupplierProperties.class) -@Import(TwitterConnectionConfiguration.class) -public class TwitterFriendshipsSupplierConfiguration { - - private static final Log logger = LogFactory.getLog(TwitterFriendshipsSupplierConfiguration.class); - - @Bean - @ConditionalOnMissingBean - public MetadataStore metadataStore() { - return new SimpleMetadataStore(); - } - - @Bean - @ConditionalOnMissingBean - public Cursor cursor() { - return new Cursor(); - } - - - @Bean - @ConditionalOnProperty(name = "twitter.friendships.source.type", havingValue = "followers") - public Supplier> followersSupplier(TwitterFriendshipsSupplierProperties properties, - Twitter twitter, Cursor cursorState) { - return () -> { - try { - PagableResponseList users; - if (properties.getUserId() != null) { - users = twitter.getFollowersList(properties.getUserId(), cursorState.getCursor(), - properties.getCount(), properties.isSkipStatus(), properties.isIncludeUserEntities()); - } - else { // by ScreenName - users = twitter.getFollowersList(properties.getScreenName(), cursorState.getCursor(), - properties.getCount(), properties.isSkipStatus(), properties.isIncludeUserEntities()); - } - - if (users != null) { - cursorState.updateCursor(users.getNextCursor()); - return users; - } - - logger.error(String.format("NULL users response for properties: %s and cursor: %s!", properties, cursorState)); - cursorState.updateCursor(-1); - } - catch (TwitterException e) { - logger.error("Twitter API error:", e); - } - - return new ArrayList<>(); - }; - } - - @Bean - @ConditionalOnProperty(name = "twitter.friendships.source.type", havingValue = "friends") - public Supplier> friendsSupplier(TwitterFriendshipsSupplierProperties properties, - Twitter twitter, Cursor cursorState) { - return () -> { - try { - PagableResponseList users; - if (properties.getUserId() != null) { - users = twitter.getFriendsList(properties.getUserId(), cursorState.getCursor(), - properties.getCount(), properties.isSkipStatus(), properties.isIncludeUserEntities()); - } - else { // by ScreenName - users = twitter.getFriendsList(properties.getScreenName(), cursorState.getCursor(), - properties.getCount(), properties.isSkipStatus(), properties.isIncludeUserEntities()); - } - - if (users != null) { - cursorState.updateCursor(users.getNextCursor()); - return users; - } - - logger.error(String.format("NULL users response for properties: %s and cursor: %s!", properties, cursorState)); - cursorState.updateCursor(-1); - } - catch (TwitterException e) { - logger.error("Twitter API error:", e); - } - - return new ArrayList<>(); - }; - } - - @Bean - public Function, List> userDeduplicate(MetadataStore metadataStore) { - return users -> { - List uniqueUsers = new ArrayList<>(); - for (User user : users) { - if (metadataStore.get(user.getId() + "") == null) { - metadataStore.put(user.getId() + "", user.getName()); - uniqueUsers.add(user); - } - } - return uniqueUsers; - }; - } - - @Bean - public Supplier> deduplicatedFriendsJsonSupplier(Function, List> userDeduplication, - Supplier> userRetriever, Function> managedJson) { - return () -> userDeduplication.andThen(managedJson).apply(userRetriever.get()); - } -} diff --git a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/friendships/TwitterFriendshipsSupplierProperties.java b/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/friendships/TwitterFriendshipsSupplierProperties.java deleted file mode 100644 index 4031e5c3..00000000 --- a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/friendships/TwitterFriendshipsSupplierProperties.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.friendships; - -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.Max; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Positive; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("twitter.friendships.source") -@Validated -public class TwitterFriendshipsSupplierProperties { - - public enum FriendshipsRequestType { - /** Friendship query types. */ - followers, friends - } - - /** - * Selects between followers or friends APIs. - */ - @NotNull - private TwitterFriendshipsSupplierProperties.FriendshipsRequestType type = FriendshipsRequestType.followers; - - /** - * The screen name of the user for whom to return results. - */ - private String screenName; - - /** - * The ID of the user for whom to return results. - */ - private Long userId; - - /** - * The number of users to return per page, up to a maximum of 200. Defaults to 20. - */ - @Positive - @Max(200) - private int count = 200; - - /** - * When set to true, statuses will not be included in the returned user objects. - */ - private boolean skipStatus = false; - - /** - * The user object entities node will be included when set to false. - */ - private boolean includeUserEntities = true; - - /** - * API request poll interval in milliseconds. Must be aligned with used APIs rate limits (~ 1 req/ 2 min). - */ - private int pollInterval = 121000; - - public FriendshipsRequestType getType() { - return type; - } - - public void setType(FriendshipsRequestType type) { - this.type = type; - } - - public String getScreenName() { - return screenName; - } - - public void setScreenName(String screenName) { - this.screenName = screenName; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public int getCount() { - return count; - } - - public void setCount(int count) { - this.count = count; - } - - public boolean isSkipStatus() { - return skipStatus; - } - - public void setSkipStatus(boolean skipStatus) { - this.skipStatus = skipStatus; - } - - public boolean isIncludeUserEntities() { - return includeUserEntities; - } - - public void setIncludeUserEntities(boolean includeUserEntities) { - this.includeUserEntities = includeUserEntities; - } - - public int getPollInterval() { - return pollInterval; - } - - public void setPollInterval(int pollInterval) { - this.pollInterval = pollInterval; - } - - @AssertTrue(message = "Either userId or screenName must be provided") - public boolean isUserProvided() { - return this.userId != null || this.screenName != null; - } - - @Override - public String toString() { - return "TwitterFriendshipsSourceProperties{" + - "type=" + type + - ", screenName='" + screenName + '\'' + - ", userId=" + userId + - ", count=" + count + - ", skipStatus=" + skipStatus + - ", includeUserEntities=" + includeUserEntities + - ", pollInterval=" + pollInterval + - '}'; - } -} diff --git a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/message/TwitterMessageSupplierConfiguration.java b/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/message/TwitterMessageSupplierConfiguration.java deleted file mode 100644 index cc921f00..00000000 --- a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/message/TwitterMessageSupplierConfiguration.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.message; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Function; -import java.util.function.Supplier; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import twitter4j.DirectMessage; -import twitter4j.DirectMessageList; -import twitter4j.Twitter; -import twitter4j.TwitterException; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; -import org.springframework.integration.metadata.MetadataStore; -import org.springframework.integration.metadata.SimpleMetadataStore; -import org.springframework.messaging.Message; - -/** - * - * @author Christian Tzolov - */ -@EnableConfigurationProperties({ TwitterMessageSupplierProperties.class }) -@Import(TwitterConnectionConfiguration.class) -public class TwitterMessageSupplierConfiguration { - - private static final Log logger = LogFactory.getLog(TwitterMessageSupplierConfiguration.class); - - @Bean - @ConditionalOnMissingBean - public MetadataStore metadataStore() { - return new SimpleMetadataStore(); - } - - @Bean - @ConditionalOnMissingBean - public MessageCursor cursor() { - return new MessageCursor(); - } - - @Bean - public Supplier> directMessagesSupplier(TwitterMessageSupplierProperties properties, - Twitter twitter, MessageCursor cursorState) { - return () -> { - try { - String cs = cursorState.getCursor(); - DirectMessageList messages = (cursorState.getCursor() == null) ? - twitter.getDirectMessages(properties.getCount()) : - twitter.getDirectMessages(properties.getCount(), cursorState.getCursor()); - - if (messages != null) { - cursorState.updateCursor(messages.getNextCursor()); - return messages; - } - - logger.error(String.format("NULL messages response for properties: %s and cursor: %s!", properties, cursorState)); - cursorState.updateCursor(null); - } - catch (TwitterException e) { - logger.error("Twitter API error:", e); - } - - return new ArrayList<>(); - }; - } - - @Bean - public Function, List> messageDeduplicate(MetadataStore metadataStore) { - return messages -> { - List uniqueMessages = new ArrayList<>(); - for (DirectMessage message : messages) { - if (metadataStore.get(message.getId() + "") == null) { - metadataStore.put(message.getId() + "", message.getCreatedAt() + ""); - uniqueMessages.add(message); - } - } - return uniqueMessages; - }; - } - - @Bean - public Supplier> twitterMessageSupplier(Function, List> messageDeduplicate, - Function> managedJson, Supplier> directMessagesSupplier) { - return () -> messageDeduplicate.andThen(managedJson).apply(directMessagesSupplier.get()); - } - - public static class MessageCursor { - private String cursor = null; - - public String getCursor() { - return cursor; - } - - public void updateCursor(String newCursor) { - this.cursor = newCursor; - } - - @Override - public String toString() { - return "Cursor{" + - "cursor=" + cursor + - '}'; - } - } -} diff --git a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/message/TwitterMessageSupplierProperties.java b/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/message/TwitterMessageSupplierProperties.java deleted file mode 100644 index dedee2fd..00000000 --- a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/message/TwitterMessageSupplierProperties.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.message; - -import jakarta.validation.constraints.Max; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("twitter.message.source") -@Validated -public class TwitterMessageSupplierProperties { - - /** - * Max number of events to be returned. 20 default. 50 max. - */ - @Max(50) - private int count = 20; - - public int getCount() { - return count; - } - - public void setCount(int count) { - this.count = count; - } -} diff --git a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/SearchPagination.java b/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/SearchPagination.java deleted file mode 100644 index c13a15a2..00000000 --- a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/SearchPagination.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.status.search; - -import java.util.List; - -import twitter4j.Status; - -import org.springframework.util.Assert; - -/** - * Searched tweets are ordered from top to bottom by their IDs. The higher the ID, more recent the tweet is. - * - * The search goes backwards - from most recent to the oldest tweets and it uses the sinceId and the maxId to retrieve - * only tweets with IDs in the [sinceId, maxId) range. The -1 stands for unbounded sinceId or maxId. - * - * The first `pageCount` number requests are performed backwards, leaving the bottom boundary (sinceId) unbounded and - * adjusting the upper boundary (maxId) to the lowest tweet ID received. This ensures that no already processed - * tweets are returned. - * - * The pageCounter is used the to count the number of pages retrieved in the pageCount range. Is starts from pageCount - * and goes backward until 0. On 0 the pageCounter is reset back to pageCount. - * - * After performing pageCount number requests (e.g. pageCounter = 0), we start new iteration of searches from the top, - * most recent tweets but now the bottom boundary (sinceId) is adjusted to the max ID received so far. That means that - * only the newly added tweets will be processed - * - * Search pagination with max_id and since_id: https://developer.twitter.com/en/docs/tweets/timelines/guides/working-with-timelines.html - * - * @author Christian Tzolov - */ -public class SearchPagination { - - /** - * Wildcard used as refer as infinity. - */ - public static final long UNBOUNDED = -1; - - /** - * Number of pages to search in history before start form the top again. - * - * Note that the search goes backwards - from most recent to the oldest tweets. - * (eg. maxId == To max ID , sinceId == From min ID) - */ - private final int pageCount; - - /** - * Min tweet ID (e.g. from ID) to be included in the search result - */ - private long sinceId; - - /** - * Keep the max tweet ID in the last pageCount search requests. - */ - private long pageMaxId; - - /** - * Max tweet ID (e.g. To (ID - 1) )to be included in the search result - */ - private long maxId; - - /** - * Current page. Goes backwards from (pageCount-1) to 0. - */ - private int pageCounter; - - /** - * When set it. - */ - boolean searchBackwardsUntilEmptyResponse = false; - - public SearchPagination(int pageCount, boolean searchBackwardsUntilEmptyResponse) { - - Assert.isTrue(pageCount > 0, "At least one page needs to be set but was: " + pageCount); - - this.searchBackwardsUntilEmptyResponse = searchBackwardsUntilEmptyResponse; - this.pageCount = pageCount; - this.sinceId = UNBOUNDED; // == From ID - this.pageMaxId = UNBOUNDED; // == From ID - this.maxId = UNBOUNDED; // == To (ID - 1) - this.pageCounter = pageCount - 1; - } - - public long getSinceId() { - return sinceId; - } - - public long getMaxId() { - return maxId; - } - - public long getPageMaxId() { - return pageMaxId; - } - - public int getPageCounter() { - return pageCounter; - } - - public void update(List tweets) { - - tweets.stream().mapToLong(t -> t.getId()).min() - .ifPresent(tweetsMinId -> { - this.maxId = tweetsMinId - 1; - }); - - tweets.stream().mapToLong(t -> t.getId()).max() - .ifPresent(tweetsMaxId -> { - Assert.isTrue(this.sinceId <= tweetsMaxId, - String.format("MAX_ID (%s) must be bigger then current SINCE_ID(%s)", - tweetsMaxId, this.sinceId)); - this.pageMaxId = Math.max(this.pageMaxId, tweetsMaxId); - }); - - this.countDown(tweets.size()); - } - - private void countDown(int responseSize) { - - if (this.sinceId == UNBOUNDED) { // == first pass before reset - if (this.pageCounter <= 0) { - this.restartSearchFromMostRecent(); - } - } - else { - if (this.searchBackwardsUntilEmptyResponse) { - if (responseSize == 0) { - this.restartSearchFromMostRecent(); - } - } - else if (this.pageCounter <= 0) { - this.restartSearchFromMostRecent(); - } - } - - this.pageCounter--; - } - - private void restartSearchFromMostRecent() { - this.pageCounter = this.pageCount; - - this.sinceId = Math.max(this.sinceId, Math.max(this.maxId + 1, this.pageMaxId)); - - this.maxId = UNBOUNDED; - this.pageMaxId = UNBOUNDED; - } - - public String status() { - return String.format("MaxId: %s, SinceId: %s, Page Counter# %s, pageMaxId: %s", - this.maxId, this.sinceId, this.pageCounter, this.pageMaxId); - } -} diff --git a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/TwitterSearchSupplierConfiguration.java b/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/TwitterSearchSupplierConfiguration.java deleted file mode 100644 index 8b04df48..00000000 --- a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/TwitterSearchSupplierConfiguration.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2020-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.status.search; - -import java.util.List; -import java.util.function.Function; -import java.util.function.Supplier; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import twitter4j.GeoLocation; -import twitter4j.Query; -import twitter4j.QueryResult; -import twitter4j.Status; -import twitter4j.Twitter; -import twitter4j.TwitterException; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; -import org.springframework.messaging.Message; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; - -/** - * Search pagination with max_id and since_id: https://developer.twitter.com/en/docs/tweets/timelines/guides/working-with-timelines.html . - * - * @author Christian Tzolov - * @author Chris Bono - */ -@EnableConfigurationProperties({ TwitterSearchSupplierProperties.class }) -@Import(TwitterConnectionConfiguration.class) -public class TwitterSearchSupplierConfiguration { - - private static final Log logger = LogFactory.getLog(TwitterSearchSupplierConfiguration.class); - - @Autowired - private TwitterSearchSupplierProperties searchProperties; - - @Autowired - private Twitter twitter; - - @Autowired - private Function> json; - - @Bean - public SearchPagination searchPage() { - return new SearchPagination( - this.searchProperties.getPage(), - this.searchProperties.isRestartFromMostRecentOnEmptyResponse()); - } - - - @Bean - public Supplier> twitterSearchSupplier(SearchPagination searchPage) { - return () -> { - try { - Query query = toQuery(this.searchProperties, searchPage); - - QueryResult result = this.twitter.search(query); - - List tweets = result.getTweets(); - - logger.info(String.format("%s, size: %s", searchPage.status(), tweets.size())); - - searchPage.update(tweets); - - return this.json.apply(tweets); - } - catch (TwitterException e) { - logger.error("Twitter error", e); - } - - return null; - }; - } - - private Query toQuery(TwitterSearchSupplierProperties searchProperties, SearchPagination pagination) { - - Query query = new Query(); - if (searchProperties.getCount() > 0) { - query.count(searchProperties.getCount()); - } - if (StringUtils.hasText(searchProperties.getQuery())) { - query.setQuery(searchProperties.getQuery()); - } - if (StringUtils.hasText(searchProperties.getLang())) { - query.setLang(searchProperties.getLang()); - } - if (StringUtils.hasText(searchProperties.getSince())) { - query.setSince(searchProperties.getSince()); - } - if (searchProperties.getGeocode().isValid()) { - query.setGeoCode( - new GeoLocation( - searchProperties.getGeocode().getLatitude(), - searchProperties.getGeocode().getLongitude()), - searchProperties.getGeocode().getRadius(), - Query.KILOMETERS); - } - - if (searchProperties.getResultType() != Query.ResultType.mixed) { - query.setResultType(searchProperties.getResultType()); - } - - if (pagination.getSinceId() > 0) { - query.setSinceId(pagination.getSinceId()); - } - if (pagination.getMaxId() > 0) { - query.setMaxId(pagination.getMaxId()); - - Assert.isTrue(pagination.getMaxId() >= (pagination.getSinceId() - 1), - String.format("For non empty MAX_ID, The MAX_ID (%s) must always be bigger than [SINCE_ID -1](%s)", - pagination.getMaxId(), (pagination.getSinceId() - 1))); - } - - return query; - } -} diff --git a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/TwitterSearchSupplierProperties.java b/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/TwitterSearchSupplierProperties.java deleted file mode 100644 index 2cc9d726..00000000 --- a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/search/TwitterSearchSupplierProperties.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.status.search; - -import jakarta.validation.constraints.Max; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; -import jakarta.validation.constraints.Positive; -import twitter4j.Query; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("twitter.search") -@Validated -public class TwitterSearchSupplierProperties { - - /** - * Search tweets by search query string. - */ - @NotNull - @NotEmpty - private String query; - - /** - * Number of pages (e.g. requests) to search backwards (from most recent to the oldest tweets) before start - * the search from the most recent tweets again. - * The total amount of tweets searched backwards is (page * count) - */ - @Positive - private int page = 3; - - /** - * Number of tweets to return per page (e.g. per single request), up to a max of 100. - */ - @Positive - @Max(100) - private int count = 100; - - /** - * Restricts searched tweets to the given language, given by an http://en.wikipedia.org/wiki/ISO_639-1 . - */ - private String lang = null; - - /** - * If specified, returns tweets with since the given date. Date should be formatted as YYYY-MM-DD. - */ - @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$") - private String since = null; - - /** - * If specified, returns tweets by users located within a given radius (in Km) of the given latitude/longitude, - * where the user's location is taken from their Twitter profile. - * Should be formatted as - */ - private Geocode geocode = new Geocode(); - - /** - * Specifies what type of search results you would prefer to receive. - * The current default is "mixed." Valid values include: - * mixed : Include both popular and real time results in the response. - * recent : return only the most recent results in the response - * popular : return only the most popular results in the response - */ - @NotNull - private Query.ResultType resultType = Query.ResultType.mixed; - - /** - * Restart search from the most recent tweets on empty response. - * Applied only after the first restart (e.g. when since_id != UNBOUNDED) - */ - private boolean restartFromMostRecentOnEmptyResponse = false; - - public String getQuery() { - return query; - } - - public void setQuery(String query) { - this.query = query; - } - - public String getLang() { - return lang; - } - - public void setLang(String lang) { - this.lang = lang; - } - - public int getPage() { - return page; - } - - public void setPage(int page) { - this.page = page; - } - - public int getCount() { - return count; - } - - public void setCount(int count) { - this.count = count; - } - - public String getSince() { - return since; - } - - public void setSince(String since) { - this.since = since; - } - - public Geocode getGeocode() { - return geocode; - } - - public Query.ResultType getResultType() { - return resultType; - } - - public void setResultType(Query.ResultType resultType) { - this.resultType = resultType; - } - - public boolean isRestartFromMostRecentOnEmptyResponse() { - return restartFromMostRecentOnEmptyResponse; - } - - public void setRestartFromMostRecentOnEmptyResponse(boolean restartFromMostRecentOnEmptyResponse) { - this.restartFromMostRecentOnEmptyResponse = restartFromMostRecentOnEmptyResponse; - } - - public static class Geocode { - - /** - * User's latitude. - */ - private double latitude = -1; - - /** - * User's longitude. - */ - private double longitude = -1; - - /** - * Radius (in kilometers) around the (latitude, longitude) point. - */ - private double radius = -1; - - public double getLatitude() { - return latitude; - } - - public void setLatitude(double latitude) { - this.latitude = latitude; - } - - public double getLongitude() { - return longitude; - } - - public void setLongitude(double longitude) { - this.longitude = longitude; - } - - public double getRadius() { - return radius; - } - - public void setRadius(double radius) { - this.radius = radius; - } - - public boolean isValid() { - return this.radius > 0; - } - } -} diff --git a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierConfiguration.java b/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierConfiguration.java deleted file mode 100644 index 9f9ee239..00000000 --- a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierConfiguration.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright 2020-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.status.stream; - -import java.util.function.Supplier; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import reactor.core.publisher.Flux; -import twitter4j.StallWarning; -import twitter4j.Status; -import twitter4j.StatusDeletionNotice; -import twitter4j.StatusListener; -import twitter4j.TwitterStream; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; -import org.springframework.integration.channel.FluxMessageChannel; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; -import org.springframework.messaging.support.MessageBuilder; -import org.springframework.util.MimeTypeUtils; - -/** - * - * @author Christian Tzolov - */ - -@EnableConfigurationProperties({ TwitterStreamSupplierProperties.class, TwitterConnectionProperties.class }) -@Import(TwitterConnectionConfiguration.class) -public class TwitterStreamSupplierConfiguration { - - private static final Log logger = LogFactory.getLog(TwitterStreamSupplierConfiguration.class); - - @Bean - public FluxMessageChannel twitterStatusInputChannel() { - return new FluxMessageChannel(); - } - - @Bean - public StatusListener twitterStatusListener(FluxMessageChannel twitterStatusInputChannel, TwitterStream twitterStream, - ObjectMapper objectMapper) { - - StatusListener statusListener = new StatusListener() { - - @Override - public void onException(Exception e) { - logger.error("Status Error: ", e); - throw new RuntimeException("Status Error: ", e); - } - - @Override - public void onDeletionNotice(StatusDeletionNotice arg) { - logger.info("StatusDeletionNotice: " + arg); - } - - @Override - public void onScrubGeo(long userId, long upToStatusId) { - logger.info("onScrubGeo: " + userId + ", " + upToStatusId); - } - - @Override - public void onStallWarning(StallWarning warning) { - logger.warn("Stall Warning: " + warning); - throw new RuntimeException("Stall Warning: " + warning); - } - - @Override - public void onStatus(Status status) { - - try { - String json = objectMapper.writeValueAsString(status); - Message message = MessageBuilder.withPayload(json.getBytes()) - .setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE) - .build(); - twitterStatusInputChannel.send(message); - } - catch (JsonProcessingException e) { - logger.error("Status to JSON conversion error!", e); - throw new RuntimeException("Status to JSON conversion error!", e); - } - } - - @Override - public void onTrackLimitationNotice(int numberOfLimitedStatuses) { - logger.warn("Track Limitation Notice: " + numberOfLimitedStatuses); - } - }; - - twitterStream.addListener(statusListener); - - return statusListener; - } - - @Bean - public Supplier>> twitterStreamSupplier(TwitterStream twitterStream, - FluxMessageChannel twitterStatusInputChannel, TwitterStreamSupplierProperties streamProperties) { - - return () -> Flux.from(twitterStatusInputChannel) - .doOnSubscribe(subscription -> { - try { - switch (streamProperties.getType()) { - - case filter: - twitterStream.filter(streamProperties.getFilter().toFilterQuery()); - return; - - case sample: - twitterStream.sample(); - return; - - case firehose: - twitterStream.firehose(streamProperties.getFilter().getCount()); - return; - - case link: - twitterStream.links(streamProperties.getFilter().getCount()); - return; - default: - throw new IllegalArgumentException("Unknown stream type:" + streamProperties.getType()); - } - } - catch (Exception e) { - this.logger.error("Filter is not property set"); - } - }) - .doAfterTerminate(() -> { - this.logger.info("Proactive cancel for twitter stream"); - twitterStream.shutdown(); - }) - .doOnError(throwable -> { - this.logger.error(throwable.getMessage(), throwable); - }); - } -} diff --git a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierProperties.java b/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierProperties.java deleted file mode 100644 index 6de5b11e..00000000 --- a/functions/supplier/twitter-supplier/src/main/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierProperties.java +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.status.stream; - -import java.util.ArrayList; -import java.util.List; - -import twitter4j.FilterQuery; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.util.CollectionUtils; -import org.springframework.validation.annotation.Validated; - -/** - * @author Christian Tzolov - */ -@ConfigurationProperties("twitter.stream") -@Validated -public class TwitterStreamSupplierProperties { - - public enum StreamType { - /** Starts listening on random sample of all public statuses. The default access level provides a small - * proportion of the Firehose. */ - sample, - - /** Start consuming public statuses that match one or more filter predicates. At least one predicate parameter, - * follow, locations, or track must be specified. Multiple parameters may be specified which allows most - * clients to use a single connection to the Streaming API. Placing long parameters in the URL may cause the - * request to be rejected for excessive URL length.
    - * The default access level allows up to 200 track keywords, 400 follow userids and 10 1-degree location boxes. - * Increased access levels allow 80,000 follow userids ('shadow' role), 400,000 follow userids ('birddog' role), - * 10,000 track keywords ('restricted track' role), 200,000 track keywords ('partner track' role), - * and 200 10-degree location boxes ('locRestricted' role). Increased track access levels also pass a higher - * proportion of statuses before limiting the stream.*/ - filter, - - /** tarts listening on all public statuses. Available only to approved parties and requires a signed agreement - * to access. */ - firehose, - - /** Starts listening on all public statuses containing links. - * Available only to approved parties and requires a signed agreement to access.*/ - link - } - - private StreamType type = StreamType.sample; - - private Filter filter = new Filter(); - - public Filter getFilter() { - return filter; - } - - public StreamType getType() { - return type; - } - - public void setType(StreamType type) { - this.type = type; - } - - public static class Filter { - - public enum FilterLevel { - /** filter level. */ - all, none, low, medium - } - - /** - * Indicates the number of previous statuses to stream before transitioning to the live stream. - */ - private int count = 0; - - /** - * Specifies the users, by ID, to receive public tweets from. - */ - private List follow; - - /** - * Specifies keywords to track. - */ - private List track; - - - /** - * Locations to track. Internally represented as 2D array. - * Bounding box is invalid: 52.38, 4.90, 51.51, -0.12. The first pair must be the SW corner of the box - */ - private List locations = new ArrayList<>(); - - - /** - * Specifies the tweets language of the stream. - */ - private List language; - - /** - * The filter level limits what tweets appear in the stream to those with a minimum filterLevel attribute value. - * One of either none, low, or medium. - */ - private FilterLevel filterLevel = FilterLevel.all; - - public int getCount() { - return count; - } - - public void setCount(int count) { - this.count = count; - } - - public List getFollow() { - return follow; - } - - public void setFollow(List follow) { - this.follow = follow; - } - - public List getTrack() { - return track; - } - - public void setTrack(List track) { - this.track = track; - } - - public List getLanguage() { - return language; - } - - public void setLanguage(List language) { - this.language = language; - } - - public List getLocations() { - return locations; - } - - public FilterLevel getFilterLevel() { - return filterLevel; - } - - public void setFilterLevel(FilterLevel filterLevel) { - this.filterLevel = filterLevel; - } - - public FilterQuery toFilterQuery() { - - FilterQuery filterQuery = new FilterQuery(); - - filterQuery.count(this.count); - - if (!CollectionUtils.isEmpty(this.track)) { - filterQuery.track(String.join(",", this.track)); - } - - if (!CollectionUtils.isEmpty(this.follow)) { - long[] followIds = new long[this.follow.size()]; - for (int i = 0; i < this.follow.size(); i++) { - followIds[i] = this.follow.get(i); - } - filterQuery.follow(followIds); - } - - if (!CollectionUtils.isEmpty(this.language)) { - filterQuery.language(this.language.toArray(new String[this.language.size()])); - } - - if (!CollectionUtils.isEmpty(this.locations)) { - double[][] bboxLocations = new double[this.locations.size() * 2][2]; - for (int i = 0; i < this.locations.size(); i = i + 2) { - //SW lat, lon - bboxLocations[i][0] = this.locations.get(i).getSw().getLat(); - bboxLocations[i][1] = this.locations.get(i).getSw().getLon(); - //NE lat, lon - bboxLocations[i + 1][0] = this.locations.get(i).getNe().getLat(); - bboxLocations[i + 1][1] = this.locations.get(i).getNe().getLon(); - } - filterQuery.locations(bboxLocations); - } - - if (this.filterLevel != FilterLevel.all) { - filterQuery.filterLevel(this.filterLevel.name()); - } - - return filterQuery; - } - - public boolean isValid() { - return count > 0 || !CollectionUtils.isEmpty(this.track) || !CollectionUtils.isEmpty(this.follow) - || !CollectionUtils.isEmpty(this.language) || this.filterLevel != FilterLevel.all; - } - - public static class BoundingBox { - - /** - * Bounding Box's South-West point (e.g. bottom-left). - */ - private Geocode sw; - - /** - * Bounding Box's North-East point (e.g. top-right). - */ - private Geocode ne; - - public Geocode getSw() { - return sw; - } - - public void setSw(Geocode sw) { - this.sw = sw; - } - - public Geocode getNe() { - return ne; - } - - public void setNe(Geocode ne) { - this.ne = ne; - } - } - - public static class Geocode { - - /** - * latitude. - */ - private double lat = -1; - - /** - * longitude. - */ - private double lon = -1; - - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLon() { - return lon; - } - - public void setLon(double lon) { - this.lon = lon; - } - } - } -} diff --git a/functions/supplier/twitter-supplier/src/test/java/org/springframework/cloud/fn/supplier/twitter/status/search/SearchPaginationTests.java b/functions/supplier/twitter-supplier/src/test/java/org/springframework/cloud/fn/supplier/twitter/status/search/SearchPaginationTests.java deleted file mode 100644 index 988822ea..00000000 --- a/functions/supplier/twitter-supplier/src/test/java/org/springframework/cloud/fn/supplier/twitter/status/search/SearchPaginationTests.java +++ /dev/null @@ -1,349 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.status.search; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import org.junit.jupiter.api.Test; -import twitter4j.GeoLocation; -import twitter4j.HashtagEntity; -import twitter4j.MediaEntity; -import twitter4j.Place; -import twitter4j.RateLimitStatus; -import twitter4j.Scopes; -import twitter4j.Status; -import twitter4j.SymbolEntity; -import twitter4j.URLEntity; -import twitter4j.User; -import twitter4j.UserMentionEntity; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.cloud.fn.supplier.twitter.status.search.SearchPagination.UNBOUNDED; - -/** - * @author Christian Tzolov - */ -public class SearchPaginationTests { - - @Test - public void tests1() { - - int maxCountPerRequest = 5; - - int count = 10; - - int pageCount = count / maxCountPerRequest; - - assertThat(pageCount).isEqualTo(2); - - SearchPagination pagination = new SearchPagination(pageCount, false); - - assertThat(pagination.getSinceId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 1); - - pagination.update(tweets(10, 8, 1)); - - assertThat(pagination.getSinceId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getMaxId()).isEqualTo(8L - 1); // = min - 1 - assertThat(pagination.getPageMaxId()).isEqualTo(10L); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 2); - - pagination.update(tweets(7, 4, 1)); - - assertThat(pagination.getSinceId()).isEqualTo(10L); - assertThat(pagination.getMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 1); - - pagination.update(tweets(20, 14, 1)); - - assertThat(pagination.getSinceId()).isEqualTo(10L); - assertThat(pagination.getMaxId()).isEqualTo(14L - 1); - assertThat(pagination.getPageMaxId()).isEqualTo(20L); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 2); - - pagination.update(tweets(13, 8, 1)); - - assertThat(pagination.getSinceId()).isEqualTo(20L); - assertThat(pagination.getMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 1); - } - - @Test - public void tests2() { - - int maxCountPerRequest = 5; - - int count = 10; - - int pageCount = count / maxCountPerRequest; - - assertThat(pageCount).isEqualTo(2); - - SearchPagination pagination = new SearchPagination(pageCount, true); - - assertThat(pagination.getSinceId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 1); - - pagination.update(tweets(10, 8, 1)); - - assertThat(pagination.getSinceId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getMaxId()).isEqualTo(8L - 1); // = min - 1 - assertThat(pagination.getPageMaxId()).isEqualTo(10L); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 2); - - pagination.update(tweets(7, 4, 1)); - - // Restart from Most Recent due to pageCounter == 0 while no reset have been performed so ar - assertThat(pagination.getSinceId()).isEqualTo(10L); - assertThat(pagination.getMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 1); - - pagination.update(tweets(20, 14, 1)); - - assertThat(pagination.getSinceId()).isEqualTo(10L); - assertThat(pagination.getMaxId()).isEqualTo(14L - 1); - assertThat(pagination.getPageMaxId()).isEqualTo(20L); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 2); - - pagination.update(tweets(13, 8, 1)); - - assertThat(pagination.getSinceId()).isEqualTo(10L); - assertThat(pagination.getMaxId()).isEqualTo(8L - 1); - assertThat(pagination.getPageMaxId()).isEqualTo(20L); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 3); - - pagination.update(new ArrayList<>()); // EMPTY - - // Restart from Most Recent on Empty Response - assertThat(pagination.getSinceId()).isEqualTo(20L); - assertThat(pagination.getMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageMaxId()).isEqualTo(UNBOUNDED); - assertThat(pagination.getPageCounter()).isEqualTo(pageCount - 1); - } - - public List tweets(int to, int from, int step) { - List tweets = new ArrayList<>(to - from); - for (int i = to; i >= from; i = i - step) { - tweets.add(new MyStatus(i)); - } - - return tweets; - } - - public static class MyStatus implements Status { - - private long id; - - public MyStatus(long id) { - this.id = id; - } - - @Override - public Date getCreatedAt() { - return null; - } - - @Override - public long getId() { - return this.id; - } - - @Override - public String getText() { - return null; - } - - @Override - public int getDisplayTextRangeStart() { - return 0; - } - - @Override - public int getDisplayTextRangeEnd() { - return 0; - } - - @Override - public String getSource() { - return null; - } - - @Override - public boolean isTruncated() { - return false; - } - - @Override - public long getInReplyToStatusId() { - return 0; - } - - @Override - public long getInReplyToUserId() { - return 0; - } - - @Override - public String getInReplyToScreenName() { - return null; - } - - @Override - public GeoLocation getGeoLocation() { - return null; - } - - @Override - public Place getPlace() { - return null; - } - - @Override - public boolean isFavorited() { - return false; - } - - @Override - public boolean isRetweeted() { - return false; - } - - @Override - public int getFavoriteCount() { - return 0; - } - - @Override - public User getUser() { - return null; - } - - @Override - public boolean isRetweet() { - return false; - } - - @Override - public Status getRetweetedStatus() { - return null; - } - - @Override - public long[] getContributors() { - return new long[0]; - } - - @Override - public int getRetweetCount() { - return 0; - } - - @Override - public boolean isRetweetedByMe() { - return false; - } - - @Override - public long getCurrentUserRetweetId() { - return 0; - } - - @Override - public boolean isPossiblySensitive() { - return false; - } - - @Override - public String getLang() { - return null; - } - - @Override - public Scopes getScopes() { - return null; - } - - @Override - public String[] getWithheldInCountries() { - return new String[0]; - } - - @Override - public long getQuotedStatusId() { - return 0; - } - - @Override - public Status getQuotedStatus() { - return null; - } - - @Override - public URLEntity getQuotedStatusPermalink() { - return null; - } - - @Override - public int compareTo(Status o) { - return 0; - } - - @Override - public UserMentionEntity[] getUserMentionEntities() { - return new UserMentionEntity[0]; - } - - @Override - public URLEntity[] getURLEntities() { - return new URLEntity[0]; - } - - @Override - public HashtagEntity[] getHashtagEntities() { - return new HashtagEntity[0]; - } - - @Override - public MediaEntity[] getMediaEntities() { - return new MediaEntity[0]; - } - - @Override - public SymbolEntity[] getSymbolEntities() { - return new SymbolEntity[0]; - } - - @Override - public RateLimitStatus getRateLimitStatus() { - return null; - } - - @Override - public int getAccessLevel() { - return 0; - } - } -} diff --git a/functions/supplier/twitter-supplier/src/test/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierTests.java b/functions/supplier/twitter-supplier/src/test/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierTests.java deleted file mode 100644 index d6bc2b55..00000000 --- a/functions/supplier/twitter-supplier/src/test/java/org/springframework/cloud/fn/supplier/twitter/status/stream/TwitterStreamSupplierTests.java +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright 2020-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.twitter.status.stream; - -import java.util.concurrent.TimeUnit; -import java.util.function.Function; -import java.util.function.Supplier; - -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.mockserver.client.MockServerClient; -import org.mockserver.integration.ClientAndServer; -import org.mockserver.model.Header; -import org.mockserver.model.HttpRequest; -import org.mockserver.model.StringBody; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; -import twitter4j.conf.ConfigurationBuilder; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.fn.common.twitter.TwitterConnectionProperties; -import org.springframework.cloud.fn.common.twitter.util.TwitterTestUtils; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.util.TestSocketUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockserver.matchers.Times.exactly; -import static org.mockserver.model.HttpRequest.request; -import static org.mockserver.model.HttpResponse.response; -import static org.mockserver.verify.VerificationTimes.once; - -/** - * @author Christian Tzolov - */ -@SpringBootTest( - webEnvironment = SpringBootTest.WebEnvironment.NONE, - properties = { - "twitter.connection.consumerKey=consumerKey666", - "twitter.connection.consumerSecret=consumerSecret666", - "twitter.connection.accessToken=accessToken666", - "twitter.connection.accessTokenSecret=accessTokenSecret666" - }) -@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) -public abstract class TwitterStreamSupplierTests { - - private static final String MOCK_SERVER_IP = "127.0.0.1"; - - private static final Integer MOCK_SERVER_PORT = TestSocketUtils.findAvailableTcpPort(); - - private static ClientAndServer mockServer; - - private static MockServerClient mockClient; - private static HttpRequest streamFilterRequest; - private static HttpRequest streamSampleRequest; - private static HttpRequest streamFirehoseRequest; - - @Autowired - protected Supplier>> twitterStreamSupplier; - - @BeforeAll - public static void startServer() { - - mockServer = ClientAndServer.startClientAndServer(MOCK_SERVER_PORT); - - mockClient = new MockServerClient(MOCK_SERVER_IP, MOCK_SERVER_PORT); - - streamFilterRequest = mockClientRecordRequest(request() - .withMethod("POST") - .withPath("/stream/statuses/filter.json") - .withBody(new StringBody("count=0&track=Java%2CPython&stall_warnings=true"))); - - streamSampleRequest = mockClientRecordRequest(request() - .withMethod("GET") - .withPath("/stream/statuses/sample.json")); - - streamFirehoseRequest = mockClientRecordRequest(request() - .withMethod("POST") - .withPath("/stream/statuses/links.json") - .withBody(new StringBody("count=0&stall_warnings=true"))); - - streamFirehoseRequest = mockClientRecordRequest(request() - .withMethod("POST") - .withPath("/stream/statuses/firehose.json") - .withBody(new StringBody("count=0&stall_warnings=true"))); - } - - @AfterAll - public static void stopServer() { - mockServer.stop(); - } - - private static HttpRequest mockClientRecordRequest(HttpRequest request) { - mockClient.when(request, /*unlimited())*/ exactly(1)) - .respond( - response() - .withStatusCode(200) - .withHeaders( - new Header("Content-Type", "application/json; charset=utf-8"), - new Header("Cache-Control", "public, max-age=86400")) - .withBody(TwitterTestUtils.asString("classpath:/response/stream_test_1.json")) - .withDelay(TimeUnit.SECONDS, 10)); - return request; - } - - @TestPropertySource(properties = { - "twitter.stream.type=sample" - }) - public static class TwitterStreamSampleTests extends TwitterStreamSupplierTests { - - @Test - public void testOne() { - final Flux> messageFlux = twitterStreamSupplier.get(); - - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> assertThat(new String((byte[]) message.getPayload())) - .contains("\"id\":1075751718749659136")) - .thenCancel() - .verifyLater(); - - stepVerifier.verify(); - - mockClient.verify(streamSampleRequest, once()); - } - } - - @TestPropertySource(properties = { - "twitter.stream.type=filter", - "twitter.stream.filter.track=Java,Python" - }) - public static class TwitterStreamFilterTests extends TwitterStreamSupplierTests { - - @Test - public void testOne() { - final Flux> messageFlux = twitterStreamSupplier.get(); - - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> assertThat(new String((byte[]) message.getPayload())) - .contains("\"id\":1075751718749659136")) - .thenCancel() - .verifyLater(); - - stepVerifier.verify(); - - mockClient.verify(streamFilterRequest, once()); - } - } - - @TestPropertySource(properties = { - "twitter.stream.type=firehose" - }) - public static class TwitterStreamFirehoseTests extends TwitterStreamSupplierTests { - - @Test - public void testOne() { - final Flux> messageFlux = twitterStreamSupplier.get(); - - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> assertThat(new String((byte[]) message.getPayload())) - .contains("\"id\":1075751718749659136")) - .thenCancel() - .verifyLater(); - - stepVerifier.verify(); - - mockClient.verify(streamFirehoseRequest, once()); - } - } - - @SpringBootConfiguration - @EnableAutoConfiguration - @Import(TwitterStreamSupplierConfiguration.class) - public static class TwitterStreamSupplierTestApplication { - - @Bean - @Primary - public twitter4j.conf.Configuration twitterConfiguration2(TwitterConnectionProperties properties, - Function toConfigurationBuilder) { - - Function mockedConfiguration = - toConfigurationBuilder.andThen( - new TwitterTestUtils().mockTwitterUrls( - String.format("http://%s:%s", MOCK_SERVER_IP, MOCK_SERVER_PORT))); - - return mockedConfiguration.apply(properties).build(); - } - } -} diff --git a/functions/supplier/twitter-supplier/src/test/resources/logback.xml b/functions/supplier/twitter-supplier/src/test/resources/logback.xml deleted file mode 100644 index f7e48fcf..00000000 --- a/functions/supplier/twitter-supplier/src/test/resources/logback.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - diff --git a/functions/supplier/twitter-supplier/src/test/resources/response/stream_test_1.json b/functions/supplier/twitter-supplier/src/test/resources/response/stream_test_1.json deleted file mode 100644 index bb831206..00000000 --- a/functions/supplier/twitter-supplier/src/test/resources/response/stream_test_1.json +++ /dev/null @@ -1,2 +0,0 @@ -{"created_at":"Thu Dec 20 13:56:10 +0000 2018","id":1075751718749659136,"id_str":"1075751718749659136","text":"Codementor: Kubernetes for Python Developers: Part 1\n#100daysofcode #python https:\/\/t.co\/VviTgpFpge","source":"\u003ca href=\"https:\/\/ifttt.com\" rel=\"nofollow\"\u003eIFTTT\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":859252650512072704,"id_str":"859252650512072704","name":"Freelancing|WebDev","screen_name":"FreelanceForBTC","location":"THE NET","url":"http:\/\/bit.ly\/BTCFREELANCING","description":"This twitter is designed to give the best information from web development to Blockchain.\n|YouTube's |Jobs |learning contented","translator_type":"none","protected":false,"verified":false,"followers_count":146,"friends_count":118,"listed_count":4,"favourites_count":445,"statuses_count":7528,"created_at":"Tue May 02 03:46:10 +0000 2017","utc_offset":null,"time_zone":null,"geo_enabled":false,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"F5F8FA","profile_background_image_url":"","profile_background_image_url_https":"","profile_background_tile":false,"profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1071607798771793920\/UegrCs84_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1071607798771793920\/UegrCs84_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/859252650512072704\/1544326203","default_profile":true,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"quote_count":0,"reply_count":0,"retweet_count":0,"favorite_count":0,"entities":{"hashtags":[{"text":"100daysofcode","indices":[53,67]},{"text":"python","indices":[68,75]}],"urls":[{"url":"https:\/\/t.co\/VviTgpFpge","expanded_url":"https:\/\/ift.tt\/2GxdMZF","display_url":"ift.tt\/2GxdMZF","indices":[76,99]}],"user_mentions":[],"symbols":[]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"filter_level":"low","lang":"ca","timestamp_ms":"1545314170907"} - diff --git a/functions/supplier/websocket-supplier/README.adoc b/functions/supplier/websocket-supplier/README.adoc deleted file mode 100644 index 33f546d3..00000000 --- a/functions/supplier/websocket-supplier/README.adoc +++ /dev/null @@ -1,32 +0,0 @@ -# Websocket Supplier - -A basic websocket supplier that produced messages through web socket. -The `Supplier` uses the `WebsocketInboundChannelAdapter` from Spring Integration. -This supplier gives you a reactive stream of messages and the supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and receive the data. - -## Beans for injection - -You can import the `WebsocketSupplierConfiguration` in the application and then inject the following bean. - -`websocketSupplier` - -You need to inject this as `Supplier>>`. - -You can use `websocketSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `websocket.supplier`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierProperties.java[WebsocketSupplierProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierTests.java[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/websocket-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a File Source. \ No newline at end of file diff --git a/functions/supplier/websocket-supplier/pom.xml b/functions/supplier/websocket-supplier/pom.xml deleted file mode 100644 index 12380b26..00000000 --- a/functions/supplier/websocket-supplier/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/websocket-supplier/src/main/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierConfiguration.java b/functions/supplier/websocket-supplier/src/main/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierConfiguration.java deleted file mode 100644 index 60fd80a1..00000000 --- a/functions/supplier/websocket-supplier/src/main/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierConfiguration.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2018-2023 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.websocket; - -import java.util.function.Supplier; - -import org.reactivestreams.Publisher; -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.websocket.IntegrationWebSocketContainer; -import org.springframework.integration.websocket.ServerWebSocketContainer; -import org.springframework.integration.websocket.inbound.WebSocketInboundChannelAdapter; -import org.springframework.messaging.Message; - -/** - * A supplier that receives data over WebSocket. - * - * @author Krishnaprasad A S - * @author Artem Bilan - * - */ -@Configuration -@EnableConfigurationProperties(WebsocketSupplierProperties.class) -public class WebsocketSupplierConfiguration { - - @Autowired - WebsocketSupplierProperties properties; - - @Bean - public Supplier>> websocketSupplier(Publisher> websocketPublisher, - WebSocketInboundChannelAdapter webSocketInboundChannelAdapter) { - return () -> Flux.from(websocketPublisher) - .doOnSubscribe(subscription -> webSocketInboundChannelAdapter.start()) - .doOnTerminate(webSocketInboundChannelAdapter::stop); - } - - @Bean - public Publisher> websocketPublisher(IntegrationWebSocketContainer serverWebSocketContainer) { - return IntegrationFlow.from( - webSocketInboundChannelAdapter(serverWebSocketContainer)) - .toReactivePublisher(); - } - - private WebSocketInboundChannelAdapter webSocketInboundChannelAdapter( - IntegrationWebSocketContainer serverWebSocketContainer) { - WebSocketInboundChannelAdapter webSocketInboundChannelAdapter = - new WebSocketInboundChannelAdapter(serverWebSocketContainer); - webSocketInboundChannelAdapter.setAutoStartup(false); - return webSocketInboundChannelAdapter; - } - - @Bean - @ConditionalOnMissingBean - @ConditionalOnProperty(prefix = "websocket.sockJs", name = "enable", havingValue = "true") - public ServerWebSocketContainer.SockJsServiceOptions sockJsServiceOptions() { - // TODO Expose SockJsServiceOptions as configuration properties - return new ServerWebSocketContainer.SockJsServiceOptions(); - } - - @Bean - public IntegrationWebSocketContainer serverWebSocketContainer( - ObjectProvider sockJsServiceOptions) { - return new ServerWebSocketContainer(properties.getPath()) - .setAllowedOrigins(properties.getAllowedOrigins()) - .withSockJs(sockJsServiceOptions.getIfAvailable()); - } - -} diff --git a/functions/supplier/websocket-supplier/src/main/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierProperties.java b/functions/supplier/websocket-supplier/src/main/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierProperties.java deleted file mode 100644 index 3d23343c..00000000 --- a/functions/supplier/websocket-supplier/src/main/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierProperties.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2018-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.websocket; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * Configuration properties available for Websocket Supplier. - * - * @author Krishnaprasad A S - * @author Artem Bilan - * - */ -@ConfigurationProperties("websocket.supplier") -public class WebsocketSupplierProperties { - - /** - * Default path. - */ - public static final String DEFAULT_PATH = "/websocket"; - - /** - * Default allowed origins. - */ - public static final String DEFAULT_ALLOWED_ORIGINS = "*"; - - /** - * The path on which server WebSocket handler is exposed. - */ - private String path = DEFAULT_PATH; - - /** - * The allowed origins. - */ - private String allowedOrigins = DEFAULT_ALLOWED_ORIGINS; - - /** - * The SockJS options. - */ - private SockJs sockJs = new SockJs(); - - public String getPath() { - return this.path; - } - - public void setPath(String path) { - this.path = path; - } - - public String getAllowedOrigins() { - return this.allowedOrigins; - } - - public void setAllowedOrigins(String allowedOrigins) { - this.allowedOrigins = allowedOrigins; - } - - public SockJs getSockJs() { - return this.sockJs; - } - - public void setSockJs(SockJs sockJs) { - this.sockJs = sockJs; - } - - public static class SockJs { - - /** - * Enable SockJS service on the server. Default is 'false' - */ - private boolean enable; - - public boolean getEnable() { - return this.enable; - } - - public void setEnable(boolean enable) { - this.enable = enable; - } - - } -} diff --git a/functions/supplier/websocket-supplier/src/test/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierTests.java b/functions/supplier/websocket-supplier/src/test/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierTests.java deleted file mode 100644 index 1e40e644..00000000 --- a/functions/supplier/websocket-supplier/src/test/java/org/springframework/cloud/fn/supplier/websocket/WebsocketSupplierTests.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2018-2021 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.websocket; - -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.function.Supplier; - -import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.security.SecurityProperties; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.web.server.LocalServerPort; -import org.springframework.http.HttpHeaders; -import org.springframework.integration.websocket.ClientWebSocketContainer; -import org.springframework.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.util.Base64Utils; -import org.springframework.web.socket.TextMessage; -import org.springframework.web.socket.WebSocketSession; -import org.springframework.web.socket.client.standard.StandardWebSocketClient; - -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, - properties = "websocket.supplier.path=some_websocket_path") -@DirtiesContext -public class WebsocketSupplierTests { - - @Autowired - private Supplier>> websocketSupplier; - - @LocalServerPort - private int port; - - @Autowired - private WebsocketSupplierProperties properties; - - @Autowired - private SecurityProperties securityProperties; - - private final String messageString = "foo"; - - @Test - public void checkCmdlineArgs() { - assertThat(this.properties.getPath()).isEqualTo("some_websocket_path"); - assertThat(this.properties.getAllowedOrigins()).isEqualTo("*"); - } - - @Test - public void testBasicFlow() throws IOException { - final Flux> messageFlux = websocketSupplier.get(); - final StepVerifier stepVerifier = StepVerifier.create(messageFlux) - .assertNext((message) -> - assertThat(message.getPayload()) - .isEqualTo(messageString) - ) - .thenCancel() - .verifyLater(); - StandardWebSocketClient webSocketClient = new StandardWebSocketClient(); - ClientWebSocketContainer clientWebSocketContainer = - new ClientWebSocketContainer(webSocketClient, "ws://localhost:{port}/{path}", - this.port, - this.properties.getPath()); - - HttpHeaders httpHeaders = new HttpHeaders(); - String token = Base64Utils.encodeToString( - (this.securityProperties.getUser().getName() + ":" + this.securityProperties.getUser().getPassword()) - .getBytes(StandardCharsets.UTF_8)); - httpHeaders.set(HttpHeaders.AUTHORIZATION, "Basic " + token); - clientWebSocketContainer.setHeaders(httpHeaders); - clientWebSocketContainer.start(); - WebSocketSession session = clientWebSocketContainer.getSession(null); - session.sendMessage(new TextMessage(this.messageString)); - session.close(); - - stepVerifier.verify(); - } - - @SpringBootApplication - static class WebsocketSupplierTestApplication { - - } - -} diff --git a/functions/supplier/xmpp-supplier/README.adoc b/functions/supplier/xmpp-supplier/README.adoc deleted file mode 100644 index ba4bf9f2..00000000 --- a/functions/supplier/xmpp-supplier/README.adoc +++ /dev/null @@ -1,30 +0,0 @@ -# XMPP Supplier - -A supplier that allows you to receive messages through a XMPP server. - -## Beans for injection - -You can import the `XmppSupplierConfiguration` in the application and then inject the following bean. - -`Supplier xmppSupplier` - -You need to inject this as `Supplier xmppSupplier`. - -You can use `xmppSupplier` as a qualifier when injecting. - -**NOTE:** This is a functional endpoint. One will need to subscribe to this endpoint in order to start accepting data -on it. - -## Configuration Options - -All configuration properties are prefixed with `xmpp.supplier`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/xmpp/XmppSupplierProperties.java[XmppSupplierProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/consumer/xmpp/[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/xmpp-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a XMPP Source. diff --git a/functions/supplier/xmpp-supplier/pom.xml b/functions/supplier/xmpp-supplier/pom.xml deleted file mode 100644 index 8c2d6277..00000000 --- a/functions/supplier/xmpp-supplier/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-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/functions/supplier/xmpp-supplier/src/main/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierConfiguration.java b/functions/supplier/xmpp-supplier/src/main/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierConfiguration.java deleted file mode 100644 index 2fa79356..00000000 --- a/functions/supplier/xmpp-supplier/src/main/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierConfiguration.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.xmpp; - -import java.util.function.Supplier; - -import org.jivesoftware.smack.XMPPConnection; -import reactor.core.publisher.Flux; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.fn.common.xmpp.XmppConnectionFactoryConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.integration.channel.FluxMessageChannel; -import org.springframework.integration.xmpp.inbound.ChatMessageListeningEndpoint; -import org.springframework.messaging.Message; - -/** - * A source module that receives data from ZeroMQ. - * - * @author Daniel Frey - * @since 4.0.0 - */ -@Configuration -@EnableConfigurationProperties(XmppSupplierProperties.class) -@Import(XmppConnectionFactoryConfiguration.class) -public class XmppSupplierConfiguration { - - private FluxMessageChannel output = new FluxMessageChannel(); - - @Bean - public ChatMessageListeningEndpoint chatMessageListeningEndpoint(XMPPConnection xmppConnection, XmppSupplierProperties properties) { - - var chatMessageListeningEndpoint = new ChatMessageListeningEndpoint(xmppConnection); - - if (properties.getPayloadExpression() != null) { - chatMessageListeningEndpoint.setPayloadExpression(properties.getPayloadExpression()); - } - - chatMessageListeningEndpoint.setStanzaFilter(properties.getStanzaFilter()); - chatMessageListeningEndpoint.setOutputChannel(output); - chatMessageListeningEndpoint.setAutoStartup(false); - - return chatMessageListeningEndpoint; - } - - @Bean - public Supplier>> xmppSupplier(ChatMessageListeningEndpoint chatMessageListeningEndpoint) { - return () -> Flux.from(output).doOnSubscribe(subscription -> chatMessageListeningEndpoint.start()); - } - -} diff --git a/functions/supplier/xmpp-supplier/src/main/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierProperties.java b/functions/supplier/xmpp-supplier/src/main/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierProperties.java deleted file mode 100644 index 7e8c4a26..00000000 --- a/functions/supplier/xmpp-supplier/src/main/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierProperties.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.xmpp; - -import org.jivesoftware.smack.filter.StanzaFilter; -import org.jivesoftware.smack.filter.StanzaTypeFilter; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.expression.Expression; -import org.springframework.validation.annotation.Validated; - -/** - * - * @author Daniel Frey - * @since 4.0.0 - */ -@ConfigurationProperties("xmpp.supplier") -@Validated -public class XmppSupplierProperties { - - private StanzaFilter stanzaFilter = StanzaTypeFilter.MESSAGE; - - private Expression payloadExpression; - - public void setStanzaFilter(StanzaFilter stanzaFilter) { - this.stanzaFilter = stanzaFilter; - } - - public StanzaFilter getStanzaFilter() { - return stanzaFilter; - } - - public void setPayloadExpression(Expression payloadExpression) { - this.payloadExpression = payloadExpression; - } - public Expression getPayloadExpression() { - return payloadExpression; - } - -} diff --git a/functions/supplier/xmpp-supplier/src/test/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierConfigurationTests.java b/functions/supplier/xmpp-supplier/src/test/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierConfigurationTests.java deleted file mode 100644 index 48acd9eb..00000000 --- a/functions/supplier/xmpp-supplier/src/test/java/org/springframework/cloud/fn/supplier/xmpp/XmppSupplierConfigurationTests.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright 2014-2022 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.xmpp; - -import java.io.IOException; -import java.time.Duration; -import java.util.function.Supplier; - -import org.assertj.core.api.InstanceOfAssertFactories; -import org.jivesoftware.smack.ConnectionConfiguration; -import org.jivesoftware.smack.SmackException; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smack.chat2.ChatManager; -import org.jivesoftware.smack.tcp.XMPPTCPConnection; -import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.jxmpp.jid.impl.JidCreate; -import org.jxmpp.stringprep.XmppStringprepException; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport; -import org.springframework.context.annotation.Import; -import org.springframework.integration.xmpp.XmppHeaders; -import org.springframework.messaging.Message; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport.JANE_USER; -import static org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport.SERVICE_NAME; -import static org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport.USER_PW; - -/** - * @author Daniel Frey - */ -@SpringBootTest( - properties = { - "xmpp.factory.user=" + JANE_USER, // Connect as user intended to listen for messages on behalf of - "xmpp.factory.password=" + USER_PW, - "xmpp.factory.service-name=" + SERVICE_NAME, - "xmpp.factory.security-mode=disabled" - } -) -public class XmppSupplierConfigurationTests implements XmppTestContainerSupport { - - @DynamicPropertySource - static void registerConfigurationProperties(DynamicPropertyRegistry registry) { - registry.add("xmpp.factory.host", () -> XmppTestContainerSupport.getXmppHost()); - registry.add("xmpp.factory.port", () -> XmppTestContainerSupport.getXmppMappedPort()); - } - - @Autowired - Supplier>> subject; - - // A client source connection is needed to send the message to the xmpp server - private XMPPTCPConnection sourceConnection; - - @BeforeEach - void setup() throws IOException, SmackException, XMPPException, InterruptedException { - - var builder = XMPPTCPConnectionConfiguration.builder(); - builder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled); - builder.setHost(XmppTestContainerSupport.getXmppHost()); - builder.setPort(XmppTestContainerSupport.getXmppMappedPort()); - builder.setResource(SERVICE_NAME); - builder.setUsernameAndPassword(JOHN_USER, USER_PW) // Connect as user intended to send messages from - .setXmppDomain(SERVICE_NAME); - this.sourceConnection = new XMPPTCPConnection(builder.build()); - this.sourceConnection.connect(); - this.sourceConnection.login(); - - } - - @AfterEach - void teardown() { - this.sourceConnection.instantShutdown(); - } - - @Test - void testSubscriptionConfiguration() throws XmppStringprepException, SmackException.NotConnectedException, InterruptedException { - - var payload = "test"; - - var stepVerifier = - StepVerifier.create(subject.get()) - .assertNext((message) -> { - - assertThat(message.getPayload()) - .asInstanceOf(InstanceOfAssertFactories.type(String.class)) - .isEqualTo(payload); - - assertThat(message.getHeaders().containsKey(XmppHeaders.TO)).isTrue(); - assertThat(message.getHeaders().get(XmppHeaders.TO, String.class)).isEqualTo(JANE_USER + "@" + SERVICE_NAME); - - }) - .thenCancel() - .verifyLater(); - - var chatManager = ChatManager.getInstanceFor(this.sourceConnection); - var jid = JidCreate.entityBareFrom(JANE_USER + "@" + SERVICE_NAME); - var chat = chatManager.chatWith(jid); - chat.send(payload); - - stepVerifier.verify(Duration.ofSeconds(10)); - - } - - @SpringBootConfiguration - @EnableAutoConfiguration - @Import(XmppSupplierConfiguration.class) - static class XmppSupplierTestApplication { } - -} diff --git a/functions/supplier/zeromq-supplier/README.adoc b/functions/supplier/zeromq-supplier/README.adoc deleted file mode 100644 index bacc875a..00000000 --- a/functions/supplier/zeromq-supplier/README.adoc +++ /dev/null @@ -1,32 +0,0 @@ -# ZeroMQ Supplier - -A basic ZeroMQ supplier that produced messages through TCP connection. -The `Supplier` uses the `ZeroMqMessageProducer` from Spring Integration. -This supplier gives you a reactive stream of messages and the supplier has a signature of `Supplier>>`. -Users have to subscribe to this `Flux` and receive the data. - -## Beans for injection - -You can import the `ZeroMqSupplierConfiguration` in the application and then inject the following bean. - -`zeromqSupplier` - -You need to inject this as `Supplier>>`. - -You can use `zeromqSupplier` as a qualifier when injecting. - -Once injected, you can use the `get` method of the `Supplier` to invoke it and then subscribe to the returned `Flux`. - -## Configuration Options - -All configuration properties are prefixed with `zeromq.supplier`. - -For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierProperties.java[ZeroMqSupplierProperties]. - -## Tests - -See this link:src/test/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierTests.java[test suite] for the various ways, this supplier is used. - -## Other usage - -See this https://github.com/spring-cloud/stream-applications/blob/master/applications/source/zeromq-source/README.adoc[README] where this supplier is used to create a Spring Cloud Stream application where it makes a ZeroMQ Source. \ No newline at end of file diff --git a/functions/supplier/zeromq-supplier/pom.xml b/functions/supplier/zeromq-supplier/pom.xml deleted file mode 100644 index 408e4fad..00000000 --- a/functions/supplier/zeromq-supplier/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - - - org.springframework.cloud.fn - spring-functions-parent - 5.0.0-SNAPSHOT - ../../spring-functions-parent/pom.xml - - - zeromq-supplier - zeromq-supplier - ZeroMQ supplier - - - - org.springframework.integration - spring-integration-zeromq - - - - diff --git a/functions/supplier/zeromq-supplier/src/main/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierConfiguration.java b/functions/supplier/zeromq-supplier/src/main/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierConfiguration.java deleted file mode 100644 index c55bc008..00000000 --- a/functions/supplier/zeromq-supplier/src/main/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierConfiguration.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.zeromq; - -import java.util.function.Consumer; -import java.util.function.Supplier; - -import org.zeromq.SocketType; -import org.zeromq.ZContext; -import org.zeromq.ZMQ; -import reactor.core.publisher.Flux; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.channel.FluxMessageChannel; -import org.springframework.integration.zeromq.inbound.ZeroMqMessageProducer; -import org.springframework.messaging.Message; -import org.springframework.messaging.support.GenericMessage; - -/** - * A source module that receives data from ZeroMQ. - * - * @author Daniel Frey - * @since 3.1.0 - */ -@Configuration -@EnableConfigurationProperties(ZeroMqSupplierProperties.class) -public class ZeroMqSupplierConfiguration { - - private FluxMessageChannel output = new FluxMessageChannel(); - - @Bean - public ZContext zContext() { - return new ZContext(); - } - - @Bean - public ZeroMqMessageProducer adapter(ZeroMqSupplierProperties properties, ZContext zContext, - @Autowired(required = false) Consumer socketConfigurer) { - - ZeroMqMessageProducer zeroMqMessageProducer = new ZeroMqMessageProducer(zContext, properties.getSocketType()); - - if (properties.getConnectUrl() != null) { - zeroMqMessageProducer.setConnectUrl(properties.getConnectUrl()); - } - else if (properties.getBindPort() > 0) { - zeroMqMessageProducer.setBindPort(properties.getBindPort()); - } - zeroMqMessageProducer.setConsumeDelay(properties.getConsumeDelay()); - if (SocketType.SUB.equals(properties.getSocketType())) { - zeroMqMessageProducer.setTopics(properties.getTopics()); - } - zeroMqMessageProducer.setMessageMapper(GenericMessage::new); - if (socketConfigurer != null) { - zeroMqMessageProducer.setSocketConfigurer(socketConfigurer); - } - zeroMqMessageProducer.setOutputChannel(output); - zeroMqMessageProducer.setAutoStartup(false); - - return zeroMqMessageProducer; - } - - @Bean - public Supplier>> zeromqSupplier(ZeroMqMessageProducer adapter) { - return () -> Flux.from(output).doOnSubscribe(subscription -> adapter.start()); - } - -} diff --git a/functions/supplier/zeromq-supplier/src/main/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierProperties.java b/functions/supplier/zeromq-supplier/src/main/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierProperties.java deleted file mode 100644 index 08651c57..00000000 --- a/functions/supplier/zeromq-supplier/src/main/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierProperties.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.zeromq; - -import java.time.Duration; - -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import org.hibernate.validator.constraints.Range; -import org.zeromq.SocketType; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -/** - * - * @author Daniel Frey - * @since 3.1.0 - */ -@ConfigurationProperties("zeromq.supplier") -@Validated -public class ZeroMqSupplierProperties { - - /** - * The Socket Type the connection should make. - */ - private SocketType socketType = SocketType.SUB; - - /** - * Connection URL for to the ZeroMQ Socket. - */ - private String connectUrl; - - /** - * Bind Port for creating a ZeroMQ Socket; 0 selects a random port. - */ - private int bindPort; - - /** - * The delay to consume from the ZeroMQ Socket when no data received. - */ - private Duration consumeDelay = Duration.ofSeconds(1); - - /** - * The Topics to subscribe to. - */ - private String[] topics = {""}; - - /** - * @param socketType the {@link SocketType} to establish. - */ - public void setSocketType(SocketType socketType) { - this.socketType = socketType; - } - - @NotNull(message = "'socketType' is required") - public SocketType getSocketType() { - return socketType; - } - - @NotEmpty(message = "connectUrl is required like tcp://server:port") - public String getConnectUrl() { - return connectUrl; - } - - /** - * - * @param connectUrl The ZeroMQ server connect url - * - * @see org.springframework.integration.zeromq.inbound.ZeroMqMessageProducer#setConnectUrl(String) - */ - public void setConnectUrl(String connectUrl) { - this.connectUrl = connectUrl; - } - - @Range(min = 0, message = "'bindPort' must not be negative") - public int getBindPort() { - return bindPort; - } - - /** - * @param bindPort The Port to bind to on all interfaces - * - * @see org.springframework.integration.zeromq.inbound.ZeroMqMessageProducer#setBindPort(int) - */ - public void setBindPort(int bindPort) { - this.bindPort = bindPort; - } - - @NotNull(message = "'consumeDelay' is required") - public Duration getConsumeDelay() { - return consumeDelay; - } - - /** - * Specify a {@link Duration} to delay consumption when no data received. - * @param consumeDelay the {@link Duration} to delay consumption when empty. - */ - public void setConsumeDelay(Duration consumeDelay) { - this.consumeDelay = consumeDelay; - } - - public String[] getTopics() { - return topics; - } - - /** - * - * @param topics The ZeroMQ Topics to subscribe to - * - * @see org.springframework.integration.zeromq.inbound.ZeroMqMessageProducer#setTopics(String...) - */ - public void setTopics(String... topics) { - this.topics = topics; - } - -} diff --git a/functions/supplier/zeromq-supplier/src/test/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierConfigurationTests.java b/functions/supplier/zeromq-supplier/src/test/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierConfigurationTests.java deleted file mode 100644 index 7239fab8..00000000 --- a/functions/supplier/zeromq-supplier/src/test/java/org/springframework/cloud/fn/supplier/zeromq/ZeroMqSupplierConfigurationTests.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2016-2020 the original author or 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. - */ - -package org.springframework.cloud.fn.supplier.zeromq; - -import java.time.Duration; -import java.util.function.Supplier; - -import org.assertj.core.api.InstanceOfAssertFactories; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.zeromq.SocketType; -import org.zeromq.ZContext; -import org.zeromq.ZFrame; -import org.zeromq.ZMQ; -import org.zeromq.ZMsg; -import reactor.core.publisher.Flux; -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.messaging.Message; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Daniel Frey - * since 3.1.0 - */ -@SpringBootTest(properties = {"zeromq.supplier.topics=test-topic"}) -@DirtiesContext -public class ZeroMqSupplierConfigurationTests { - - private static final ZContext CONTEXT = new ZContext(); - private static ZMQ.Socket socket; - - @Autowired - Supplier>> subject; - - @BeforeAll - static void setup() { - - String socketAddress = "tcp://*"; - socket = CONTEXT.createSocket(SocketType.PUB); - int bindPort = socket.bindToRandomPort(socketAddress); - - System.setProperty("zeromq.supplier.connectUrl", "tcp://localhost:" + bindPort); - - } - - @AfterAll - static void tearDown() { - socket.close(); - CONTEXT.close(); - } - - @Test - void testSubscriptionConfiguration() throws InterruptedException { - - StepVerifier stepVerifier = - StepVerifier.create(subject.get()) - .assertNext((message) -> - assertThat(message.getPayload()) - .asInstanceOf(InstanceOfAssertFactories.type(byte[].class)) - .isEqualTo("test".getBytes(ZMQ.CHARSET)) - ) - .thenCancel() - .verifyLater(); - - Thread.sleep(2000); - - ZMsg msg = ZMsg.newStringMsg("test"); - msg.wrap(new ZFrame("test-topic")); - msg.send(socket); - - stepVerifier.verify(Duration.ofSeconds(10)); - - } - - @SpringBootApplication - public static class ZeroMqSourceTestApplication { } - -} diff --git a/pom.xml b/pom.xml index 18ffbc84..7a593f60 100644 --- a/pom.xml +++ b/pom.xml @@ -7,12 +7,11 @@ stream-applications 5.0.0-SNAPSHOT stream-applications - Functions and Infrastructure for stream applications + Infrastructure for Stream Applications pom stream-applications-build - functions applications stream-applications-release-train diff --git a/stream-applications-build/pom.xml b/stream-applications-build/pom.xml index 05bf3795..8b3b5adb 100644 --- a/stream-applications-build/pom.xml +++ b/stream-applications-build/pom.xml @@ -7,7 +7,7 @@ stream-applications-build 5.0.0-SNAPSHOT stream-applications-build - Common Parent for Functions and Applications + Common Parent for Stream Applications pom @@ -36,26 +36,24 @@ true 0.0.35 - 3.1.8 - 6.0.16 + 3.2.3 + 6.1.4 - 3.0.13 - 3.0.10 - 2022.0.4 + 2023.0.0 4.0.5 - 4.0.6 - 4.0.5 + 4.1.0 + 4.1.0 - 1.18.3 - 5.13.2 + 1.19.5 + 5.15.0 4.0.14 2.5.2 3.1.0 - 3.0.2 - 3.0.2 + 3.0.4 + 3.0.5 5.5.0 1 diff --git a/update-project-version.sh b/update-project-version.sh index f3ee1064..e840b555 100755 --- a/update-project-version.sh +++ b/update-project-version.sh @@ -39,8 +39,6 @@ $SCDIR/mvnw versions:set-property -pl :stream-applications-release-train \ -DskipResolution=true -s .settings.xml -DgenerateBackupPoms=false -B $VERBOSE \ -Dproperty=apps.version -DnewVersion="$VERSION" -$SCDIR/mvnw install -pl :function-dependencies -am -DskipTests -T 1C - OLD_RT_VERSION=$($SCDIR/mvnw help:evaluate -Dexpression=project.version -q -DforceStdout -f ./stream-applications-release-train 2> /dev/null) OLD_RT_VERSION=$(find_version "$OLD_RT_VERSION") echo "Release Train Version: [$OLD_RT_VERSION] -> [$RELEASE_TRAIN_VERSION]"

    CHL3}D(gNVe0gJOTk>?s(;?qvU7O_lxgS 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ȟAW?yM-S}DgPA|A7?7EGlt{;7~wbv_XM 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%0DBb^V6EGh*&=5My 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 Wis0iHI-1AWU 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%0Avn3xwPiCFi1(yplP#6mDe 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

    4~Z8lSw?crr7P;P^cs8gVL}~x`!kVr?ACF@X6Ek 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