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

Changes per module

AMQP

  • automatic recovery is disabled by default #1273

all closed issues

Apache Geode

  • updated to Geode 1.8.0 #1374

all closed issues

Apache Solr

  • support for optional routing value #1301
  • fixed a bug where requests could be reordered #1363
  • handle errors with Akka supervision #1351

all closed issues

AWS DynamoDB

  • base url is now overridable #1384
  • added support for transactional operations #1408

all closed issues

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 FutureCompletionStage 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 ActorSystems. 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

all closed issues

AWS SNS

  • added support for per message destinations #1267

all closed issues

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

all closed issues

Couchbase

  • new Couchbase connector #36

all closed issues

Elasticsearch

  • fixed retry logic #1300
  • scroll duration is now configurable #1366

all closed issues

FTP

  • upgraded dependencies #1372

all closed issues

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

all closed issues

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

all closed issues

MQTT

  • added support to offline persistence settings #1272

all closed issues

MQTT Streaming

  • new Akka Stream native MQTT connector #892

all closed issues

CSV

  • added support for non-standard line endings #1398

all closed issues

XML

Breaking API changes

  • fixed parsing subtrees with namespaces #1277
  • moved ParseEventMarker to correct package #1373

all closed issues

Acknowledgements

This release was made possible by a lot of new and earlier contributors:

Author Commits Lines added Lines removed
2m 2m 36 5138 4834
ennru ennru 30 13003 9262
huntc huntc 20 8975 1263
sullis sullis 10 720 865
andreas-schroeder andreas-schroeder 4 1797 618
RustedBones RustedBones 3 1303 1019
cheleb cheleb 3 179 93
gregbeech gregbeech 3 95 14
dannylesnik dannylesnik 2 2000 4
jtjeferreira jtjeferreira 2 204 147
giena giena 2 176 65
juanjoDiaz juanjoDiaz 2 10 401
tg44 tg44 1 1205 1153
gabfssilva gabfssilva 1 278 51
bigmoby bigmoby 1 161 23
michaelpisula michaelpisula 1 96 13
fbessadok fbessadok 1 89 8
bpiper bpiper 1 82 18
barakbaronk barakbaronk 1 53 6
stephennancekivell stephennancekivell 1 29 59
Grigorii Chudnov 1 29 6
scoquelin scoquelin 1 20 22
duartepinto duartepinto 1 18 1
longshorej longshorej 1 17 6
DmitryBMsk DmitryBMsk 1 17 6
gabrielreid gabrielreid 1 10 4
tPl0ch tPl0ch 1 8 7
odd odd 1 7 1
gchudnov gchudnov 1 3 3
Ewan-Keith Ewan-Keith 1 3 3
raboof raboof 1 1 1
sergeantwolf sergeantwolf 1 1 1
btapo btapo 1 1 1
Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.