Alpakka 1.0-M2
Second milestone release for Alpakka 1.0
Many modules have been restructured to meet the preferred code layout as illustrated by the Reference connector.
On this Road to Alpakka 1.0 we are deliberately making a lot of non-compatible API changes to many connectors. From version 1.0 Alpakka will stay binary-compatible between minor releases.
Having that said, Alpakka will start to make use of the @ApiMayChange
annotation to keep the door open for API changes in new modules, so that they can evolve more rapidly than other modules within Alpakka.
Even modules that have been changed to meet Alpakka 1.0 standards might get more API-breaking changes before Alpakka reaches 1.0. If you prefer adapting to these changes in one bigger step, keep the version you are using until Alpakka 1.0 is final.
Everything done in this release is in the milestone.
Highlights in this release
- new Akka Stream native MQTT Streaming Connector thanks to @huntc, the existing Eclipse Paho-based connector will stay around for a while but might be discontinued in the future
- new Couchbase Connector which even is the base for the new Akka Persistence Couchbase, thanks to @dannylesnik
- refactoring of the S3 Connector. See below for more details
- refactoring of the JMS Connector. Also support for retries and connection status thanks to @andreas-schroeder
- refactoring of the Google Cloud Pub/Sub Connector thanks to @tg44
Changes per module
AMQP
- automatic recovery is disabled by default #1273
Apache Geode
- updated to Geode
1.8.0
#1374
Apache Solr
- support for optional routing value #1301
- fixed a bug where requests could be reordered #1363
- handle errors with Akka supervision #1351
AWS DynamoDB
AWS S3
The S3 module has been refactored to follow the preferred code layout. This means that all of the factory methods have been moved from S3Client
instance to a static factory S3S3. Also the factory method return types have been cleaned from Future
CompletionStage
types.
These changes have been done with the intention to embrace the blue-print nature of Akka Stream API. Any Source
, Flow
or a Sink
should be reusable even across different ActorSystem
s. The old S3 module API made every stream related to a particular instance of S3Client
, which was in turn related to a particular ActorSystem
, ActorMaterializer
and S3Settings
. New API frees the factory methods from these dependencies. All of the required resources are injected during the materialization time.
If you are loading S3Settings
from the application.conf
then migration should be done by changing all method calls on s3Client
instance to method calls on the S3S3 factory. If you were using multiple s3Client
instances with different configurations, then take a look at the new documentation section about how to use S3Attributes
to apply different S3Settings
to different parts of the same Akka Stream graph.
The configuration path has been shortened from akka.stream.alpakka.s3
to alpakka.s3
. Please update your application.conf
files accordingly.
Other S3 changes:
- allow to get object metadata without size limit #1332
- path-style access is now the default #1308
- requests are now retried for S3 internal errors #1303
- fix session token access #1299
- downloaded file is wrapped into an
Option
to allow for missing files #1275 - cache control added to object metadata requests #1274
- support for exceptions from non XML responses #1265
AWS SNS
- added support for per message destinations #1267
AWS SQS
Breaking API changes
- added support for per message destinations #1267
- fixed a bug where the connector would not always complete #513
- added support for visibility timeout #1287
- fixed missing equality in model classes #1310
Couchbase
- new Couchbase connector #36
Elasticsearch
FTP
- upgraded dependencies #1372
Google Cloud Pub/Sub
Breaking API changes
- refactored the connector to more closely follow Alpakka connector guidelines #1258
- added a backoff when no messages are fetched #1259
- removed not used api key parameter #1407
JMS
Breaking API changes
- refactored the connector to more closely follow Alpakka connector guidelines #1314
- added retry support to producer #1227
- added connection status support #1252
- improved pass-through support #1331
MQTT
- added support to offline persistence settings #1272
MQTT Streaming
- new Akka Stream native MQTT connector #892
CSV
- added support for non-standard line endings #1398
XML
Breaking API changes
Acknowledgements
This release was made possible by a lot of new and earlier contributors:
Author | Commits | Lines added | Lines removed |
---|---|---|---|
36 | 5138 | 4834 | |
30 | 13003 | 9262 | |
20 | 8975 | 1263 | |
10 | 720 | 865 | |
4 | 1797 | 618 | |
3 | 1303 | 1019 | |
3 | 179 | 93 | |
3 | 95 | 14 | |
2 | 2000 | 4 | |
2 | 204 | 147 | |
2 | 176 | 65 | |
2 | 10 | 401 | |
1 | 1205 | 1153 | |
1 | 278 | 51 | |
1 | 161 | 23 | |
1 | 96 | 13 | |
1 | 89 | 8 | |
1 | 82 | 18 | |
1 | 53 | 6 | |
1 | 29 | 59 | |
Grigorii Chudnov | 1 | 29 | 6 |
1 | 20 | 22 | |
1 | 18 | 1 | |
1 | 17 | 6 | |
1 | 17 | 6 | |
1 | 10 | 4 | |
1 | 8 | 7 | |
1 | 7 | 1 | |
1 | 3 | 3 | |
1 | 3 | 3 | |
1 | 1 | 1 | |
1 | 1 | 1 | |
1 | 1 | 1 |