Open artembilan opened 5 years ago
Unfortunatey, the release notes for 0.14.0 state "Note: Windows platform will be unsupported going forward for this library."
As someone who's current task at work is to develop an application that must put to kinesis, for which this library sounds perfect, but is developing on a windows machine, this is disappointing news. It is also not what I would expect from Amazon.
Thanks @ScottDennison , for the pointer !
Well, that's really unfortunate for this library to lose a whole bunch of users...
We can live with that in the future when we get used already for the fact, but for now we just fail with NPE
instead of reasonable error message:
Caused by: java.lang.RuntimeException: Could not copy native binaries to temp directory C:\Users\ARTEMB~1\AppData\Local\Temp\amazon-kinesis-producer-native-binaries
at com.amazonaws.services.kinesis.producer.KinesisProducer.extractBinaries(KinesisProducer.java:908)
at com.amazonaws.services.kinesis.producer.KinesisProducer.<init>(KinesisProducer.java:245)
at org.springframework.integration.aws.kinesis.KplKclIntegrationTests$TestConfiguration.kplMessageHandler(KplKclIntegrationTests.java:167)
at org.springframework.integration.aws.kinesis.KplKclIntegrationTests$TestConfiguration$$EnhancerBySpringCGLIB$$e1d24458.CGLIB$kplMessageHandler$3(<generated>)
at org.springframework.integration.aws.kinesis.KplKclIntegrationTests$TestConfiguration$$EnhancerBySpringCGLIB$$e1d24458$$FastClassBySpringCGLIB$$8e067b04.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
at org.springframework.integration.aws.kinesis.KplKclIntegrationTests$TestConfiguration$$EnhancerBySpringCGLIB$$e1d24458.kplMessageHandler(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 82 more
Caused by: java.lang.NullPointerException
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2314)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:2270)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2291)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:2246)
at com.amazonaws.services.kinesis.producer.HashedFileCopier.copyFileFrom(HashedFileCopier.java:52)
at com.amazonaws.services.kinesis.producer.KinesisProducer.extractBinaries(KinesisProducer.java:894)
this is a break of semver
Thank you for opening this issue to help track customers impacted by version 0.14.0 not shipping with windows binaries. Please +1 this issue to help us prioritize adding this binary back into the released libraries.
@Cory-Bradshaw Is there any justification for this decision (not ship Windows native bins from 0.14.x onwards)? I was just developing an application and bumped into this... there does not seem to be any reason on the README other than the note. I'm curious about the underlying rationale:
Perhaps the community can step forward, take it from there and fix it at some point in the future if the main reason(s) behind are just a few technical issues to overcome?
@brainstorm ,
The underlying reason was due to the technical problems with supporting a windows build environment in the KPL, which required having separate branches to have a window's buildable KPL, and lack of resources to setup and configure the windows build environment. This is something we would like to support again, but we are currently focused on higher impact feature deliveries for our customers.
If you or another customer can provide a PR that includes a travis setup for windows to build this component from the master branch, it will definitely be something we can add back into the project.
Hi @Cory-Bradshaw , do you guys have any plans to support Windows again in a near future? (8-6 months-) Just to decide if I go to Linux / WSL or if I can wait for some time :)
Sorry, I don't support this project. I also need Windows for my target solutions based on this project. Not sure why you ask me to do something... That's exactly my request to AWS to bring Windows support back.
Thanks for understanding!
Any update on this?
I actually don't care that it doesn't support windows per se as the server runs linux BUT,
This error makes it impossible for windows users to even run unit tests that happen to new up the KinesisProducer. Devs should be able to at least WORK with the library in systems, even if they are not going to hook up to Kinesis.
I would tend to say that a constructor should NOT copy things around on disk, and it if DOES it should throw a IOException, not a unspecific RuntimeException. If this action was moved to where the binaries were actually needed rather than on construction it would help.
Also, if there are no windows binaries then the error should say that, rather than a NPE.
I commented almost 3 years ago on this. Still not fixed. Sad.
On Thu, Jul 28, 2022, 4:59 PM Ryan Bergman @.***> wrote:
Also, if there are no windows binaries then the error should say that, rather than a NPE.
— Reply to this email directly, view it on GitHub https://github.com/awslabs/amazon-kinesis-producer/issues/284#issuecomment-1198673012, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLF2TWUMUSJBRDXXXZNQNLVWL7FLANCNFSM4JP4FJWA . You are receiving this because you commented.Message ID: @.***>
Sad to see that this still is an issue
OOh wow, biggest "Screw you windows" I've ever seen
this issue still persists with 0.15.8 version
this documentation that claims windows binaries are included should probably updated eh? https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-dl-install.html
Hey there. Any updates for this? The latest version is 0.15.10 and still nothing. It's really a shame.
any ideas where can we take the binaries from?
The fact that the Windows binaries are not supported anymore is such a bummer and a huge surprise coming from Amazon which did not brought them back even now after years of complaints. This problem eliminates completely the option to develop an app on Windows systems using KPL ... it is such a disappointment.
See what we have in Maven Central: https://repo1.maven.org/maven2/com/amazonaws/amazon-kinesis-producer/0.14.0/
At the same time the previous version
0.13.1
is OK.Thanks