These are chat archives for paypal/squbs

11th
Nov 2016
Anil Gursel
@anilgursel
Nov 11 2016 00:52
@akara Need to come up with a new project name for things that are not specific to httpclient.. for instace,
  • EndpointResolver (can be used by http client, by also other connection resolutions, e.g., Kafka)
  • EnvironmentResolver
  • Circuit Breaker
  • Metrics (can be used by http client as well as unicomplex) - Not sure if this fits into the same bucket as above..
Akara Sucharitakul
@akara
Nov 11 2016 00:53
One or multiple projects? What do you think?
Anil Gursel
@anilgursel
Nov 11 2016 00:54
Potential names:
  • squbs-common
  • squbs-core —> These are not necessarily core things that we built squbs on top of, but instead supplemantary features.
  • squbs-util —> Don’t think these are utils
We can have multiple projects, but, I’d try to keep the list short. 1 at most 2.. But, of course depending on the need, we can extend.. It is better to keep modularity cleaner..
Akara Sucharitakul
@akara
Nov 11 2016 00:54
Got to be careful with the name "core". Bit me in the past.
Unix core files are named "core".
Anil Gursel
@anilgursel
Nov 11 2016 00:55
Among the three, I prefer squbs-common.. But, I do not like that neither :)
Akara Sucharitakul
@akara
Nov 11 2016 00:55
Yeah, pretty much as good as squbs-misc
When I look at your list, I see some stuff related to networking/communications and then there is metrics.
There is also real utils like the ConfigUtil.
Anil Gursel
@anilgursel
Nov 11 2016 00:58
yes.. good point
Akara Sucharitakul
@akara
Nov 11 2016 00:58
I don't have a good feeling about creating 3 additional projects.
Anil Gursel
@anilgursel
Nov 11 2016 00:59
squbs-tools
Akara Sucharitakul
@akara
Nov 11 2016 00:59
Hmm
Or we come up with a name out of this world (similar to Unicomplex)
Anil Gursel
@anilgursel
Nov 11 2016 01:01
:D
Akara Sucharitakul
@akara
Nov 11 2016 01:02
Let me go find a good name from the Borg then.
Anil Gursel
@anilgursel
Nov 11 2016 01:03
unicomplex relates to its name though
Akara Sucharitakul
@akara
Nov 11 2016 01:13
Yes, correct.
Anil Gursel
@anilgursel
Nov 11 2016 01:22

squbs-streams => we can move PersistentBuffer here, also add Circuit Breaker here, if we can have a stream based solution.

squbs-util => ConfigUtils can go here, but not sure what else would go here.

squbs-metrics => Metrics can go here, but it is too much to create a project just for the metrics. Maybe we can have squbs-addons and move metrics there?

But, I do not want to introduce many projects.. Also, could find a good name for a project where Endpoint and EnvironmentResolver would be in..

Akara Sucharitakul
@akara
Nov 11 2016 01:24
I was thinking of a separate squbs-metrics project. That is probably not a big issue.
However, there is stuff like serializers, deserializer that we have to look at. Resolvers. and then ConfigUtil.
And squbs-util would be the right place for that.
But I just don't like the name util.
Anil Gursel
@anilgursel
Nov 11 2016 01:26
me neither..
Akara Sucharitakul
@akara
Nov 11 2016 01:26
Trying to find some good term to represent those miscellaneous stuff.
You know, lets call it squbs-util or squbs-misc for now. We just need to find the right name later. squbs-etc is also not exactly what I wanted.
Akara Sucharitakul
@akara
Nov 11 2016 01:33
Thanks for the merge!
Anil Gursel
@anilgursel
Nov 11 2016 02:38
Akara Sucharitakul
@akara
Nov 11 2016 04:31
Feels almost like we could have written that.
Akara Sucharitakul
@akara
Nov 11 2016 07:15
@anilgursel #316 is ready for review.
I did remove Spray from most of the rest. There is one validation test case in squbs-pattern still using spray-json. I'll look into that next I have time.
I'll leave the removal of squbs-pipeline and the streaming package move of squbs-streamingpipeline to you as you're in the middle of squbs-httpclient changes. Also squbs-streamingpipeline should probably be renamed squbs-pipeline.
With these two, we will have Spray completely removed. Just need to double-check the dependencies.
Anil Gursel
@anilgursel
Nov 11 2016 14:53
I agree
Anil Gursel
@anilgursel
Nov 11 2016 15:18

@akara #316 looks ok, but Travis is not happy.

