This version (2017/05/27 13:44) is a draft.
Approvals: 0/1

[02:37:07] <mule> I have created a basic project in Intellij. I am using Vertx with Java as my server language. How should I reference the libraries I need from Vertx? When I look at the 3.0 examples off the Vertx site, there are so many that I am not sure I need them all.

[02:37:26] <mule> Should I create a pom.xml file in my project root? Or reference each jar by hand?

[03:20:47] <mule> I created a “lib” folder and copies all the jar files I thought I would need into that directory. I can launch my app. Not sure if that is the best way, but it works.

[09:13:09] <jac→ mule - If you look in project settings you will see the libraries that intellij is including in the classpath. ./libraries/* is usually in there.

[09:25:13] <petr_> gents, morning.

[09:25:33] <petr_> apologies if this has been asked a zillion times, but how do I do vertx 3 + scala?

[09:26:38] <petr_> tried googling found this!topic/vertx/BJQItsb3E8s & both of which don't look too promising

[09:57:11] * ChanServ sets mode: +o temporalfox [10:01:32] * ChanServ sets mode: +o temporalfox

[10:43:44] * ChanServ sets mode: +o temporalfox [11:26:08] * ChanServ sets mode: +o temporalfox

[14:48:47] * ChanServ sets mode: +o temporalfox [17:22:25] <Argylelabcoat> Hello everyone [17:22:39] <Argylelabcoat> Has anyone been using IntelliJ to debug Vertx3 JS Verticles? [17:59:58] * ChanServ sets mode: +o temporalfox

[18:07:14] <mule> Argylelabcoat: Yes, IntelliJ 14. I have a public static void main() for my verticle, and I right click on it, “Debug 'Server.main()' and it works.

[18:08:04] <Sticky> mule: are you sure that isnt for java?

[18:09:29] <Argylelabcoat> That sounds like Java to me

[18:09:57] <mule> sorry, you did say JS

[18:10:20] <Argylelabcoat> Breakpoints seem to work in JS, but I can't seem to be able to inspect any vars or set any watches

[18:10:34] <Argylelabcoat> instead the Stacktrace terminates at Script$Recompilation$

[18:11:22] <mule> how are you launching it? Some debug config you created?

[18:11:22] <Argylelabcoat> and the only variables I see are some sort of static data re: the JS source, like an array of each char in the source file

[18:11:42] <Argylelabcoat> well, I'm launching it with an Application task, main class is io.vertx.core.Starter

[18:11:56] <Argylelabcoat> Program args run js:main/app.js

[18:17:07] <mule> I can run my server.js from the command line, no issues, but when I do Run or Debug server.js, I get errors not being able to find module 'vertx-web-js/router'. Sorry I am unable to help at this time.

[18:17:45] <Sticky> you probably need to tell intellij from which dir you want you execute from

[18:23:17] <Argylelabcoat> I'm using gradle to build, so mine is running from the build dir

[18:48:39] <mule> I believe I am debugging my server.js file now, as my breakpoints are hit. How can I verify I am any further than you were able to get?

[18:49:40] <Argylelabcoat> can you inspect or watch any vars in the JS file where your breakpoints are hit?

[18:53:21] <mule> no

[18:55:31] <Argylelabcoat> and therin lies my team's dilemma

[18:55:37] <mule> I set my breakpoint inside router.route().handler() for when the page loads. I created var test = “abc”; I cannot see that value when stepping into the app. I can console.log(test); and that does print the value.

[18:55:49] <Argylelabcoat> right

[18:56:06] <Argylelabcoat> the only way to debug the JS is old-school logging, no way to break, step, and inspect

[18:56:50] <mule> are you going to post a question on the google group for help?

[18:57:19] <mule> b/c I would like the answer to this as well, now that I am looking at it, as I am sure I will need it at some point.

[18:57:20] <Argylelabcoat> I tacked it on to the IDE Debugging question

[18:57:33] <mule> thanks

[18:57:45] <Argylelabcoat>!topic/vertx/MWv7Z8K7F94

[18:58:00] <Argylelabcoat> Made a similar post straight to IntelliJ

[18:58:22] <Argylelabcoat> not sure if this is something VertX isn't exposing RE: Nashorn, or if this is an IDE issue

[18:59:31] <mule> the watchers work for me

[19:00:28] <Argylelabcoat> you can set variable watches?

[19:00:32] <mule> and now since I have added two local vars to my watches, I now see them in my debugger:variables output

[19:00:59] <mule> and I can evaluate them as expressions (Evaluation Expression dialog window)

[19:01:41] <mule> I cannot hover over them and see anything worthwhile in code, but I can see their valus in my watches and now variables windows.

[19:02:42] <Argylelabcoat> Interesting

[19:03:04] <Argylelabcoat> How did you get variables that make sense in the Variables pane

[19:03:30] <Argylelabcoat> I created a local var and now have a watcher viewing it, but the variables pane just shows me the static context

[19:03:34] <mule> I just added a 3rd variable. My first 2 vars are in my watches and they show up and show up in my variables output. My 3rd variable is NOT in watches (I did not add it) and it is NOT showing up in my variables output.

[19:04:26] <mule> In teh debugger view, I click on + to add a new var to the watch list, that's all I did.

[19:05:44] <Argylelabcoat> hm

[19:07:44] <Argylelabcoat> I think I have watches working in my main verticle

[19:07:55] <Argylelabcoat> but any worker verticles it deploys can't even break on breakpoint

[19:08:34] <mule> here's something interesting. I added 3 vars, a1, b1, c1. I console.log(a1), and only a1 is available in my watch list. It doesn't recognize b1 or c1.

[19:09:34] <mule> when I console.log(c1) it is now available

[19:09:42] <Argylelabcoat> Worker Verticles can't break during deploy, but can break on eventBus messages

[19:10:09] <Argylelabcoat> is it possible that c1 was getting optimised out?

[19:10:50] <Argylelabcoat> whatever I do, it seems the “variables” pane won't show me things, but watches will if I ask for the right thing

[19:11:51] <mule> it is odd, and maybe not fully baked

[19:12:04] <Argylelabcoat> this seems to be my analysis

[19:12:54] <Argylelabcoat> I'd just rather write Verticles in Java, but I'm a die-hard for structure… the guys I'm supporting here are all thrilled to have JS so… just want to get this as ready as possible before we start the next sprint

[19:14:13] <Argylelabcoat> so, looks like breakpoints are semi-reliable and the watch pane is also semi-reliable (won't show external vars, only ones declared in scope…)

[19:14:23] <Argylelabcoat> but the variables pane is quite unreliable

[19:14:23] <Sticky> can you not go for something like groovy for a staticaly compiled scripting like language

[19:14:39] <Argylelabcoat> I'm trying to convince them that groovy might be what they want, but they really dig JS for some reason

[19:15:12] <Argylelabcoat> I wish Nashorn could just compile these .js files offline instead of at runtime

[19:15:48] <Argylelabcoat> that seems to be the source of most of these issues… the debugger gets all caught up in the Java code that's compiling this at runtime

[19:16:20] <Sticky> dont think that will ever be possible, atleast if you are expecting it to enforce types

[19:16:58] <Argylelabcoat> such is the nature of JS, right? :) Some things have to be evaluated at runtime

[19:17:43] <Argylelabcoat> but we've got dynamic languages that run on the JVM right? There's got to be approaches that work for those

[19:18:01] <Argylelabcoat> not having ever read the source for such a compiler though, I'm at a loss to explain what those would be

[23:40:05] *** ChanServ sets mode: +o temporalfox