• cheeser
  • ernimril
  • joed
  • kinabalu
  • lunk
  • ojacobson
  • r0bby
  • ThaDon
  • ricky_clarkson
  • topriddy

« 2019-02-10


2019-02-12 »

Nick Message Date
bdonnahue2 [bdonnahue2!~bdonnahue@] has joined ##java [12:04]
immibis [immibis!] has joined ##java [12:19]
erg0s1 [erg0s1!~erg0s1@] has joined ##java [12:20]
Psybur [Psybur!~Psybur@unaffiliated/psybur] has joined ##java [12:25]
metrixx [metrixx!~metrixx@unaffiliated/metrixx] has joined ##java [12:30]
SuperTyp [SuperTyp!~SuperTyp@] has joined ##java [12:31]
deebo [deebo!] has joined ##java [12:34]
wbrawner [wbrawner!~wbrawner@] has joined ##java [12:35]
wbrawner [wbrawner!~wbrawner@] has joined ##java [12:43]
Jantz [Jantz!] has joined ##java [01:02]
extenuate [extenuate!uid96210@gateway/web/] has joined ##java [01:04]
t2mkn [t2mkn!~t2mkn@] has joined ##java [01:12]
wbrawner [wbrawner!~wbrawner@] has joined ##java [01:20]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [01:26]
deebo hmm testCompile(':siblingProject') broke in gradle upgrade, anyone happen to have run into the same? google fu is not producing results [01:31]
SuperTyp [SuperTyp!~SuperTyp@] has joined ##java [01:32]
zulutango [zulutango!] has joined ##java [01:33]
ogradyd [ogradyd!~Thunderbi@2a02:8070:88bf:9df0::212] has joined ##java [01:42]
deebo ok it was something that changed in spring boot configs, it stopped building the plain jar of the project so it couldn't be used as a dependency [01:45]
wbrawner [wbrawner!~wbrawner@] has joined ##java [01:46]
palasso [palasso!~palasso@unaffiliated/palasso] has joined ##java [01:53]
computeiro [computeiro!~computeir@] has joined ##java [01:53]
OnceMe [OnceMe!~OnceMe@unaffiliated/onceme] has joined ##java [01:57]
wbrawner [wbrawner!~wbrawner@] has joined ##java [02:00]
pangolino [pangolino!~pangolino@] has joined ##java [02:02]
kikudjiro [kikudjiro!~kikudjiro@] has joined ##java [02:03]
w17t [w17t!~w17t@unaffiliated/w17t] has joined ##java [02:05]
Nicmavr [Nicmavr!~Nicmavr@unaffiliated/nicmavr] has joined ##java [02:05]
Markow [Markow!~ejm@] has joined ##java [02:08]
wbrawner [wbrawner!~wbrawner@] has joined ##java [02:14]
ravenousmoose [ravenousmoose!~ravenousm@] has joined ##java [02:14]
wbrawner [wbrawner!~wbrawner@] has joined ##java [02:17]
bnyio [bnyio!] has joined ##java [02:24]
Souvent22 [Souvent22!] has joined ##java [02:28]
Zee- [Zee-!~Zee-@] has joined ##java [02:32]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [02:34]
mitch0 [mitch0!] has joined ##java [02:35]
Kol [Kol!] has joined ##java [02:37]
sbeex [sbeex!~sbeex@] has joined ##java [02:39]
nebulae [nebulae!~nebulae@2a02:587:a25:c400:cc69:1022:3cc2:f7ac] has joined ##java [02:42]
w17t [w17t!~w17t@unaffiliated/w17t] has joined ##java [02:43]
w17t [w17t!~w17t@unaffiliated/w17t] has joined ##java [02:46]
pangolino [pangolino!~pangolino@] has joined ##java [02:48]
w17t [w17t!~w17t@unaffiliated/w17t] has joined ##java [02:48]
ravenousmoose [ravenousmoose!~ravenousm@] has joined ##java [02:51]
enoq [enoq!~enoq@2a02:8388:6a87:b080:649f:9456:c1b1:28e4] has joined ##java [02:55]
enoq [enoq!~enoq@2a02:8388:6a87:b080:649f:9456:c1b1:28e4] has joined ##java [02:57]
w17t parted the channel: "WeeChat 2.3" [02:58]
SuperTyp [SuperTyp!~SuperTyp@] has joined ##java [03:07]
enoq [enoq!~enoq@2a02:8388:6a87:b080:649f:9456:c1b1:28e4] has joined ##java [03:07]
Globe_Bloater [Globe_Bloater!] has joined ##java [03:12]
Matthijs [Matthijs!~quassel@unaffiliated/matthijs] has joined ##java [03:15]
dmiles [dmiles!] has joined ##java [03:21]
dmiles Are java method refernces jsut syntactic sugar? of did the JVM have to undergo changes to allow them? [03:22]
dmiles the compiler compile them into invoke_static and invoke_virtual as normal? [03:24]
deathwishdave [deathwishdave!~deathwish@] has joined ##java [03:24]
yawkat They are compiled to indy [03:25]
enoq [enoq!~enoq@2a02:8388:6a87:b080:3f30:9f7d:611e:7eef] has joined ##java [03:25]
yawkat Indy was introduced in Java 7 however so technically no changes to the jvm for lambdas [03:25]
dmiles "indy" that is a new term for me [03:25]
yawkat Invokedynamic [03:25]
dmiles ah.. so what is it that java 1.8 does that is differnt outside of the compiler? [03:26]
dmiles (sounds like 7 had the JVM mechanics all ready) [03:27]
dmiles 7 gave the JVM support and 8 the syntax to use the 7? [03:28]
immibis they could've been made to be syntactic sugar, but then the compiler would have to generate a bajillion more class files [03:29]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [03:29]
yawkat Yes, 8 is the syntax and the necessary stdlib [03:29]
dmiles oh right the bajillion more class files [03:35]
dmiles (one for every lambda i use) [03:35]
immibis and method reference [03:36]
yawkat Which is exactly what retrolambda does [03:38]
dmiles in this case i am returning Operations to be done later.. [03:45]
dmiles dmiles's title: "SxxMachine/ at master DouglasRMiles/SxxMachine GitHub" [03:45]
dmiles Op is "Op(lambda,ArrayOfArgs,nextOp)" [03:47]
dmiles so normally the way this used to work was each Op weas its own class [03:48]
dmiles for exmaple "Op(::PRED_hash_map_2_static_exec,VA(a4, a5),null)" was done by "return new PRED_hash_map_2(a4,a5);" [03:50]
kembrek [kembrek!~kembrek@] has joined ##java [03:50]
dmiles since the compiler i am exeding already make millions of classes .. i switched to making it malke missiolns of static methodfs [03:51]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [03:53]
dmiles to make millions of static methods.. though that is slightly not the issue .. the issue is now that the old way was virtually building an AST .. like one might do in Rhino/Nashhorn [03:54]
dmiles this new way i been doing it going to static methods.. i still building the AST but inserting static methods inot each storage [03:56]
dmiles Op((Prolog e) -> PRED_call_1(e), VA(PRED_write_1, Int(1)), null).call(new Engine()); [03:59]
dmiles for example is how i print "1" [04:00]
dmiles oops that was bultin::PRED_write_1 [04:00]
dmiles the questions comming :) [04:01]
magz_ [magz_!] has joined ##java [04:02]
magz [magz!] has joined ##java [04:02]
bolovanos [bolovanos!] has joined ##java [04:02]
dmiles how do that compare to (new PRED_write_1(Int(1),null)).call(new Engine()); [04:02]
sb35 [sb35!] has joined ##java [04:03]
yawkat by what metric [04:03]
deathwishdave [deathwishdave!~deathwish@] has joined ##java [04:03]
dmiles by how much i am littering the JVM with extra struff [04:03]
DrowningElysium [DrowningElysium!uid190788@gateway/web/] has joined ##java [04:04]
yawkat depends on who you ask [04:04]
dmiles a couple users insisted the SxxMachine would be better of f if i used lambdas and method refercnes more [04:04]
yawkat the only way to know is proper benchmarks [04:04]
yawkat lambdas have the benefit of closing over less and using fewer classes, but if your types are always different they too will generate tons of classes [04:05]
yawkat and class gen at startup can be slow, and MHs arent that fast either yet [04:05]
dmiles efer line of PRolog code that i comp0ile into Java can accdidently become 20 lambdas [04:05]
dmiles every line* [04:06]
yawkat whats the alternative? 20 anonymous classes? [04:06]
yawkat honestly though, youre writing a source-to-source compiler, it's bound to have non-optimal performance :D [04:06]
dmiles 10 anonymous classes [04:06]
yawkat 10 anon classes are probably better than 20 lambdas. [04:06]
yawkat again, very much depends on lots of things though. [04:07]
dmiles i do really have to benchmark i suppose .. teh reason i been delaying it is i need to port some imporovemnts i made to the other style [04:08]
dmiles one user was saying how nice it would be if i use java enums instead of my "static final short MYFLAG = ..." in varous places.. i knew at least in that case it would not be any sort of imporvment :P [04:11]
yawkat it would certainly be nicer if the users actually have to touch it as an api [04:12]
yawkat but if it's generated code... eh [04:12]
Me4502 [Me4502!~Me4502@unaffiliated/me4502] has joined ##java [04:13]
dmiles well its a lonely affair working on this system .. so i been entertaining making it so other people will like helping [04:13]
yawkat helping != using code directly [04:14]
yawkat i believe antlr does the same using-ints-for-enums too for non-public api [04:14]
dmiles i do it becaus ei like to maintain java 1.3 backwards compatibility [04:15]
yawkat O.o [04:16]
dmiles (so that will work everywhere) [04:16]
yawkat yet you use lambdas? [04:16]
dmiles well i am willing to move up to 1.8 .. :) .. just refuse to use java Enums [04:16]
dmiles well i am using 1.8 but considering backing down to -source 1.6 [04:20]
Jantz [Jantz!~IceChat9@2407:7000:8d04:100:8c4a:385f:5ecf:6544] has joined ##java [04:20]
dmiles since i not seeing it would allow me to produce code any more eprformant [04:21]
yawkat im sure i could make up a scenario where short would be slower. but imo theres usually no difference [04:22]
yawkat use whatever if it's internal to the generated code, use enums where users touch it [04:23]
dmiles yeah Enums actually make things slightly easier to debug [04:25]
dmiles (since they have a toString() that tells you about wher ethey came from) [04:26]
dmiles <- this is how i do Enums though in 1.4 :P [04:26]
dmiles dmiles's title: "CYC_JRTL_with_CommonLisp/ at larkc TeamSPoon/CYC_JRTL_with_CommonLisp GitHub" [04:26]
t2mkn [t2mkn!~t2mkn@] has joined ##java [04:28]
dmiles static final Object MY_WHATNOT = new Object(){ tostring(){"myWhatnot"}} [04:29]
dmiles enums save us from that line anyways now [04:30]
[twisti] did H2 drop support for the "use" statement ? since we updated our dependency we are getting an error that looks like "org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "USE[*]... [04:30]
[twisti] but we have used this SQL against H2 in the past [04:30]
ekleog [ekleog!~ii@prologin/ekleog] has joined ##java [04:31]
gryffus_ [gryffus_!~gryffus@unaffiliated/gryffus] has joined ##java [04:32]
yawkat [twisti]: does it match against ? that page is very useful and it's *complete* [04:34]
[twisti] it does not, which is strange, because like i said, it used to work just fine [04:37]
[twisti] so how DO i switch schema in H2 ? [04:37]
yawkat has to go for now [04:38]
[twisti] at a glance, "SET SCHEMA" seems to work. now i wonder why "USE" ever worked [04:42]
dmiles dear god this is totaly gross [04:44]
sbeex Hi, I woule like to run all tests except such specified in a test suite (those are slow and will be executed only after mege into develop branch) I try to achieve this with maven and testng is it possible ? Thank you [04:44]
dmiles I know why i used "(Prolog e) -> doit_static_exec(e)" is only so i can use "import static" [04:46]
dmiles sine ::doit_static_exec is illegal syntax right? [04:46]
MadLamb [MadLamb!~fabio@] has joined ##java [04:47]
DTZUZO [DTZUZO!] has joined ##java [04:48]
dmiles its is why i have 20 lambdas yet only needed 10 methods [04:48]
dmiles i need to use dunno_where_it_will_come_from::doit_static_exec [04:49]
MadLamb Hey. I'm using Spring Boot and trying to validate a Bearer token I receive with Firebase Admin SDK. I could add this validation code in every single controller, but I am wondering if there isnt a way to apply to every request. Something like a route guard. [04:49]
dmiles though one work arround is to make all these static classes subclass each other.. and use the most baby class [04:50]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [04:55]
[twisti] sbeex: might help [04:57]
[twisti] sbeex: alternatively [04:58]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [04:59]
Anthaas [Anthaas!~Anthaas@unaffiliated/anthaas] has joined ##java [05:02]
Gazooo [Gazooo!~Gazooo@] has joined ##java [05:08]
Gazooo [Gazooo!~Gazooo@] has joined ##java [05:24]
mona_x [mona_x!~mona_x@] has joined ##java [05:29]
themsay [themsay!~themsay@] has joined ##java [05:31]
sbeex [twisti]: thanks! exactly what I needed it is also suported by the maven surefire plugin great [05:34]
sbeex twisti++ [05:34]
sbeex twisti has a karma level of 5, sbeex [05:34]
mona_x [mona_x!~mona_x@] has joined ##java [05:41]
ilikecrunch [ilikecrunch!~ilikecrun@] has joined ##java [05:41]
togo [togo!~togo@2a01:5c0:e08f:71c1:462e:547b:133c:1d21] has joined ##java [05:48]
mona_x [mona_x!~mona_x@] has joined ##java [05:48]
t2mkn [t2mkn!~t2mkn@] has joined ##java [05:53]
Karyon_ [Karyon_!~karyon@unaffiliated/karyon] has joined ##java [05:54]
SuperTyp OT: [05:57]
SuperTyp SuperTyp's title: "Emmet Re:view fast and easy way to test responsive design in multiple viewports" [05:57]
SuperTyp this is great [05:57]
SuperTyp oh sorry wrong channel [05:57]
somazero [somazero!~somazero@2600:8805:100:1a:60f2:271:f764:5a45] has joined ##java [06:02]
somazero_ [somazero_!~somazero@2600:8805:100:1a:a124:7041:846d:22c7] has joined ##java [06:05]
bugzy_on_busy [bugzy_on_busy!~Thunderbi@] has joined ##java [06:06]
SuperTyp [SuperTyp!~SuperTyp@] has joined ##java [06:09]
ravenousmoose [ravenousmoose!~ravenousm@] has joined ##java [06:31]
SuperTyp [SuperTyp!~SuperTyp@] has joined ##java [06:41]
nbro [nbro!~nbro@2a02:aa13:3100:6000:29b1:9689:58fd:a44c] has joined ##java [06:46]
idev [idev!~idev@unaffiliated/idev] has joined ##java [06:50]
tete_ [tete_!] has joined ##java [06:52]
tete_ hi, i use spotbugs and mockito. in one of my test classes, i use a verify call to check, that a method from a mock has been called. the verify returns a value. spotbugs complains now because this return value is never checked. so spotbugs thinks, this whole check could be removed. its imo a false positive. in the message they write i could use the @CheckReturnValue annotation, but i have no idea how. someone familiar with that? [06:53]
troulouliou_div2 [troulouliou_div2!~troulouli@unaffiliated/troulouliou-div2/x-0271439] has joined ##java [06:53]
v01d4lph4 [v01d4lph4!~v01d4lph4@] has joined ##java [06:55]
troulouliou_div2 [troulouliou_div2!~troulouli@unaffiliated/troulouliou-div2/x-0271439] has joined ##java [06:58]
troulouliou_div2 [troulouliou_div2!~troulouli@unaffiliated/troulouliou-div2/x-0271439] has joined ##java [07:02]
troulouliou_div2 [troulouliou_div2!~troulouli@unaffiliated/troulouliou-div2/x-0271439] has joined ##java [07:04]
troulouliou_div2 [troulouliou_div2!~troulouli@unaffiliated/troulouliou-div2/x-0271439] has joined ##java [07:06]
troulouliou_div2 [troulouliou_div2!~troulouli@unaffiliated/troulouliou-div2/x-0271439] has joined ##java [07:08]
Addax tete_: yes. [07:18]
tete_ Addax, can you tell me what arguments i have to pass to that annotation to ignore the return value? [07:19]
Matthijs You can also define project level exclusion rules for all test files. [07:20]
Addax you can ALSO tell yourself "oh yeah, *I* am the programmer and I'm smarter than the damn tools I'm using" [07:20]
nokdoot [nokdoot!~nokdoot@] has joined ##java [07:21]
Matthijs In this case that's definitely true. [07:21]
tete_ Addax, i dont get that - what do you mean? [07:22]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [07:22]
Addax tete_: "this idiot program keeps telling me that my test is wrong" -- well, it's an idiot program [07:22]
Addax you're not an idiot program. You win. [07:22]
tete_ the problem is that it breaks my build [07:23]
tete_ -> no artefacts [07:23]
gryffus [gryffus!~gryffus@unaffiliated/gryffus] has joined ##java [07:23]
Addax a... spotbugs warning... prevents your build from completing? [07:23]
tete_ i could drop the whole spotbugs plugin, yes, but this is not a solution... actually i like it [07:23]
paul1us [paul1us!] has joined ##java [07:23]
tete_ yes when i run ./gradlew spotbugsTest it fails [07:23]
tete_ and this task is part of my pipeline [07:24]
Addax huh [07:24]
tete_ its not only generating a .xml, it fails completely [07:24]
tete_ [07:25]
paul1us hi, I am trying to upgrade from java8 to java11.I use ubuntu 18.04. I used sudo apt-get install openjdk-11-jdk, but then checked version via java -version and it is showing up as 10.0.2. any thoughts? [07:26]
tete_ paul1us, update-alternatives [07:26]
tete_ would also be important to know which build system you use, usually you can define the jdk to use there too [07:27]
markoong [markoong!~marco@] has joined ##java [07:27]
conan [conan!~conan@] has joined ##java [07:28]
AKPWD [AKPWD!] has joined ##java [07:28]
paul1us in update alternatives I see three options. two for java11 (manual and automatic) and java8(manual). [07:28]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [07:28]
paul1us tete_, by build system you mean Ubuntu build or...? [07:28]
tete_ paul1us, no, i mean the build system, like ant, maven, gradle, ... [07:29]
tete_ not your operating system [07:29]
Karyon [Karyon!~karyon@unaffiliated/karyon] has joined ##java [07:29]
paul1us we have not done anything with those yet, so I don't know. but it i'm using intellij, so maven would be my guess. but I really do not know. [07:30]
Addax maven's a good guess [07:30]
tete_ if you are the only one working on that project, you can configure that in intellij [07:30]
tete_ file -> project structure [07:31]
paul1us tete_, I am the only one. [07:31]
Addax you want maven or gradle [07:32]
tete_ there is also another location for that, and i guess both are important to set to java 11, check also settings -> build execution deployment -> build tools -> maven -> runner [07:32]
Addax doesn't matter how many people are in the team, if ANY team communication occurs you want a build tool [07:32]
Addax and here's the thing: "Gee, why did I..." <-- you are communicating with yourself, so... you want a build tool [07:33]
paul1us tete_, here's the screenshot. [07:33]
paul1us paul1us's title: "Screenshot-from-2019-02-11-13-33-02" [07:33]
tete_ first, i would delete that jdk and add it again with "11" not as "10", except you want to confuse yourself ;) [07:34]
Addax tete_: ubuntu 18 installed the 11 jdk as 10.0.2 for a while [07:34]
Addax update-alternatives is the way to go [07:35]
tete_ you need to check not only the registered JDKs but also what jdk your module is using [07:35]
tete_ serious? wow... what a nasty thing [07:35]
Addax it's ubuntu [07:35]
paul1us I did not add it as 10, it did it automatically. I am in school nad al of us were instructed to install java 11, and some of us are having this problem. [07:35]
Addax what do you expect, it's like linux for idiots [07:35]
paul1us D [07:35]
tete_ paul1us, click on "modules" [07:35]
Addax my ubuntu says it's still 10.0.2 now, for example [07:36]
tete_ make sure your modules are using java 11 [07:36]
tete_ ah i could imagine why they did that [07:36]
tete_ because of the half-year releases of the jdk, and as ubuntu is not a rolling release OS, ... [07:36]
tete_ lol [07:36]
Addax "openjdk-11-jdk is already the newest version (10.0.2+13-1ubuntu0.18.04.4)." <-- what it says [07:37]
paul1us tete_, 11 does not appear there. it is still 10.0.2+13 [07:37]
Addax paul1us: you may have to get an alternative JDK [07:37]
Addax alternatives [07:37]
Addax Addax, what does that even *mean*? [07:37]
tete_ paul1us, is your mission to install java 11 or use the version installed on the OS? [07:37]
Addax alternative [07:37]
Addax Addax, what does that even *mean*? [07:37]
Addax alternative jdk [07:37]
Addax See ~zulu, ~openjdk, ~adoptopenjdk, ~corretto, ~oraclejdk or ~ibmjdk for alternatives [07:37]
Addax there [07:37]
Addax you can ignore coretto, because it's 8-only [07:38]
Addax but zulu is good [07:38]
Addax adoptopenjdk is fine [07:38]
paul1us tete_, the mission is to install java11, so that we could all use javaFX [07:38]
tete_ oh then go with oracle [07:38]
tete_ iirc oracle has fx included [07:39]
tete_ just download the archive from the oracle homepage, extract it and add it to intellij with the "+" symbol from your screenshot [07:39]
Addax ... don't use oracle [07:40]
Addax IMO [07:40]
Addax you don't need javafx included, your build will include it for you [07:40]
MadLamb [MadLamb!~fabio@] has joined ##java [07:41]
tete_ Addax, not when he wants to run the application somewhere else [07:42]
tete_ then he needs to create a fatJar [07:42]
Addax even then, because he can do EXACTLY what you just suggested [07:42]
Addax and "run the app somewhere else" runs SMACK into oracle licensing issues [07:42]
tete_ SMACK? [07:42]
Addax "immediately, with a violent sound": SMACK! WHACK! THWACK! BONK! [07:43]
Addax or maybe paul1us is morbidly obese, or is simply inflated: WHUMPF! SSSSSSSS! [07:43]
paul1us oh dear... :D [07:45]
q9929t [q9929t!~Thunderbi@] has joined ##java [07:45]
MadLamb Hey. I'm using Spring Boot and trying to validate a Bearer token I receive with Firebase Admin SDK. I could add this validation code in every single controller, but I am wondering if there isnt a way to apply to every request. Something like a route guard. I did find this unnoficial project that uses spring security, but it seems that it enforces that I save user data in my own database, which is somethi [07:45]
MadLamb ng I do not want to do. I just need to validate the id token and somehow make the user id that comes with it available globally. How to configure/call the methods is not the issue, but where do place the code that it checks on every request. [07:45]
MadLamb MadLamb's title: "GitHub - savicprvoslav/Spring-Boot-starter: Spring boot project with preconfigured JPA, spring security, profiles, swagger and other.. to help you kick start your awesome project" [07:45]
paul1us Addax, and tete_ we were just told that the problem has to do with us using 18.04 and updrading to 18.10 solves it [07:49]
paul1us thank you for your help [07:49]
[twisti] i would like to create a lazy stream that represents a recursive file tree. is something like that possible ? i start with a single entry for the root directory, and i could expand that to the first level of subfolders with a flatmap, but how can i make that work recursively, without sacrificing the streams laziness ? [07:50]
Addax paul1us: actually, I need to do that myself, thank you [07:50]
Addax heh, upgrading to 18.10 means losing some useful features, thank you ubuntu! [07:52]
conan [conan!~conan@] has joined ##java [08:00]
someone1 [someone1!bca3014e@gateway/web/freenode/ip.] has joined ##java [08:03]
someone1 hi [08:03]
tete_ i am facing some wierd problem with java 11 which i do not understand. i have an object which creates a jaxbcontext. i created a test for it. when i run the test, everything works fine. but when i run the application, it complains about missing jaxb impl. [08:03]
someone1 are here question about graalvm appropriate? [08:03]
tete_ can someone tell me whats wrong here? [08:03]
kembrek_ [kembrek_!~kembrek@] has joined ##java [08:04]
someone1 how are you running the test? tete_ [08:04]
tete_ in intellij [08:04]
tete_ rightclick -> run test [08:04]
waz your classpath is different [08:05]
tete_ classpath or module path? [08:05]
waz you sure you're running 11 in both? [08:05]
tete_ umm... do i need a module-info for src/test too? [08:06]
Jantz [Jantz!~IceChat9@2407:7000:8d04:100:8c4a:385f:5ecf:6544] has joined ##java [08:07]
tete_ waz, i was printing the module path for the test class and the main class, they were different - but as both had a module path, i would expect both run with java 11. maybe thats wrong [08:08]
Addax did the module path that failed include jaxb? [08:09]
tete_ - not working [08:10]
tete_ - working [08:10]
tete_ maybe i should also check the classpath [08:11]
yohnnyjoe [yohnnyjoe!] has joined ##java [08:16]
Addax [Addax!~jottinger@unaffiliated/dreamreal] has joined ##java [08:17]
tete_ in both cases it uses the AppClassLoader, but in the test the classloader has about 2000 registered classes and in normal run the classloader has about 1200 classes [08:18]
tete_ but i do not understand why [08:18]
tete_ my bad, its nearly 2000 classes in normal run but in test run its about 1300 classes, in both cases i only have javax.xml.bind.JAXBException in the classes field of AppClassLoader [08:23]
bugzy_on_busy [bugzy_on_busy!~Thunderbi@] has joined ##java [08:29]
aeveltstra [aeveltstra!~aeveltstr@] has joined ##java [08:33]
extenuate [extenuate!uid96210@gateway/web/] has joined ##java [08:35]
Souvent22 [Souvent22!] has joined ##java [08:36]
Galactus_ [Galactus_!~Galactus@unaffiliated/galactus] has joined ##java [08:38]
Squarism we're using jax-rs / resteasy and i wonder what if that is a good choice or has it become dated? [08:39]
sbeex Squarism resteasy is what JBoss suggest for wildfly IIRC [08:40]
sbeex I really enjoyed working with it and it has really cool native annotations like @Cache which are not provided in jersey.. [08:40]
sbeex but well nothing you can't do with one vs the other of course [08:40]
wodencafe [wodencafe!~wodencafe@2605:6000:1517:614c:724d:7bff:fe63:71b6] has joined ##java [08:43]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [08:43]
wildlander [wildlander!~wildlande@unaffiliated/wildlander] has joined ##java [08:45]
ableto [ableto!~cryptum@] has joined ##java [08:47]
ableto parted the channel: [08:48]
deebo is gwt still active? and are there other frameworks to suggest besides gwt and vaadin for management type web apps [08:49]
deebo i guess the only requirement would be that there is no need to manage data transport between client and server (e.g. manually write rest stuff) [08:50]
Addax vaadin is apparently distinct from GWT these days and I think someone said GWT hasn't updated in over a year [08:54]
dgtlcmo [dgtlcmo!] has joined ##java [08:55]
athidhep [athidhep!~sb35@unaffiliated/athidhep] has joined ##java [08:57]
deebo yeah, didnt even realize vaadin used to be on top of gwt [09:00]
deebo just need to be able to write a management interface reusing most of the existin java services etc, so there's no overhead creating new rest apis etc [09:00]
sbeex deebo: gwt is mature and can do everything for you. SenchaGXT (ui lib) is still available with support so I would say gwt is not dead. But it's no more the "trend" [09:02]
kembrek_ [kembrek_!~kembrek@] has joined ##java [09:03]
deebo looking around for comments it seems gwt has a lot of overhead compared to vaadin, at least a few years ago [09:03]
deebo like doing struts in 2019 [09:03]
sbeex I did gwt 10 years ago for a bachelor thesis and remember two main things about it: [09:04]
sbeex awesome tool, idea concepts works great! [09:04]
sbeex but TERRIBLY slow to compile [09:04]
conan [conan!~conan@] has joined ##java [09:05]
mohsen_1 [mohsen_1!uid289573@gateway/web/] has joined ##java [09:05]
sbeex if you would like to go with gwt I would recommend to have a look a GWTP (framework) which helps quite a lot (not sure it's still maintained) [09:05]
Karyon [Karyon!~karyon@unaffiliated/karyon] has joined ##java [09:09]
sbalmos [sbalmos!] has joined ##java [09:13]
freeone3000 vaadin was really ahead of the curve the way it renders DOM to the server then sends the result to the client, and forwards clicks back. [09:13]
freeone3000 Back when it came out this was mockable, but now, it's somehow less bloated than electron, so have at it. [09:14]
Squarism sbeex, we're not using wildfly. [09:16]
Squarism So for vanilla spring theres no good reason to use it? [09:16]
Addax where did wildfly enter this conversation? [09:16]
freeone3000 if you're already using spring might as well use spring-web [09:16]
Squarism adadelta, [09:16]
Squarism gah [09:16]
Squarism Addax, "<sbeex> Squarism resteasy is what JBoss suggest for wildfly IIRC" [09:17]
Squarism freeone3000, ok. I suspected that [09:17]
sbeex Squarism: well what I wanted to say is that if Redhat support something usually you are quite sure to have a community and something well finished (aka: resteasy) [09:17]
sbeex incl the doc which is really well done [09:17]
Addax ah. Well, resteasy isn't limited to wildfly [09:17]
sbeex exactly [09:17]
Squarism What i wanted to know is if Resteasy is a recommended choice if you are using spring. Does it add something not available in spring? Say, a larger userbase. Maturity. Ease of use etc [09:19]
sbeex using spring for a rest api looks a bit overengineering for me [09:20]
Addax esp since spring supports it internally [09:20]
Squarism well... we use spring for DI [09:20]
Squarism ...and spring boot soon [09:20]
sbeex okay well I won't judge feel free :) but sure reasteasy / jersey are still very good candidates [09:21]
Addax Squarism: so RESTful interfaces are already there for you [09:21]
Psybur [Psybur!~Psybur@unaffiliated/psybur] has joined ##java [09:21]
Squarism sbeex, im asking cause i dont know what is the right choice. [09:21]
Squarism when i google stuff regarding rest id say i see more examples using vanilla spring [09:22]
sbeex the problem is that you won't find an answer to this question [09:22]
sbeex there is no RIGHT choice [09:22]
Addax Squarism: here's the thing, vanilla spring supports what you want... why not rely on that? [09:22]
Addax is it not working for you? [09:22]
Squarism ah ok. Thats good to know too [09:22]
sbeex both work very well [09:22]
sbeex both are used in many huge projects [09:23]
plitter the architecture team has asked for some input on what technologies to use in java development, I've suggested lombok, but I was wondering if there were any other libraries or tools to use for java development that are good :) [09:23]
deebo spring boot + jersey works fine for us (both server and client) [09:23]
sbeex both have their pro/cons but.. you can do everything with both [09:23]
Squarism Addax, we have 4 microservices that are built using resteasy. The guy deciding that has quit. We now want to adopt openapi and thus the question came up. Why are we using [09:23]
Squarism resteasy [09:23]
Squarism Im grateful for your reflections and information. Know i know there is no obvious choice here. [09:25]
Squarism Now i know.. [09:25]
Addax plitter: depends on what you're doing, obviously [09:25]
Addax plitter: for java, my go-tos are lombok, guava, logback, jackson (if working with JSON)... [09:26]
Addax awesome-java [09:26]
Addax Awesome java frameworks, libraries, and software: [09:26]
sbeex plitter: maybe add JSR303 (and the new one for validations) if you like it [09:26]
Diablo-D3 Squarism: whats wrong with resteasy though? [09:28]
GraysonBriggs [GraysonBriggs!~GraysonBr@unaffiliated/graysonbriggs] has joined ##java [09:28]
ArcherL [ArcherL!~ArcherL@unaffiliated/archerl] has joined ##java [09:28]
Diablo-D3 if your code already works with resteasy, switching to swagger isnt going to do anything but change for the sake of change [09:28]
plitter sbeex: Addax thanks for the suggestions :) [09:30]
Squarism Diablo-D3, idk. I get the impression that its not as widely adopted as spring web. Examples for swagger dont seem focused on resteasy [09:30]
Squarism ...or are a bit outdated [09:30]
RazielXYZ [RazielXYZ!~Raziel@unaffiliated/raziel] has joined ##java [09:30]
sbeex plitter: if oyu have to deal with some caches for some reason -> guava is really your friend there (+ a lot of other things) [09:30]
Diablo-D3 resteasy is one of two implementations of JAX-RS [09:30]
Diablo-D3 JAX-RS is part of JavaEE. [09:31]
Squarism yeah, so maybe there is no good motivation to change [09:32]
Diablo-D3 if something has a JSR number (JSR-370), you can't use "not widely adopted" as an excuse to not use it [09:32]
Squarism A guy in my group wants to get rid of resteasy for a reason i havent learned yet [09:32]
Diablo-D3 sounds like the guy in your group is lazy and doesnt want to learn it (its *very* easy, maybe easier than spring's rest api) [09:33]
Squarism Diablo-D3, jsf? [09:33]
Squarism =D [09:33]
Diablo-D3 people are still writing new jsf out there [09:33]
Squarism well, im just saying its an example of a shitty technology from oracle/sun [09:34]
runlevel7 [runlevel7!~runlevel7@unaffiliated/runlevel7] has joined ##java [09:35]
sbeex well... it's something that has been something in the past ;) [09:35]
Diablo-D3 jsf came from the early 2000s [09:36]
sbeex new chapter [09:36]
sbeex sbeex, what does that even *mean*? [09:36]
Diablo-D3 back then it was cutting edge [09:36]
cheeser it was not. [09:36]
cheeser EE specs are, by intent, not cutting edge. [09:37]
sbeex Squarism: ok now I've got your goal [09:37]
sbeex java didn't evolve a lot regarding rest but keep in mind... rest is just an "entry point" to your business service layer... it's just a "bridge" [09:39]
freeone3000 The obvious choice for "I have a webservice in java" is "I should expose it with JAX-RS" until you get some disqualifying mark (such as "I need websockets" or "I want HTTP/3" or "I want graphql") [09:39]
sbeex and what JEE provided is quite cool with a few @annotations you manage this [09:39]
Psybur [Psybur!~Psybur@unaffiliated/psybur] has joined ##java [09:40]
Diablo-D3 also btw, using swagger doesn't preclude you from using jax-rs, btw [09:41]
sbeex indeed [09:41]
Diablo-D3 swagger-codegen supports a ton of common java rest impls [09:41]
cheeser exactly. so saying you have to move away from resteasy because you want to use openapi is a non sequitur [09:42]
acidjnk [acidjnk!] has joined ##java [09:43]
puppet_ [puppet_!~Puppet__@2601:241:8d82:ac00:cc9c:a21b:d162:5b7] has joined ##java [09:43]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [09:44]
noodlepie [noodlepie!] has joined ##java [09:46]
Squarism sbeex, true. But it can be a tgime [09:49]
Squarism time sink if not having clear methods / technology [09:49]
rcvu [rcvu!] has joined ##java [09:50]
cheeser that's true of everything. [09:51]
Souvent22 [Souvent22!~eberry@] has joined ##java [09:52]
Diablo-D3 does your code work? yes? dont touch it. cant fix what aint broke. [09:53]
Squarism obviously its more timeconsuming changing a remote api that 15 systems use than jvm one internal interface [09:53]
rippa [rippa!] has joined ##java [09:53]
sbeex it's terrible the amount of java/maven libs not compatible with java 10+ [09:55]
sbeex EOL of java8 was in january right ? [09:55]
sbeex (without paying an oracle license) [09:56]
Squarism Diablo-D3, i agree. But there can be times when "yeah, were moving forward in the swamp - but we could thing about moving to the highwayh [09:56]
cheeser sbeex: or just use openjdk forever [09:56]
Addax geez, what's with people wanting to use oracle jdk lately [09:57]
sbalmos cya [09:57]
sbeex well we are using openjdk [09:57]
sbeex but it's still amazing that in 2019 so many libs are not compatible with java 10... [09:58]
Addax sbeex: how are they not compatible with java 10? Which ones aren't? [09:58]
Addax I use a ton of java libs with java 11, and I haven't had to worry about any of them. Are you talking about modules? [09:58]
Galactus_ [Galactus_!~Galactus@unaffiliated/galactus] has joined ##java [09:58]
sbeex Addax: powermock, mockito (they fixed it months ago but had issues for java11) [09:58]
aeveltstra Addax: It's the module system. I can't switch to the module system yet because I haven't found a module-happy version of Annotations yet. [09:59]
Addax but those are mocking libraries, you shouldn't be using those anyway! :) [09:59]
Addax aeveltstra: I'm not using it myself [09:59]
sbeex Addax: of course of course [09:59]
aeveltstra As long as I don't make my projects module based, all libs I use work just fine with Java 11. [10:00]
Addax sbeex: note the sarcasm. I don't use mocking libs, so that hasn't affeced me yet [10:00]
Addax affected, geez [10:00]
cheeser such a caca mouth! [10:01]
sbeex and now I try to generate an XSD from java classes via maven -> looked at github and the guys said "well for java9 we don't know if we will support it becaues you know many people still use java8" ... now it's java 11 and they are still not compatible [10:01]
sbeex come on jesus.. [10:01]
cheeser i think jesus has other things on his plate... [10:01]
Addax dude's dead, he doesn't need a plate [10:01]
kembrek [kembrek!~kembrek@] has joined ##java [10:01]
Addax give it to someone else, jesus, JESUS! [10:01]
sbeex D [10:02]
Addax is probably going to hell for that one [10:02]
sbeex jesus can fork bread btw [10:02]
Addax ... FROM BEYOND THE hey wait blasphemy isn't in the channel topic [10:02]
sbeex Addax: look at it... [10:03]
sbeex [10:03]
sbeex sbeex's title: "jaxb2-maven-plugin 2.4 and Java 10 | The Art of Code" [10:03]
sbeex it's pretty right ? [10:03]
Addax sbeex: oh, I know. Shoot, I'm doing spring stuff in one project and I've already learned to skip over the incompatibility warnings [10:04]
esro [esro!~esro@] has joined ##java [10:05]
bdonnahue1 [bdonnahue1!~bdonnahue@] has joined ##java [10:08]
sbeex warning: Supported source version 'RELEASE_7' from annotation processor '' less than -source '10' [10:09]
sbeex is there a way... to say "run this plugin in java8" in maven ? (and others in 10 ?) [10:10]
cheeser nope [10:10]
palasso [palasso!~palasso@unaffiliated/palasso] has joined ##java [10:10]
aeveltstra Nope. It's all or nothing. [10:11]
sbeex okay so I'll write a unit test that will generate this .xsd file [10:13]
sbeex basta [10:13]
sbeex next [10:13]
sbeex Another satisfied customer. Next! [10:13]
sbeex thank you guys [10:14]
led_dark_1 [led_dark_1!] has joined ##java [10:15]
sb35 [sb35!~sb35@] has joined ##java [10:16]
Squarism anyone have something to say about swagger 1.5 / openapi 2 VS swagger 2.x / openapi? Is it too early to adopt openapi v3? I noticed gh swagger-samples dont depend on v3 [10:18]
Kakky [Kakky!~Kakky@] has joined ##java [10:19]
w17t [w17t!~w17t@unaffiliated/w17t] has joined ##java [10:19]
Jantz [Jantz!~IceChat9@2407:7000:8d04:100:8c4a:385f:5ecf:6544] has joined ##java [10:21]
GraysonBriggs [GraysonBriggs!~GraysonBr@unaffiliated/graysonbriggs] has joined ##java [10:24]
d10n-work [d10n-work!uid37161@gateway/web/] has joined ##java [10:26]
jcob [jcob!~jcob@] has joined ##java [10:26]
bluezone [bluezone!uid104970@gateway/web/] has joined ##java [10:27]
seven-eleven what IDE suites JavaFX more: intellij IDEA or eclipse? [10:33]
seven-eleven just tried IDEA and I dont like that you can't increase the font size with ctrl + mouse [10:33]
kembrek [kembrek!~kembrek@] has joined ##java [10:34]
Addax file a bug? [10:34]
Addax maybe they'll fix it [10:34]
freeone3000 Not a bug. [10:34]
Addax an issue request, then [10:35]
tuskkk____ [tuskkk____!uid18470@gateway/web/] has joined ##java [10:35]
freeone3000 You can bind "Editor Actions > Decrease Font Size" and "Editor Actions > Increase Font Size" in Settings > Keymap. [10:35]
seven-eleven Neither with ctrl + plus sign; you have to go to options and increase the font there :| [10:35]
seven-eleven freeone3000, let me try [10:35]
mona_x [mona_x!] has joined ##java [10:35]
seven-eleven perfect, that worked fine, thanks freeone3000 [10:36]
seven-eleven i see that i have multiple jdk versions installed, which one should I pick for IDEA to use? [10:42]
seven-eleven default-jdk is version 10.0.2 [10:42]
freeone3000 IDEA runs its own JRE for itself. The JDK you're selecting is the JDK for your project. Choose appropriately. [10:44]
tete_ seven-eleven, you should go with scene builder if you use fx declarative, or use any IDE you prefer [10:44]
logcat [logcat!~logcat@] has joined ##java [10:45]
seven-eleven ok i do that freeone3000 [10:47]
Addax seven-eleven: running ubuntu, are we? [10:47]
odinsbane I wouldn't select a jdk for javafx less than 11. Since you have to add it as an external module, may as well get used to doing it now. [10:48]
seven-eleven tete_, what is scene builder, another IDE, or is it to be used together with IDEA? [10:48]
seven-eleven Addax, yes [10:48]
Addax We really need a factoid for ubuntu explaining exactly how to get 11 [10:48]
freeone3000 Same as you always did, get it from the website. [10:48]
seven-eleven there's a 11 package on ubuntu openjdk-11-jdk [10:48]
Addax heh [10:48]
Addax seven-eleven: for 18.04 it installs 10.0.2 [10:49]
seven-eleven oh wow [10:49]
seven-eleven let me check [10:49]
Addax if you're on 18.10 it installs 11 [10:49]
seven-eleven indeed 10.0 [10:50]
tete_ seven-eleven, you have 2 ways to generate fx applications: declarative (what i prefer) or programatically. If you go with declarative, use scene builder (an application) to create the UI [10:50]
seven-eleven tete_, and then I can use the finished UI within IDEA? [10:50]
tete_ so you dont have to fight with layout managers etc. - you can drag and drop the elements where you want them to be. and the logic goes into your code [10:51]
Addax seven-eleven: I upgraded to 18.10 *this morning* - it means you don't get live patches from ubuntu (18.10 isn't LTS, I guess?) but you're closer to the bleeding edge [10:51]
freeone3000 (IDEA also offers a SceneBuilder plugin to use as an embedded frame, but it still requires SceneBuilder to be installed separately for this to work.) [10:51]
tete_ yes, you just load the .fxml file which was generated by scene builder in your application and implement only the logic of the components [10:51]
tete_ freeone3000, oh, nice to know! thanks for that hint ;) [10:51]
tete_ i downloaded it from the homepage for java 11 [10:51]
seven-eleven ok thanks , im going to try that [10:51]
tete_ seven-eleven, its like with netbeans matisse [10:52]
seven-eleven Addax, 18.04 is LTS [10:52]
Addax and the openjdk-11 packages actually install java 11, instead of lying to your face like lying liars who lie [10:52]
Addax seven-eleven: right, I know [10:52]
odinsbane If you're using ubuntu, and intellij, how do you feel about just downloading the latest openjdk, and pointing intellij to use that. I personally just stay away from the os installed java's but maybe it is a bad recommendation. [10:53]
seven-eleven someone told me javafx is not really popular, is that true? for me it's comparable to qt, because it's platform independent [10:53]
seven-eleven odinsbane, yeah going to do that as freeone3000 suggested [10:53]
Addax popularity is really difficult to measure with any sanity [10:53]
Galactus_ [Galactus_!~Galactus@unaffiliated/galactus] has joined ##java [10:54]
freeone3000 debian/ubuntu java distribution has worked for 3 years out of the last 10. [10:54]
freeone3000 downloading from the website isn't that weird a step. [10:54]
Addax heh [10:54]
Addax yeah, I know [10:54]
Squarism idk if i should cry or kill myself. This is the future of [10:55]
Squarism idk if i should cry or kill myself. This is the future of JSON-RPC in java [10:56]
Squarism Squarism's title: "swagger-samples/ at swagger-petstore-v3-1.0.1 swagger-api/swagger-samples GitHub" [10:56]
freeone3000 Looks fine. [10:56]
Galactus [Galactus!~Galactus@unaffiliated/galactus] has joined ##java [10:56]
conan [conan!~conan@] has joined ##java [10:56]
freeone3000 In what way would you prefer to encode that information? [10:56]
Squarism in its type [10:57]
Squarism and get rid of this charade of HTTP something more than transport [10:57]
freeone3000 Nah, there's too many HTTP codes for that to work properly, since the return would need to be covariant, you're looking at (nCr 200 1) [10:58]
tete_ seven-eleven, its not really platform independent ... you will notice that when you ship a fatJar with fx. for that reason there exists different artefacts for fx [10:58]
freeone3000 HTTP *is* something more than transport. The headers carry significant amounts of metadata. [10:58]
freeone3000 The bits that aren't necessary if you decided to use TCP would be... content-encoding. Everything else is declaring an alternate return type, or documenting the return. [10:58]
Squarism Why even use HTTP codes modelling you protocol. 200 and not 200 would be fine for me [10:59]
freeone3000 You're free to do that. [10:59]
sbeex Squarism haha (boolean) addict [10:59]
freeone3000 But, generally, we like to differentiate the *reason* that things failed. It's why errno is an int, and why Java exceptions are classes. [10:59]
sbeex if oyu like error like "oups osmething wrong happend" then here you are :p [11:00]
cheeser throws 500s in everyone's stupid faces [11:00]
freeone3000 Switching on the error field in the result is one thing, but for instance, if something failed because the client isn't authorized, that should go down one path, but if something failed because the resource doesn't exist, that should go down the other path [11:00]
freeone3000 500 at least tells us which half of the connection screwed up! [11:00]
sbalmos followed quickly by 400 [11:00]
freeone3000 But yeah. 500 is "Server Error", 400 is "Client Error", you're free to return those if you really feel like being opaque. [11:01]
junktext_ [junktext_!~junktext@fsf/member/junktext] has joined ##java [11:01]
surial Squarism: But is this actually annoying, hard to read, hard to maintain, and bug-prone? [11:01]
Squarism it a bloatfest [11:01]
tete_ can someone maybe help me getting my xml problem solved with java 11? its this stackoverflow question: [11:01]
surial Squarism: I bet it looks a bit nuts solely because your gut instinct, based on stupid idiocies (we're human, our brains are dumb, we all suffer from this), and not the good kind of experience. [11:01]
tete_ any help is very appreciated! [11:01]
freeone3000 Squarism: You can write the swagger code directly and then run codegen on it instead. [11:01]
surial Squarism: what's bloaty about it? [11:01]
sbeex very intesresting article about status codes [11:01]
sbeex sbeex's title: "Choosing an HTTP Status Code Stop Making It Hard |" [11:01]
seven-eleven tete_, mhm, is java actually actively used for gui development or do people prefer using java for server side things [11:02]
surial Squarism: bloat would imply there's a lot of characters in this that don't add anything. I agree this is A LOT of code for a fairly simple thing, but, then, the compiler-scannable documentation and verification is ALSO in this. [11:02]
freeone3000 tete_: [11:02]
sbeex seven-eleven: ui development in java is almost dead... [11:02]
tete_ seven-eleven, i have the *feeling* that java throws away gui stuff [11:02]
seven-eleven interesting [11:02]
freeone3000 tete_: Sorry. 'compile 'com.sun.*''? Why did you think this would fix this? [11:02]
surial Squarism: I'm sort of intentionally doing an advocate of the devil thing here. [11:02]
tete_ most stuff is done for backends, and the ui stuff is done in javascript and such [11:02]
sbeex javafx -> probably no more support from oracle / swing -> looking for adopter ? / jsf ... hum no. [11:03]
cheeser there are oracle staff working on fx, afaik [11:03]
cheeser though they might be "working" [11:03]
freeone3000 Oh. Because that's the official package name for the activation module. [11:03]
Squarism surial, I could have all my methods be : Either<SuccessType,ErrorType> method [11:03]
surial Squarism: okay, honest problem with this: there's both @ApiResponse(responseCode = "400" (why the fuck is this a string), description = "Pet not found"), and then later in the code, throw new i.s.s.e.NFException(404, "Pet not found"). That's a shitton of DRY violation and indeed, in my opinion, fucking idiotic design. [11:03]
tete_ freeone3000, cause i am a newb :) i found this somewhere on the internet and thought "ok, no idea why, but give it a try" [11:03]
Squarism method [11:03]
surial So that part, yeah, you got an excellent point there. [11:03]
surial Squarism: Either is stupid. [11:03]
surial Squarism: so that's right out based on obviousness. [11:03]
sbeex seven-eleven: but doesn't mean you can't do it! [11:04]
tete_ freeone3000, and yes, this is really one wierd part, i would also have thought that com.sun.* is dead/internal stuff which should be avoided [11:04]
Squarism Why is it stupid? [11:04]
surial Squarism: what if the 'throws' clause of the method is all you need? [11:04]
freeone3000 tete_: No, it's correct on your end, it just *shouldn't be* correct; com.sun is a shared namespace and contentious. It's also weird for new stuff to be put there in 2017 when sun doesn't exist (as a com or otherwise) [11:04]
seven-eleven sbeex, yeah [11:04]
surial Squarism: Oof, looong story. [11:04]
surial Squarism: but, basically, you're reinventing a wheel: Exception handling can already address these issues. ALso, java will NEVER ditch exceptions. [11:04]
surial Squarism: so, you have a choice, either [A] we live in a world with exceptions, or [B] we live in a world with BOTH exceptions AND either, and which one to use will be an endless source of debate^H^H^H^H^Hfighting. [11:05]
surial Squarism: If we're really gonna go with [B], there needs to be one HELL of a good reason to do it. [11:05]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [11:05]
freeone3000 JAX-RS will map response-based exceptions to the appropriate error type, the annotation is there for Swagger to determine which possible responses could result from that method since it doesn't do static analysis of method bodies [11:05]
Squarism i can encode all possible outcomes of the request in that and use java to create it. Now i need to write novels of annotations saying 50% again and add some code mappings to exceptions [11:05]
freeone3000 I mean, only if you want documentation and automagically generated clients. [11:05]
surial And if anything, those reasons are reversed: There are only bad things. Java, the type system, is NOT designed around this. THere is no pattern matching. There is no way to have a method be capable of receiving both [A] A string, [B] an int, [C] an either<String, int>, even though in a perfect world the compiler will wrap a string completely silently and automatically into an Either<String, int> if that 'makes the signatures [11:06]
surial line up'... __IF EITHER IS A GOOD IDEA__. [11:06]
surial Note that either is not a good idea, so java should most assuredly NOT go in that direction. The point is, it isn't. [11:06]
sbeex Squarism well if you want to embed the error nature etc in the return of your request -> just go for graphql... [11:06]
cheeser you can whine and bitch complain to people uninvolved in those designs but just keep in mind that swagger/openapi is not meant for java alone. considerations and compromises were made to adequately support multiple languages. [11:06]
freeone3000 graphql doesn't actually solve this. [11:06]
cheeser that's just how the world works. you can suck it and and move on or use something else. [11:07]
cheeser but ranting here about it's dumb is not an option. find a blog. change the world. [11:07]
cheeser but enough is enough. [11:07]
sbeex cheeser++ [11:07]
sbeex cheeser has a karma level of 1,478, sbeex [11:07]
tete_ find a blog. change the world. <- or use facebook :) [11:07]
Addax cheeser ++ [11:08]
Addax cheeser has a karma level of 1,479, Addax [11:08]
Addax I'm not sure facebook needs any more relevance than it already has [11:08]
tete_ Addax, i block everything from facebook on router level, so everything i do not want to see can go there :) [11:09]
sbalmos I'm waiting for the KitchenSink GraphQL spec, with an appropriate brewSpirits operation defined [11:09]
lumm [lumm!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [11:10]
freeone3000 tete_: so your best option appears to be --patch-module as a compiler option and forwarding this error report to the javax xml folks because split modules don't work in java9 [11:10]
tete_ that sounds more like a workaround, doesnt it? do you think those people also read on stackoverflow? [11:10]
seven-eleven tete_, how is the javascript ui going to work with java? would you simply use something like nodejs as a client ui and java as webserver; or did you mean people use java with JSP + javascript? [11:10]
Addax seven-eleven: people use webapps. the browser runs the javascript. [11:11]
gareppa [gareppa!~gareppa@unaffiliated/gareppa] has joined ##java [11:11]
freeone3000 tete_: I'd submit it to the mailing list. It's absolutely a workaround. [11:11]
Addax JSP doesn't have to factor in at all. [11:11]
tete_ seven-eleven, create a backend service which e.g. uses resteasy or such, and then create a ui in any javascript framework you like and talk to that [11:11]
surial Squarism: paint me a picture as to what the signature of a method that throws 3 separate errors, in a way that the end result is the appropriate HTTP error code + an appropriate errmsg, and swagger can document this behaviour WITHOUT static analysis. [11:11]
seven-eleven ohh gotcha [11:12]
surial public Either<String, Either<ErrorOne, Either<ErrorTwo, ErrorThree>>>? [11:12]
tete_ seven-eleven, but you can also use a framework like jhipster, but i guess its better to start with basics then to use such a magic-framework [11:12]
Addax isis [11:12]
Addax Addax, what does that even *mean*? [11:12]
Addax gah [11:12]
Addax [11:12]
tete_ freeone3000, ok thanks, i will do that [11:13]
freeone3000 surial: Assumably in a way that doesn't have 300 distinct http error code classes? [11:13]
gareppa [gareppa!~gareppa@unaffiliated/gareppa] has joined ##java [11:13]
surial freeone3000: any way at all, as long as it [A] lets swagger show each adn every error without static analysis, and [B] each such error type results in the right HTTP code and the right message, and I guess [C] you can write it in java. [11:14]
seven-eleven thanks im going to check out both isis apache and jhipster [11:15]
freeone3000 Well, throws clauses require reflection, but no worse than the annotation they're currently using, so let's define a separate Exception class for every error code. Http400Error, Http401Error, ... and so on. Then have the only valid return types be Response() where Response takes one of Http200Status, Http201Status, Http204Status, ... [11:15]
freeone3000 Ah. Nope, so you can't have a return at all. You're going to throw your return as well, make those statuses Exceptions and have the method return Void. [11:15]
tete_ freeone3000, which one would you use? jdk-dev ? [11:16]
tete_ tete_'s title: " Mailing Lists" [11:16]
Ozymandy [Ozymandy!] has joined ##java [11:16]
ongo [ongo!~weechat@] has joined ##java [11:17]
gryffus [gryffus!~gryffus@unaffiliated/gryffus] has joined ##java [11:18]
lumm [lumm!] has joined ##java [11:21]
Regon [Regon!~Regon@unaffiliated/regon] has joined ##java [11:22]
Squarism i can encode all possible outcomes of the request in that and use java to create it. Now i need to write novels of annotations saying 50% again and add some code mappings to exceptions [11:27]
Squarism ops.. [11:27]
lumm [lumm!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [11:27]
surial Squarism: show it. make a pastebin, and show me what it would look like in a perfect world. [11:27]
surial Squarism: I bet you can't do it in a way that most in this channel would like. [11:27]
Squarism sorry.. wrong paste there. Adopting new keyboard. [11:28]
Squarism surial, if we say we dropped this mantra/charade of REST and just focus on delivering JSON-RPC. I dont see why Either<Req1SuccessType, Req1ErrorType> method(Req1Params). [11:28]
Squarism Encoded "not found", auth issues and anything you can handle in in the error type. Anything unhandled is 500. The your protocol can be described by the signature. [11:28]
freeone3000 Yeah. That's the JAX-RS bit. [11:28]
ArcherL [ArcherL!~ArcherL@unaffiliated/archerl] has joined ##java [11:28]
freeone3000 Now generate documentation from that. [11:28]
Squarism See type [11:28]
freeone3000 It's Response. Now what? [11:28]
Sasazuka [Sasazuka!~Sasazuka@unaffiliated/sasazuka] has joined ##java [11:29]
fstd [fstd!~fstd@unaffiliated/fisted] has joined ##java [11:29]
bdonnahue [bdonnahue!~bdonnahue@] has joined ##java [11:29]
freeone3000 You can use JAX-RS without swagger, and this seems to be what you want. [11:30]
orbyt_ [orbyt_!~orbyt@] has joined ##java [11:30]
lumm [lumm!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [11:31]
tang^ [tang^!~tang^@] has joined ##java [11:36]
Squarism freeone3000, i was speaking ideally. Then response would be described by Either<Req1SuccessType, Req1ErrorType> [11:38]
ravenousmoose [ravenousmoose!] has joined ##java [11:38]
Squarism wo swagger i miss out on codegen and the non binary protocol description [11:39]
freeone3000 yes, yo udo. [11:39]
freeone3000 Either doesn't really work in Java. [11:39]
Squarism if theres [11:42]
Squarism no byte code trickery involved it could be made to work [11:42]
ericek111 [ericek111!] has joined ##java [11:45]
abhixec [abhixec!] has joined ##java [11:45]
ongo Anyone here use coc? For some reason completion doesn't work for me [11:46]
jcob [jcob!~jcob@] has joined ##java [11:47]
SuperTyp [SuperTyp!~SuperTyp@] has joined ##java [11:49]
horribleprogram [horribleprogram!~horriblep@unaffiliated/nightcoder] has joined ##java [11:50]
Revan- [Revan-!] has joined ##java [11:51]
Squarism surial, so what is you objection about that approach. Disregarding jax-rs and less control over http codes? [11:54]
noodlepie [noodlepie!] has joined ##java [11:58]
lumm [lumm!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [12:02]
thief [thief!~realtime@unaffiliated/realtime] has joined ##java [12:03]
lumm [lumm!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [12:05]
Squarism *crickets* [12:06]
lumm [lumm!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [12:06]
realtime [realtime!~realtime@unaffiliated/realtime] has joined ##java [12:08]
realtime [realtime!~realtime@unaffiliated/realtime] has joined ##java [12:10]
lumm [lumm!] has joined ##java [12:11]
Sasazuka [Sasazuka!~Sasazuka@unaffiliated/sasazuka] has joined ##java [12:11]
realtime [realtime!~realtime@unaffiliated/realtime] has joined ##java [12:13]
ArcherL [ArcherL!~ArcherL@unaffiliated/archerl] has joined ##java [12:16]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [12:18]
Addax Squarism: give him time, he's probably writing a dissertation on it [12:18]
orbyt_ [orbyt_!~orbyt@] has joined ##java [12:19]
hussam [hussam!uid193284@gateway/web/] has joined ##java [12:19]
RoriconKnight [RoriconKnight!~RoriconKn@] has joined ##java [12:20]
srisri [srisri!~srisri@] has joined ##java [12:22]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [12:23]
wilbert [wilbert!~wilbert@unaffiliated/wilbert] has joined ##java [12:23]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [12:24]
kgrimes2 [kgrimes2!~kgrimes2@] has joined ##java [12:25]
metrixx_ [metrixx_!~metrixx@unaffiliated/metrixx] has joined ##java [12:30]
lumm_ [lumm_!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [12:32]
orbyt_ [orbyt_!~orbyt@] has joined ##java [12:33]
code_zombie [code_zombie!~code_zomb@2605:a601:aa1:da00:25d2:713f:71b5:8322] has joined ##java [12:34]
lumm [lumm!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [12:36]
lumm [lumm!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [12:38]
acidjnk [acidjnk!] has joined ##java [12:40]
maryo [maryo!~Maryo@unaffiliated/maryo] has joined ##java [12:40]
Essadon [Essadon!] has joined ##java [12:42]
sveajobb [sveajobb!] has joined ##java [12:43]
Nicmavr [Nicmavr!~Nicmavr@unaffiliated/nicmavr] has joined ##java [12:45]
iam730 [iam730!] has joined ##java [12:45]
merpnderp [merpnderp!sid16744@gateway/web/] has joined ##java [12:45]
merpnderp In Java if you have a class with Foo() and foo() are those two separate methods or an overload? [12:46]
Addax two completely separate names [12:46]
sveajobb Hi, I have a couple of interfaces which have annotations on both class level and method levels. Is there a way to "type safely" accessing these from the code? i.e ClientFactory.extractUrl(ExternalResource::specificMethod); I don't want to go about and do ExternalResource.getClass().getMethod("specificMEthod", ....); [12:46]
merpnderp Addax: thanks a million, that's what I thought. [12:47]
Addax merpnderp: would be painfully easy to have tested, too [12:48]
Addax class Foo { void foo() {} void Foo() {} } // if this compiles, they're distinct [12:49]
Addax note that you should probably name the class Bar instead of Foo - as void Foo() is distinct from the CONSTRUCTOR called Foo() [12:49]
ravenousmoose [ravenousmoose!] has joined ##java [12:50]
ravenousmoose_ [ravenousmoose_!] has joined ##java [12:53]
mluser-home [mluser-home!] has joined ##java [12:58]
mona_x [mona_x!] has joined ##java [01:00]
gryffus [gryffus!~gryffus@unaffiliated/gryffus] has joined ##java [01:02]
metrixx_ hey [01:02]
metrixx_ i have a public key file with .cer file extension for corporate proxy [01:03]
metrixx_ i want to connect a web service over https on java application [01:04]
Souvent22 [Souvent22!~eberry@] has joined ##java [01:04]
waz popcorn [01:04]
waz [01:04]
metrixx_ i need to use this public key while connection https [01:04]
metrixx_ is there a clear documentation for this? [01:04]
maryo [maryo!~Maryo@unaffiliated/maryo] has joined ##java [01:05]
freeone3000 What's the http lib you're using? [01:06]
nbro [nbro!~nbro@2a02:aa13:3100:6000:b564:7c56:319f:afa0] has joined ##java [01:07]
Addax waz ++ hahaha [01:08]
Addax waz has a karma level of 149, Addax [01:08]
metrixx_ freeone3000, it can be any of them but we were trying via jersey client. [01:09]
metrixx_ freeone3000, in fact, i am trying to understand truststore, keystore part already.. [01:10]
n35xdxb0 [n35xdxb0!] has joined ##java [01:10]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [01:14]
freeone3000 Okay. Basically, java uses a trust store to verify certs. In general, you're going to have to insert the X.509 public certificate into a truststore as trusted, then you're going to have to tell your http client library to use that new truststore for connections. [01:14]
Karyon [Karyon!~karyon@unaffiliated/karyon] has joined ##java [01:15]
lumm [lumm!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [01:22]
sveajobb I solved it with a Proxy object. But that really seems like a super non-intuitive hack. Anyone with a better solution? [01:22]
dgtlcmo [dgtlcmo!] has joined ##java [01:23]
lumm [lumm!~lumm@2a01:e35:2f0f:b480:1233:2a3b:100:9b4e] has joined ##java [01:24]
merpnderp Addax: hah thanks but I haven?t written java in 10 years. [01:27]
Addax merpnderp: that's fine [01:28]
fmccann [fmccann!] has joined ##java [01:31]
magyar [magyar!~magyar@unaffiliated/magyar] has joined ##java [01:32]
Souvent22 [Souvent22!~eberry@] has joined ##java [01:34]
metrixx_ to generate keystore: keytool -keystore clientkeystore -genkey -alias client [01:35]
metrixx_ to generate truststore: keytool -import -file C:\cascerts\firstCA.cert -alias firstCA -keystore myTrustStore [01:35]
metrixx_ what is difference between these exactly? I see the second one import certificate but i don't see any difference except that [01:36]
metrixx_ in this page ( ), it shows these as example [01:36]
metrixx_ metrixx_'s title: "Generating a KeyStore and TrustStore (Configuring Java CAPS for SSL Support)" [01:36]
ravenousmoose[aw [ravenousmoose[aw!] has joined ##java [01:38]
freeone3000 First one runs -genkey which makes a new key. Second one imports an existing cert. [01:39]
metrixx_ so, if we generate a new key, it is keystore? [01:40]
metrixx_ hmm keystore stores private keys? and truststore stores public keys? [01:40]
metrixx_ but it seems like i can use keystore as truststore also [01:41]
comrad [comrad!~comrad@holarse/core/comrad] has joined ##java [01:41]
freeone3000 it's a trustkeystore. it's one thing. [01:42]
freeone3000 The first line makes a new cert. The second line imports an existing cert. That's the difference between those two commands. [01:42]
freeone3000 You could, in fact, run them both with the same argument to -keystore and end up with a keystore that contains both the generated cert and the imported cert. [01:43]
mitch0 [mitch0!] has joined ##java [01:43]
gelignite [gelignite!] has joined ##java [01:43]
junktext [junktext!~junktext@fsf/member/junktext] has joined ##java [01:49]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [01:50]
oseph [oseph!] has joined ##java [01:51]
lumm [lumm!] has joined ##java [01:51]
metrixx_ freeone3000, if we generate a key and store it in keystore, it is keystore. if we "only" import existing certificate, it is truststore. if we generate a key and store it in keystore and also if we import another existing certificate to the same keystore, it is keystore? [01:51]
metrixx_ i am trying to understand exact different between keystore and truststore but it seems like there isn't exact physical difference between them. there is only logical difference, right? [01:52]
freeone3000 metrixx_: There's no difference. At all. [01:53]
freeone3000 Not even a logical one. [01:53]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [01:53]
ravenousmoose [ravenousmoose!] has joined ##java [01:53]
metrixx_ why there different terms and use them in same document with different commands [01:54]
freeone3000 Oracle documentation. [01:55]
freeone3000 Also, the relevant bit of the command is the same, -keystore <argument> [01:56]
Kakky [Kakky!~Kakky@] has joined ##java [01:59]
Sasazuka [Sasazuka!~Sasazuka@unaffiliated/sasazuka] has joined ##java [02:00]
nbro [nbro!~nbro@2a02:aa13:3100:6000:b564:7c56:319f:afa0] has joined ##java [02:01]
metrixx_ when i look certificate information via keytool, it says " Signature algorithm name: SHA1withRSA " [02:02]
freeone3000 Sure, okay. [02:03]
metrixx_ it seems like certificate signature algorithm. but also i had found a java example to connect https and it was asking for an algoritm.(I couldn't find the document unfortunately.) [02:03]
metrixx_ does client needs algoritm to connect or do its job? [02:04]
freeone3000 It's negotiated as part of connection. [02:04]
metrixx_ is there a keystore algoritm? or just certificate signature algoritm? [02:04]
freeone3000 What you need to do now that you have a keystore with your cert in it, is to create your http library's version of SSLSocketFactory and tell it to use your keystore instead of the system one. [02:04]
CAPITANOOO [CAPITANOOO!~CAPITANOO@] has joined ##java [02:05]
metrixx_ hm [02:05]
jcob [jcob!~jcob@] has joined ##java [02:07]
Markow [Markow!~ejm@] has joined ##java [02:09]
Sasazuka [Sasazuka!~Sasazuka@unaffiliated/sasazuka] has joined ##java [02:10]
q9929t [q9929t!~Thunderbi@] has joined ##java [02:13]
Phizzy [Phizzy!] has joined ##java [02:16]
Markow [Markow!~ejm@] has joined ##java [02:22]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [02:26]
DTZUZO [DTZUZO!] has joined ##java [02:28]
megaTherion [megaTherion!] has joined ##java [02:30]
metrixx_ freeone3000, which http client library do you advice for ssl connection? [02:33]
orbyt_ [orbyt_!~orbyt@] has joined ##java [02:34]
freeone3000 metrixx_: If you're using, is what you want. If you're using okhttp, you'd set the cert through (you actually want a pinned cert here, because you know what the remote server should have; no need for negotiation or chained trust) [02:35]
freeone3000 freeone3000's title: "OkHttpClient.Builder (OkHttp 3.13.0 API)" [02:35]
sveajobb How the types in lambda client -> client.notification(); can't be inferred in this case? private <T, R> void kycProxyCall(HttpServletRequest req, HttpServletResponse resp, Class<T> destination, Function<T, R> methodInvoker, String postData) throws ApiException, IOException, URISyntaxException [02:36]
sveajobb kycProxyCall(req, resp, DevcodeIntegrationClient.class, client -> client.notification(), obj.toString()); [02:36]
nbro_ [nbro_!~nbro@2a02:aa13:3100:6000:6417:3d6b:b7de:8851] has joined ##java [02:37]
srisri [srisri!~srisri@] has joined ##java [02:37]
v01d4lph4 [v01d4lph4!~v01d4lph4@2401:4900:c1b:c7b4:a869:4183:be82:df3] has joined ##java [02:39]
Souvent22 [Souvent22!~eberry@] has joined ##java [02:43]
fstd [fstd!~fstd@unaffiliated/fisted] has joined ##java [02:45]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [02:47]
duckpuppy [duckpuppy!] has joined ##java [02:49]
metrixx_ freeone3000, thank you for all. i'll try tomorrow morning. [02:50]
SuperLag [SuperLag!~akulbe@unaffiliated/superlag] has joined ##java [02:51]
SuperLag Any of you folks use Artifactory? [02:52]
yawkat anyone [02:52]
yawkat Chances are someone has, so why not just ask your question and save some time? If someone knows the answer and wants/has time to help, perhaps they will. [02:52]
Phizzy [Phizzy!] has joined ##java [02:52]
waz most likely [02:52]
SuperLag How do you create a folder in an Artifactory repo? [02:53]
yawkat mvn deploy? [02:53]
SuperLag There doesn't seem to be an option in the UI, as far as I can tell. I've also tried uploading a locally-created directory with jfrog-cli, and no dice. [02:53]
freeone3000 right, but, have you tried mvn deploy? [02:55]
SuperLag no, because I'm not using maven [02:56]
Souvent22 [Souvent22!~eberry@] has joined ##java [02:57]
metrixx_ grrr [02:57]
SuperLag metrixx_: was that to me? [02:57]
metrixx_ freeone3000, i was checking some examples and most of them use KeyManager and TrustManager objects together [02:57]
metrixx_ SuperLag, nope. it is for my own [02:57]
acidjnk [acidjnk!] has joined ##java [02:57]
jcob [jcob!~jcob@] has joined ##java [02:58]
Shoe0nHead [Shoe0nHead!uid204639@gateway/web/] has joined ##java [02:59]
SerialSmile [SerialSmile!~SerialSmi@] has joined ##java [02:59]
cheeser tech support [03:01]
cheeser SuperLag, Hello, ##java is not a technical support channel for your Java apps or virtual machines; it's a development channel for enthusiasts to discuss programming with the Java language. Please ask the vendor of your software for support if you're having trouble with it. [03:01]
SuperLag cheeser: cheesy. :) [03:01]
SuperLag cheeser: fair enough [03:01]
SuperLag thanks [03:01]
v01d4lph4 [v01d4lph4!~v01d4lph4@2401:4900:c1b:c7b4:a869:4183:be82:df3] has joined ##java [03:04]
lumm [lumm!] has joined ##java [03:05]
immibis [immibis!] has joined ##java [03:07]
Gazooo [Gazooo!~Gazooo@] has joined ##java [03:09]
erg0s1 [erg0s1!~erg0s1@] has joined ##java [03:10]
freeone3000 metrixx_: Exa,[;es fpr dpomg wjat [03:10]
freeone3000 metrixx_: Sorry. Examples for doing what? [03:11]
dgtlcmo [dgtlcmo!] has joined ##java [03:17]
ciaron [ciaron!] has joined ##java [03:18]
metrixx_ freeone3000, I really couldn't find a clear example yet but i have a few.. [03:21]
metrixx_ , it specifies a keystore as keystore and also truststore.. maybe, she is afraid :) i am not sure [03:22]
metrixx_ , here also she specifes cacerts.jks as truststore and keystore.jks as keystore [03:23]
metrixx_ they are both to connect a rest service over https [03:23]
deavmi [deavmi!~deavmi@] has joined ##java [03:24]
rhelic [rhelic!uid188470@gateway/web/] has joined ##java [03:24]
Puppet_ [Puppet_!~Puppet_@2601:241:8d82:ac00:cc9c:a21b:d162:5b7] has joined ##java [03:27]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [03:29]
freeone3000 2-way authentication means a specific thing. [03:34]
freeone3000 That's when you have a client certificate as well as a server certificate. Is this true for your case? [03:34]
Blue_Hat [Blue_Hat!~TwinKam20@] has joined ##java [03:35]
metrixx_ client -> corporate proxy -> rest service on https server [03:36]
metrixx_ i have proxy's client certificate and use that to connect rest service over https [03:36]
metrixx_ so, it seems like i only need trustmanager and no need for keymanager, right? [03:37]
metrixx_ but at examples above, they use both keymanager and trustmanager to connect rest service. it confused me [03:37]
ravenousmoose[aw [ravenousmoose[aw!] has joined ##java [03:39]
ravenousmoose_ [ravenousmoose_!] has joined ##java [03:40]
pekster [pekster!~rewt@openvpn/community/developer/pekster] has joined ##java [03:41]
esro [esro!~esro@] has joined ##java [03:42]
kgrimes2_ [kgrimes2_!~kgrimes2@] has joined ##java [03:45]
Puppet_ [Puppet_!~Puppet_@2601:241:8d82:ac00:cc9c:a21b:d162:5b7] has joined ##java [03:47]
Karyon_ [Karyon_!~karyon@unaffiliated/karyon] has joined ##java [03:48]
Phizzy [Phizzy!] has joined ##java [03:50]
Puppet_ [Puppet_!~Puppet_@2601:241:8d82:ac00:cc9c:a21b:d162:5b7] has joined ##java [03:50]
pekster After reading the docs for javac, jlink, and the associated JEPs on modules & linking, it's unclear if "cross-linking" to produce platform executable jlinked targets is possible. I have a modular project producing ELFs, but cannot seem to get it to produce Windows-binaries from the same Linux buildhost [03:52]
Phizzy [Phizzy!] has joined ##java [03:53]
cheeser i don't believe it is possible. [03:54]
Addax cheeser: maybe not something you really want to dig into, but how large should a mongo insertion batch be before it's TOO large [03:55]
veegee that's a trick question [03:55]
veegee the answer is: never use mongodb for any reason [03:55]
cheeser drivers will auto-submit at a 1000 operations [03:55]
kicked veegee (veegee) [03:55]
cheeser but that's done transparently and you'll never know the difference. [03:55]
veegee [veegee!] has joined ##java [03:55]
Addax cheeser: hrm. okay. So I'm probably not going to absolutely hate myself for creating a list of 500 entries, calling insert_many, and moving to the next batch [03:56]
pekster cheeser: That was for me? So, Java 11 no longer offers JRE to platforms, and requires you to have <X> platforms to jlink executable structures? That's.. sub-optimal :\ [03:56]
cheeser Addax: probably not [03:56]
cheeser pekster: whut? [03:56]
Addax trying to get away from dynamo, which I'm starting to hate with the fury of a thousand suns [03:56]
cheeser oh, right. there is no more separate jre, no. [03:56]
sveajobb haha, mongodb pisses me off. I noticed no difference between iterating over all entities, loading all entitites (6k) in a go or splitting them fetches up into smaller parallel executions. It was super slow each time [03:57]
Addax couchbase would be good, but AWS doesn't support a couchbase API and *does* support mongo, so... [03:57]
Addax sveajobb: then don't use it [03:57]
pekster cheeser: Was your "i don't believe it is possible." to me? I have a desktop app that I _am_ building successfully on the target platform, but need to support several other platforms. Are you suggesting the only way jlink produces a platform executable is if you run it _on_ the target platform OS? [03:57]
Addax nobody here gets a prize for you choosing to use mongodb [03:57]
Phizzy [Phizzy!] has joined ##java [03:57]
Addax hell, the only reason *I* am looking at it is because mongodb, despite not being perfect in all ways, is a massive improvement over dynamo [03:58]
sveajobb Addax, sometimes it's not possible to chose, then you are stuck with what's available. Doesn't matter you shouldn't try to optimize around your limitations [03:58]
cheeser pekster: i'm suggesting that I don't believe cross-linking is possible. i make no statements or claims on the ramifications. [03:58]
Addax sveajobb: I'm trying to gauge effort in any event. [03:58]
pekster cheeser: OK, thanks. That's what I seemed to be discovering (and not liking, at all) but was hoping I had missed something [03:58]
sveajobb err. you SHOULD try to optimize, I accidentally negated my own sentence [03:58]
orbyt_ [orbyt_!~orbyt@] has joined ##java [03:59]
Addax sveajobb: well, that's why I was asking, sort of! I already have everything set up for batching, I was trying to get an idea of decent batch sizes. For dynamo the default batch size of the driver I'm using is 25, and that seems... odd [03:59]
sveajobb Addax, yeah.. that seems really small. [04:00]
Addax maybe they're trying to say "don't use dynamo," an idea I can definitely get behind [04:01]
Addax and you can't even adjust the batch size without going knees-deep in the driver [04:01]
lumm [lumm!] has joined ##java [04:01]
Phizzy [Phizzy!] has joined ##java [04:01]
kgrimes2_ [kgrimes2_!~kgrimes2@] has joined ##java [04:02]
Addax I find my opinion of dynamo is only slightly better than my opinion of scala. :/ [04:02]
Ozymandy [Ozymandy!] has joined ##java [04:02]
[twisti] Addax: i have done some fairly intensive research for one of our inhouse apps, and there simply is no good batching default [04:03]
Addax [twisti]: well, it has to be better than sending each document on its own :) [04:03]
[twisti] adjusting for peak performance had us end up with 120 in one case, and over 100,000 in another [04:03]
Addax What size documents? [04:03]
eGNUph [eGNUph!] has joined ##java [04:04]
[twisti] size mattere a lot less than the 'target' - tables with lots of indices seemed to profit a lot more from bigger batches [04:04]
Ozymandy Hi guys. May be someone faced with same issue in jpa. I created jpa repository with deleteBy method, but when I call it it does not delete anything, just make select query. What can be wrong? I use JPA 2.1, as I know delete by is supported from 1.7 version [04:04]
Addax hmm, okay, thank you [04:04]
esro [esro!~esro@] has joined ##java [04:05]
Addax [twisti] ++ much appreciated [04:05]
Addax [twisti] has a karma level of 122, Addax [04:05]
esro [esro!~esro@] has joined ##java [04:05]
[twisti] oh, and you were right - we found no case where a batch size of 1 was the best use case [04:06]
[twisti] err, the best performance [04:06]
conan [conan!] has joined ##java [04:07]
Souvent22_ [Souvent22_!~eberry@] has joined ##java [04:08]
eGNUph [eGNUph!] has joined ##java [04:08]
cheeser having a lot of data is just a batch to handle well. [04:08]
[twisti] also, at least with the mysql connector (not my call), there was also the option to adjust maximum packet size, and sizes that clashed with batch size led to a lot of weirdness in performance [04:08]
Addax cheeser: that was about as good a pun as we've learned to expect from you [04:08]
cheeser "meets expectations" [04:08]
cheeser i'll take it. [04:08]
Addax sets the expectations even lower for next time [04:09]
Addax You're now down to "almost as good as jurassic park 2" [04:09]
cheeser oh, good. so there's still JP 3 and Ghostbusters (2016) to go ... [04:09]
cheeser (i liked the new GB, FTR) [04:10]
Addax I haven't seen either one of those, but JP2 was one of the few movies I couldn't stomach finishing [04:10]
noodlepie [noodlepie!] has joined ##java [04:10]
cheeser i once sat in the dark of an overnight atlantic flight rather than watch a movie. it was that terrible. [04:11]
esro [esro!~esro@] has joined ##java [04:11]
Addax which movie was it? [04:11]
cheeser Jungle 2 Jungle. Tim Allen. [04:11]
[twisti] cruel intentions 3 was spectacularily terrible [04:11]
Addax that... does sound gross [04:12]
[twisti] 4.7 on imdb [04:12]
noodlepie [noodlepie!] has joined ##java [04:17]
noodlepie [noodlepie!] has joined ##java [04:20]
minn [minn!] has joined ##java [04:21]
PrimePlaya24 [PrimePlaya24!cddd1c01@gateway/web/freenode/ip.] has joined ##java [04:24]
noodlepie [noodlepie!] has joined ##java [04:24]
kicked noodlepie (Banned: please fix your connection. you're bouncing in and out. this ban will expire after 2h) [04:25]
PrimePlaya24 Can i get help quickly? Everything works, but I just want to print the final answer, but it prints everything up to the answer and continues to print the answer. Do I make a list and once it repeats I quit? [04:26]
ernimril_ homework [04:27]
ernimril_ We don't answer homework-style questions here. Homework assignments intentionally ask you to produce bad code: You generally HAVE to use some mechanism even though it isn't the best tool for the job, and '.. just use this library that does all that in a very nice way!' is usually not acceptable. That makes them VERY frustrating questions. [04:27]
cheeser step 1. stop using while(true) [04:27]
PrimePlaya24 Okay yeah, lol. I know I need it to stop, but I need to tell it when to stop [04:28]
PrimePlaya24 I was thinking of making 2 variables and once they equal eachother then i print the answer and quit the program [04:29]
PrimePlaya24 like if the answer is even make var1 = lcm, then if the answer is odd, then make var2 = lcm, if var1 == var2, print and quit [04:30]
Teckla interprets cheeser's comment as: use while(!false) instead. ;) [04:30]
cheeser /kick Teckla [04:31]
cheeser dammit! [04:31]
cheeser D [04:31]
Souvent22_ [Souvent22_!~eberry@] has joined ##java [04:31]
Teckla ) [04:31]
ernimril_ PrimePlaya24, that is a strange way to calculate lcm, why do you do it that way? [04:31]
PrimePlaya24 ernimril_: First way I thought of sadly. :( [04:32]
ernimril_ PrimePlaya24, wikipedia probably has a few better options [04:33]
PrimePlaya24 ernimril_: Well, I am just learning to use JAVA right now. I do not care what method I use, although it definitely isnt the best way obviously [04:35]
minn PrimePlaya24: lcm(a,b) = ab / gcd(a,b) where gcd(a,b) can be computed using the euclidean algorithm. aside from that, you should factor out method (lcm, gcd) and parse your input before processing it [04:35]
PrimePlaya24 minn: Only reason I use the way I am doing it is because I can put in as many args as I want and it finds the LCM of all the numbers I input [04:37]
Addax PrimePlaya24: it's also "Java" or "java," not "JAVA" - it's not an acronym [04:39]
PrimePlaya24 addax: haha I know, Im sorry for capitalizing it :D [04:39]
PrimePlaya24 Coming from Python, so its a struggle [04:39]
Addax if it was a struggle, wouldn't you call it PYTHON? :) [04:40]
Anthaas [Anthaas!~Anthaas@unaffiliated/anthaas] has joined ##java [04:40]
PrimePlaya24 hahaha, DEFINITELY! [04:40]
PrimePlaya24 Nvm, I made it work... Final: [04:46]
Squarism anyone tried gRPC? [04:50]
cheeser anyone [04:50]
cheeser Chances are someone has, so why not just ask your question and save some time? If someone knows the answer and wants/has time to help, perhaps they will. [04:50]
Squarism For you who tried [04:50]
Squarism gRPC, is it a smooth experiance in java? [04:51]
cheeser mostly, yes. [04:51]
PrimePlaya24 Squarism: ahah Idk how else you could ask that question without saying "anyone" [04:51]
cheeser saying "anyone" isn't the problem. it's the open ended, context free, uselessness of the original question. [04:51]
cheeser "has anyone?" "yes" ... [04:51]
PrimePlaya24 ahhh, good point [04:52]
cheeser just ask an actual question so an actual conversation could be had. [04:52]
Squarism cheeser, do you see any reason not using it in server to server communication [04:52]
Squarism ? [04:52]
cheeser irc is fundamentally async. it could be 30 minutes before someone answers and another hour before you read that response. best to get the meaningful bits in while you can. [04:52]
Squarism over REST/openapi [04:52]
cheeser Squarism: it's an option, sure [04:53]
Maldivia ... WTF... -- cheeser / Addax / surial / others -- is this what you would expect ? [04:53]
cheeser computeIfAbsent() or putIfAbsent() ? [04:54]
Squarism it seems gRPC supports both synch/asynch [04:54]
Squarism maybe they changed it [04:54]
Maldivia cheeser: it's more the removeAll part [04:54]
Addax Maldivia: uhhh [04:54]
Maldivia cheeser: and yes, computeIfAbsent -- putIfAbsent would cause an ArrayList to be created on every call, where as compute only cause it to be allocated if actually absent [04:56]
cheeser ah, put doesn't take a lambda. lame. :) [04:56]
Squarism Maldivia, why not use .collect(Collectors.toMap....& [04:56]
Squarism ) [04:56]
Addax I don't think that's the point [04:57]
Maldivia anyway, the point is removeAll :D [04:57]
Squarism i know.. just curious [04:57]
Addax removeAll() is supposed to leave the disjoint union of the supplied collection and the collection it's being called on [04:57]
Maldivia Squarism: because I was too lazy to write a custom collector to a TreeMap [04:57]
Squarism ah ok [04:58]
Maldivia Addax: do you see what the issue is? [04:58]
Addax not offhand [04:59]
Addax I'd have to crank up a debugger [04:59]
waz that's a weird one [05:00]
Maldivia Addax: x.removeAll(y) -- uses y.contains to see if should be removed or not [05:00]
Maldivia Addax: and in this case, that would be a length check, since that's the comparator of the TreeMap [05:01]
Addax ahhhh, gross [05:01]
Hanii [Hanii!~Hanii@2a00:23c5:c587:a800:ed81:834e:bc91:3b74] has joined ##java [05:02]
cheeser i see why. [05:02]
cheeser it uses your comparator to check set membership. which checks the string length. and you have string lengths matching all elements. so remove will remove all elements that match the lengths of those keys. in short, everything. [05:03]
Maldivia cheeser: yeah -- but would you expect that? [05:04]
Addax no, I wouldn't [05:04]
Addax honestly [05:04]
cheeser well, since i've never combined those two aspects, no. [05:04]
cheeser but it seems pretty well spelled out looking at the code. :D [05:04]
kgrimes2_ [kgrimes2_!~kgrimes2@] has joined ##java [05:05]
cheeser strings.removeAll(new HashSet<>(toRemove)); [05:05]
cheeser expected behavior. [05:05]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [05:06]
Maldivia The javadoc says: " Removes all of this collection's elements that are also contained in the specified collection" -- that would indicate it would use this collection's comparator? [05:08]
cheeser how is membership in that map determined? so, yeah, kinda [05:09]
yawkat comparator-based sets are odd anyway [05:09]
yawkat in lots of ways [05:09]
cheeser they are [05:09]
Maldivia the "this collection" would be the ArrayList in this case [05:09]
cheeser i get your confusion, for sure. [05:09]
cheeser no, it'd be toRemove [05:09]
yawkat treeset does not follow the contract of Collection or Set strictly [05:09]
cheeser files a JEP to remove Collection [05:09]
Maldivia cheeser: I call strings.removeAll(toRemove) -- since the above is javadoc for removeAll, then "this Collection" must be the ArrayList, and "the specified collection" must be toRemove [05:10]
yawkat well removeAll works fine if the set was implemented properly, which it is not. [05:11]
cheeser you might be right. but we've exceeded the allocated mental energy available for this problem. :) [05:11]
FloggerXXX [FloggerXXX!] has joined ##java [05:15]
orbyt_ [orbyt_!~orbyt@] has joined ##java [05:18]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [05:23]
junktext [junktext!~junktext@fsf/member/junktext] has joined ##java [05:32]
webczat hmm in json-b, can I use JsonParser as data source? there seems to be no fromJson or toJson accepting jsonp class instances. not quite sure why [05:35]
aeveltstra [aeveltstra!~aeveltstr@2607:fb90:70fb:2044:0:9:1198:c901] has joined ##java [05:35]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [05:38]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [05:39]
yohnnyjoe [yohnnyjoe!] has joined ##java [05:42]
jcob [jcob!~jcob@] has joined ##java [05:42]
colypso [colypso!~ethan@] has joined ##java [05:47]
orbyt_ [orbyt_!~orbyt@] has joined ##java [05:52]
lumm [lumm!] has joined ##java [05:56]
surial Maldivia: [05:56]
surial Maldivia: I did not expect this, no. First stab in the dark as to what is happening: The 'toRemove' list is not a mere hashset, it is a treeset-ish thing, initialized with an on-length comparison. For some reason, strings.removeAll is relying on toRemove's notion of equality, which is 'any string whose length equals 3, 4, or 5', which is a predicate match for all of em. [05:57]
surial I find that more logical than the alternate explanation that calling .computeIfAbsent(s, ..) for each s is creating a keySet reporting only members 'The', 'over', 'quick', but it secretly contains all the ses anyway. [05:58]
surial I think you're driving at a bigger issue here, the various collection methods are 'overspecced' and sort of presume a simplistic world view. Then TreeMap comes in and casually mentioned 'by the by, we define equals specifically as 'compare() returns 0' and equals and hashCode can go take a hike. Which is kind of annoying already (normally, if an impl of an interface goes: 'We redefined the meaning of this method', I'd go: ????? [06:01]
surial what kind of bullshit third rate fucked up code is this ???? ? but List/Set/Map do it all the time. [06:01]
surial Even worse is that other ops, like .removeAll, refer back to the concept of 'contained in', which implicitly refers to the concept of 'equality', which is a dumb way to document it unless that concept is locked in by the interface itself someplace in its documentation. Which it kinda is, except e.g. TreeMap break the definition, bringing us right back to: Really, that is some deplorably bad API jockeying, fellas. [06:02]
minn In Eclipse JDT, is there any relationship between the AST level passed to ASTParser.newParser(int level) (e.g., AST.JLS8, AST.JLS11) and the parser source/compiler compliance level (e.g., "1.3 [06:03]
minn ", "1.8") [06:03]
adadelta [adadelta!~gulli@unaffiliated/gulli] has joined ##java [06:03]
surial minn: you're deep into the innards, with that question. [06:04]
surial minn: the -source parameter matches the AST level. [06:04]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [06:04]
surial as in, if I recall correctly (big if, been a long time since I looked at that), when a parser is fired up, source compliance of the file being parsed (or rather the project it is a part of) is used to determine what to pass for the 'level' parameter. [06:05]
surial minn: though, there is a mapping, and there's more to the source compliance than the parser. [06:07]
surial minn: ... and, also, it's still possible to use, say, JLS11 style parsing and then treat it as compliance 1.8. THe AST will have JDK11y things in it, and the compliance level simply goes: Yeah, I know that construct, I know what it means. But, not okay in 1.8 so I'll generate an error message explicitly telling you this is not okay. As far as I'm aware, there's nothing legal syntactically in java vX which is no longer legal in [06:09]
surial java vY where X <Y. [06:09]
surial (Semantically there are a few things, but we're beyond the reach of the parser at that point). This seems to be backed up by the fact that in all releases of I can find, all levels except the most recent are deprecated. [06:10]
surial so, I retract my original 'source compliance dictates level'. The level is basically always the latest. [06:10]
minn surial: Okay, that makes the most sense and to be sure might warrant a dive into the source code on my part (namely, that the AST level determines the version of the JLS to use, while the compliance options tell the parser something about translating version X < current language constructs into the AST). [06:11]
CrazyLazyDazy [CrazyLazyDazy!] has joined ##java [06:12]
minn In any case, thanks for the response. It's a good starting point to figure out precisely what's going on. [06:14]
lumm [lumm!] has joined ##java [06:16]
Karyon_ [Karyon_!~karyon@unaffiliated/karyon] has joined ##java [06:18]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [06:19]
wtflux [wtflux!] has joined ##java [06:22]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [06:23]
yohnnyjoe [yohnnyjoe!] has joined ##java [06:27]
junktext [junktext!~junktext@fsf/member/junktext] has joined ##java [06:27]
Souvent22 [Souvent22!] has joined ##java [06:32]
ogradyd1 [ogradyd1!~Thunderbi@2a02:8070:88bf:9df0::212] has joined ##java [06:38]
studyzombie [studyzombie!uid103377@gateway/web/] has joined ##java [06:39]
AbrarSyed_ [AbrarSyed_!] has joined ##java [06:39]
KeRT [KeRT!~UnFaQ@unaffiliated/trek] has joined ##java [06:39]
deepy- [deepy-!deepy@wrongplanet/deepa] has joined ##java [06:39]
irinix- [irinix-!~irinix@unaffiliated/irinix] has joined ##java [06:39]
sonOfRa_ [sonOfRa_!sonOfRa@unaffiliated/sonofra] has joined ##java [06:39]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [06:40]
argoneus_ [argoneus_!~argoneus@unaffiliated/argoneus] has joined ##java [06:40]
romanovic_ [romanovic_!~romanovic@unaffiliated/romanovic] has joined ##java [06:40]
QshelTier [QshelTier!~bombe@freenet/developer/Bombe] has joined ##java [06:40]
realloc [realloc!~realloc@unaffiliated/realloc] has joined ##java [06:42]
db`` [db``!db@gateway/shell/panicbnc/x-kbkdwewaqauybooe] has joined ##java [06:42]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [06:42]
Dragon092_ [Dragon092_!] has joined ##java [06:45]
nurupo_ [nurupo_!] has joined ##java [06:45]
daseibos- [daseibos-!] has joined ##java [06:45]
lilalinux_mbp [lilalinux_mbp!znc@] has joined ##java [06:45]
t0mato [t0mato!~Tomato@unaffiliated/tomato] has joined ##java [06:45]
CygniX [CygniX!~CygniX@opensuse/member/CygniX] has joined ##java [06:51]
dgtlcmo [dgtlcmo!] has joined ##java [06:51]
Quick_Wango [Quick_Wango!] has joined ##java [06:51]
seanBE [seanBE!~seanBE@unaffiliated/seanbe] has joined ##java [06:51]
ghormoon [ghormoon!] has joined ##java [06:51]
m1m3-50 [m1m3-50!~m1m3-50@unaffiliated/mimicize] has joined ##java [06:52]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [06:58]
adder [adder!~adder@gateway/tor-sasl/adder] has joined ##java [07:04]
skagerak [skagerak!~Elite2050@gateway/shell/elitebnc/x-xbsatktacthhwlqb] has joined ##java [07:05]
kgrimes2_ [kgrimes2_!~kgrimes2@] has joined ##java [07:07]
thunor [thunor!~thunor@unaffiliated/thunor] has joined ##java [07:10]
thunor hi, not sure what import i'm supposed to be using [07:10]
thunor it says required: Map<? extends Attribute,?> [07:10]
surial thunor: let me guess, you're using a 20 year old tutorial? [07:10]
thunor yes [07:10]
surial thunor: well, that's the problem. [07:10]
surial thunor: this isn't math. the world of programming moves fast. That tutorial is useless. [07:11]
thunor 10 years old [07:11]
surial 10? Okay, then it was written by a moron. [07:11]
surial Because generics were well established by then. [07:11]
surial The problem is this: You can mark types with parameters (also types). The simplest example is List. Okay, List, cool. But what's in the list? Strings? numbers? integers? closables? [07:11]
surial In java, you specify this using the following construct: List<String>. That indicates: This list contains only strings. [07:12]
surial Given a List<String>, if you attempted to call list.add(5) on that, the compiler wouldn't let you. [07:12]
surial Map is, of course, the same, but maps map from a thingie to a thingie, so it has 2 such things. For example, you can have a Map<Integer, String>. This would, perhaps, contain: {1 -> ONE, 2 -> TWO}. [07:12]
surial You're using Map, without the <> stuff. That's called a 'raw type' and it by definition a warning. [07:13]
surial Map should never appear without any <>. [07:13]
surial secondly, you're using awt here. awt is obsolete and 25 years old. Its APIs were never updated. [07:13]
surial or at least, not particularly well updated. [07:13]
surial javadoc Font [07:13]
surial surial: [JDK: java.awt.Font] [07:13]
surial well, this got an API update, but it mostly exposed how shit this API is. .getAttributes() returns a Map<TextAttribute, ?>. [07:14]
surial Meaning: it maps TextAttribute to a whole bunch of things. This is very unjava like, but then, 25 years ago, the designers of awt didn't know any better. [07:14]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [07:14]
surial thunor: my advice'd be to stick @SuppressWarnings("unsafe") on the whole thing and be don with it. [07:15]
errr_ [errr_!~errr@fedora/errr] has joined ##java [07:15]
surial this kind of code is ALWAYS going to suck, because, well, the awt API just isn't 'nice' together with generics and won't be updated to ever be. The real answer is to stop using AWT, but that's a high impact change. [07:15]
Karyon_ [Karyon_!~karyon@unaffiliated/karyon] has joined ##java [07:30]
thunor gonna use C++ instead as the tutorial works [07:31]
Me4502 [Me4502!~Me4502@unaffiliated/me4502] has joined ##java [07:32]
thunor thanks for help [07:32]
thunor parted the channel: "cya" [07:32]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [07:33]
themsay [themsay!~themsay@] has joined ##java [07:36]
junktext_ [junktext_!~junktext@fsf/member/junktext] has joined ##java [07:40]
pmercado [pmercado!] has joined ##java [07:49]
iam730 [iam730!] has joined ##java [07:55]
nbro [nbro!~nbro@2a02:aa13:3100:6000:6417:3d6b:b7de:8851] has joined ##java [07:59]
wyvern [wyvern!sid40333@gateway/web/] has joined ##java [07:59]
merpnderp [merpnderp!sid16744@gateway/web/] has joined ##java [07:59]
Pillus [Pillus!sid14656@gateway/web/] has joined ##java [07:59]
jgowdy [jgowdy!sid239878@gateway/web/] has joined ##java [07:59]
rann [rann!sid175221@gateway/web/] has joined ##java [07:59]
SimonVT [SimonVT!sid3779@gateway/web/] has joined ##java [07:59]
cfoch [cfoch!uid153227@gateway/web/] has joined ##java [08:00]
egp [egp!sid237851@gateway/web/] has joined ##java [08:00]
katiex7 [katiex7!] has joined ##java [08:09]
fyrril [fyrril!~fyrril@2605:a601:7012:7200:e598:fc9b:d181:d7c0] has joined ##java [08:10]
aeveltstra [aeveltstra!] has joined ##java [08:16]
aeveltstra [aeveltstra!] has joined ##java [08:19]
kgrimes2_ [kgrimes2_!~kgrimes2@] has joined ##java [08:22]
i7c [i7c!gPB83HIxou@unaffiliated/i7c] has joined ##java [08:26]
visl [visl!~visl@2001:19f0:4009:1423::64] has joined ##java [08:27]
markoong [markoong!~marco@] has joined ##java [08:36]
aeveltstra [aeveltstra!] has joined ##java [08:44]
Goplat [Goplat!~Goplat@reactos/developer/Goplat] has joined ##java [08:45]
yawkat [yawkat!] has joined ##java [08:48]
vdamewood [vdamewood!~vdamewood@unaffiliated/vdamewood] has joined ##java [08:51]
jadesoturi [jadesoturi!~jadesotur@unaffiliated/kfj] has joined ##java [08:54]
erg0s1 [erg0s1!~erg0s1@] has joined ##java [08:57]
orbyt_ [orbyt_!~orbyt@] has joined ##java [08:59]
v01d4lph4 [v01d4lph4!~v01d4lph4@2401:4900:c1b:c7b4:a869:4183:be82:df3] has joined ##java [09:10]
irinix [irinix!~irinix@unaffiliated/irinix] has joined ##java [09:11]
Karyon_ [Karyon_!~karyon@unaffiliated/karyon] has joined ##java [09:15]
irinix [irinix!~irinix@unaffiliated/irinix] has joined ##java [09:19]
AMcBain [AMcBain!] has joined ##java [09:30]
adder` [adder`!~adder@gateway/tor-sasl/adder] has joined ##java [09:42]
kgrimes2_ [kgrimes2_!~kgrimes2@] has joined ##java [09:44]
yohnnyjoe [yohnnyjoe!] has joined ##java [10:02]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [10:10]
NeXTSUN [NeXTSUN!~textual@2601:83:8100:42cf:25cc:c510:84e8:9c4d] has joined ##java [10:31]
tassee [tassee!] has joined ##java [10:41]
Ruckus [Ruckus!] has joined ##java [10:47]
xyz111 [xyz111!] has joined ##java [10:58]
mipesom [mipesom!] has joined ##java [11:09]
Raku [Raku!raku@2601:2c7:4300:1b00:230:48ff:fe32:d99f] has joined ##java [11:09]
v01d4lph4 [v01d4lph4!~v01d4lph4@2401:4900:c1b:c7b4:a869:4183:be82:df3] has joined ##java [11:15]
bugzy_on_busy [bugzy_on_busy!~Thunderbi@] has joined ##java [11:16]
Nicmavr [Nicmavr!~Nicmavr@unaffiliated/nicmavr] has joined ##java [11:25]
wodencafe [wodencafe!~wodencafe@2605:6000:1517:614c:724d:7bff:fe63:71b6] has joined ##java [11:36]
djhworld [djhworld!~djhworld@] has joined ##java [11:37]
AbrarSyed [AbrarSyed!] has joined ##java [11:48]
SuperTyp [SuperTyp!] has joined ##java [11:51]
srisri [srisri!] has joined ##java [11:52]
DarkTwiz [DarkTwiz!a29cb694@gateway/web/freenode/ip.] has joined ##java [11:57]
DarkTwiz Can anyone direct me to mobile app dev on freenode, I am lost lol [11:58]