[info] *** 1 TEST FAILED ***
[error] Failed: Total 151, Failed 1, Errors 0, Passed 150
[error] Failed tests:
[error]      org.squbs.stream.PerpetualStreamSpec
[WARN] [11/11/2016 07:19:00.090] [IllegalStateStream-akka.actor.default-dispatcher-4] [akka://IllegalStateStream/user/IllegalStateStream] Graceful stop failed with akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://IllegalStateStream/user/IllegalStateStream/IllegalStateStream#-518377558]] after [3000 ms]. Sender[null] sent message of type "org.squbs.lifecycle.GracefulStop$". in 3000 milliseconds
[info] - should properly drain the stream with KillSwitch shutdown *** FAILED ***
[info]   akka.pattern.AskTimeoutException: Ask timed out on [ActorSelection[Anchor(akka://KillSwitchStream/), Path(/user/KillSwitchStream/KillSwitchStream)]] after [30000 ms]. Sender[null] sent message of type "org.squbs.stream.NotifyWhenDone$".
[info]   at akka.pattern.PromiseActorRef$$anonfun$1.apply$mcV$sp(AskSupport.scala:604)
[info]   at akka.actor.Scheduler$$anon$4.run(Scheduler.scala:126)
[info]   at scala.concurrent.Future$InternalCallbackExecutor$.unbatchedExecute(Future.scala:601)
[info]   at scala.concurrent.BatchingExecutor$class.execute(BatchingExecutor.scala:109)
[info]   at scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:599)
[info]   at akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(LightArrayRevolverScheduler.scala:331)
[info]   at akka.actor.LightArrayRevolverScheduler$$anon$4.executeBucket$1(LightArrayRevolverScheduler.scala:282)
[info]   at akka.actor.LightArrayRevolverScheduler$$anon$4.nextTick(LightArrayRevolverScheduler.scala:286)
[info]   at akka.actor.LightArrayRevolverScheduler$$anon$4.run(LightArrayRevolverScheduler.scala:238)
[info]   at java.lang.Thread.run(Thread.java:745)
[info]   ...
07:19:27.702 [pool-1-thread-1-ScalaTest-running-PerpetualStreamSpec] INFO  org.squbs.unicomplex.UnicomplexBoot$ - Started cube

I do not think it is related to this PR, but let’s double check.

Akara Sucharitakul
@akara
Nov 11 2016 15:55
We probably need to think about timeouts. Yeah, this one is safe.
There is another issue with the new Codacy plugin. Will have to downgrade. Talked to them already. It prevents master build from passing.
Akara Sucharitakul
@akara
Nov 11 2016 17:18
#316 fixed now.
Please also consider #317 and #318 allowing our master builds to succeed.
Anil Gursel
@anilgursel
Nov 11 2016 17:20
#316 merged.. Should I wait for travis to succeed for #317 and #318 ?
Akara Sucharitakul
@akara
Nov 11 2016 17:20
One more point. We have one dependency on spray-json in squbs-pattern. I've checked that spray-json is still being used by akka-http and they have made it available for Scala 2.12. My opinion is to leave it in, at least until we ported all the serializers we have.
I don't think you need to wait for a validation for #317 and #318.
This is just a plugin change.
Anil Gursel
@anilgursel
Nov 11 2016 17:23
Ok, I will merge it.. But, we seem to have some issues not related to that PR. #317 failed with
[info] org.squbs.unicomplex.InvalidProxyFlowSpec *** ABORTED ***
[info]   java.lang.ExceptionInInitializerError:
[info]   at org.squbs.unicomplex.InvalidProxyFlowSpec.<init>(InvalidProxyFlowSpec.scala:54)
[info]   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[info]   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[info]   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[info]   at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[info]   at java.lang.Class.newInstance(Class.java:442)
[info]   at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:435)
[info]   at sbt.ForkMain$Run$2.call(ForkMain.java:296)
[info]   at sbt.ForkMain$Run$2.call(ForkMain.java:286)
[info]   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[info]   ...
[info]   Cause: java.util.concurrent.TimeoutException: Futures timed out after [5 seconds]
[info]   at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
[info]   at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:153)
[info]   at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:169)
[info]   at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:169)
[info]   at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
[info]   at scala.concurrent.Await$.ready(package.scala:169)
[info]   at org.squbs.unicomplex.UnicomplexBoot$.startServiceInfra(UnicomplexBoot.scala:471)
[info]   at org.squbs.unicomplex.UnicomplexBoot.start(UnicomplexBoot.scala:597)
[info]   at org.squbs.unicomplex.InvalidProxyFlowSpec$.<init>(InvalidProxyFlowSpec.scala:50)
[info]   at org.squbs.unicomplex.InvalidProxyFlowSpec$.<clinit>(InvalidProxyFlowSpec.scala)
[info]   …
why does th proxy still come into picture.. You had already eliminated those..
Akara Sucharitakul
@akara
Nov 11 2016 17:23
Yes, let me check. I checked the changes!
We only changed the plugin version ???
Anil Gursel
@anilgursel
Nov 11 2016 17:25
:worried:
Akara Sucharitakul
@akara
Nov 11 2016 17:25
Don't worry. Will take care.
That test is there and is correct. It should be renamed InvalidPipelineFlowSpec instead.
It is just the name that reflects the proxy.
Akara Sucharitakul
@akara
Nov 11 2016 17:50
Filed #319 to address the proxy misunderstanding.
Haseeb ur Rehman
@professorhaseeb
Nov 11 2016 21:00
hey, i have some questions, if some one has worked on paypal agreements, it would be a great help, kindly let me know
Akara Sucharitakul
@akara
Nov 11 2016 21:01
Uh, looks like wrong place. We do infrastructure software, not agreements. I have to redirect you.
Can you please let me know what you're looking for?
Haseeb ur Rehman
@professorhaseeb
Nov 11 2016 21:03
thank @akara for the quick response. I'm writing a code for a client which requires automated payment from paypal without requesting users to goto paypal every time they pay. i have seen this sort of thing on many websites but i'm unable to do it my self with the paypal api/
it will be very helpful if you can direct me to the proper way. thanks
Akara Sucharitakul
@akara
Nov 11 2016 21:05
Let me find the right contact for you. Will get back shortly.
Haseeb ur Rehman
@professorhaseeb
Nov 11 2016 21:06
Thanks, I'm looking forward.
Akara Sucharitakul
@akara
Nov 11 2016 22:43

@professorhaseeb still waiting for more responses, but this is what I have so far:

Start here
https://www.paypal-community.com/t5/US-PayPal-Community/ct-p/US

There is also a form for BT v.Zero here
https://www.braintreepayments.com/contact

I may get some more responses. But please try out these links.

Akara Sucharitakul
@akara
Nov 11 2016 23:38
@anilgursel Sorry for the frequent ones. Kindly review #320