Oh My.
2019-09-12 16:43:09.629 INFO 764100 --- [ctor-http-nio-4] v.a.ReactiveLifecycleAwareSessionManager : Scheduling Token renewal
AUTHENTICATED true ID gameserver-1 Authority [XXX] cred xxxxxxxxx
2019-09-12 16:43:27.630 INFO 764100 --- [ctor-http-nio-1] c.p.s.ServerStats : Server [1] reported [0] players.
2019-09-12 16:43:27.631 INFO 764100 --- [ctor-http-nio-1] c.p.s.ServerRepositoryImpl : addServerStats() #servers[1] { "serverId": "1", "numOfPlayers": "0", "location": "Temp City, USA", "memberServer": "false", "serverAddress": "localhost:4269" }
[snip]
v.a.ReactiveLifecycleAwareSessionManager : Renewing token
2019-09-12 16:44:49.704 INFO 764100 --- [ctor-http-nio-4] v.a.ReactiveLifecycleAwareSessionManager : Scheduling Token renewal
AUTHENTICATED true ID gameserver-1 Authority [XXX] cred xxxxxxx
2019-09-12 16:45:06.673 INFO 764100 --- [ctor-http-nio-1] c.p.s.ServerStats : Server [1] reported [1] players.
2019-09-12 16:45:06.674 INFO 764100 --- [ctor-http-nio-1] c.p.s.ServerRepositoryImpl : updateServerStats() #servers[1] { "serverId": "1", "numOfPlayers": "1", "location": "Temp City, USA", "memberServer": "false", "serverAddress": "localhost:4269" }
2019-09-12 16:45:14.705 INFO 764100 --- [g-Cloud-Vault-2] v.a.ReactiveLifecycleAwareSessionManager : Renewing token
2019-09-12 16:45:14.724 INFO 764100 --- [ctor-http-nio-4] v.a.ReactiveLifecycleAwareSessionManager : Scheduling Token renewal
[snip]
2019-09-12 16:51:05.151 INFO 764100 --- [g-Cloud-Vault-2] v.a.ReactiveLifecycleAwareSessionManager : Renewing token
2019-09-12 16:51:05.166 INFO 764100 --- [ctor-http-nio-4] v.a.ReactiveLifecycleAwareSessionManager : Scheduling Token renewal
AUTHENTICATED true ID gameserver-1 Authority [xxx] cred xxxxxxx
2019-09-12 16:51:06.818 INFO 764100 --- [ctor-http-nio-1] c.p.s.ServerStats : Server [1] reported [0] players.
2019-09-12 16:51:06.819 INFO 764100 --- [ctor-http-nio-1] c.p.s.ServerRepositoryImpl : updateServerStats() #servers[1] { "serverId": "1", "numOfPlayers": "0", "location": "Temp City, USA", "memberServer": "false", "serverAddress": "localhost:4269" }
Did I mention I hate functional programming and lambdas? Except Optionals and Providers.
I finally have a fully secured, custom reactive vault server implementation, that I can now use in my game for users, apps and anything else that needs it.
I had to implement a custom authorization manager and was able to get it working except for a bug in ONE LINE in the LAST METHOD. I understood exactly what was wrong, could easily fix it with normal java techniques or if this was a REST server but this crap is streams, lambda, functions and reactive programming.
Once upon a time I could of grabbed a good book on the subject and persevered. Not so easy now days. I literally read hundreds of terse, poorly written web pages written by people who mean well but suck at teaching. This includes the java tutorials. I even read the table of contents on dozens of books and their sample chapters which I am really good at determining the quality of the teaching from.
But like Paul mentioned, you may only get a chapter or less out of them worth a crap. Most were 2 pages at best. Though I consider myself a moderately skilled java coder, I am totally green on functional reactive programming and the light bulb just wouldnât turn on.
Did I mention I hate functional programming? Except Optionals and Providers.
Finally, after turning every link on the subject in google and bing purple (literally hundreds) and 7 days, 8-12 hrs a day of reading, I ran across this.
https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-QuickStart/index.html#
It helped because it uses a proper teaching technique but it wasnât until I found this link at the very bottom of that page, literally the last link in the summary,
To learn more about Java and related topics check out the Oracle Learning Library.
that I got rid of my huckleberry. If you follow the learn link and enter lambdas
in the search there is a free course on lambdas and streams that is just dam good stuff.
I still suck at this type of programming and think that its a total waste of effort for such a small gain. You give up readability for terse code and excruciatingly painfully hidden bugs using this crap.
I can see how some people could like it for some things but I truly donât get the hard swing to using it that I see happening. Why not just binary code instead? About as intuitive.