15:10:24 <colindixon> #startmeeting jQuery/XPath for MD-SAL intern
15:10:24 <odl_meetbot> Meeting started Thu Jul 10 15:10:24 2014 UTC.  The chair is colindixon. Information about MeetBot at http://ci.openstack.org/meetbot.html.
15:10:24 <odl_meetbot> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
15:10:24 <odl_meetbot> The meeting name has been set to 'jquery_xpath_for_md_sal_intern'
15:10:33 <colindixon> #topic status update
15:12:09 <Neel_B> i guess i did it right
15:12:29 <Neel_B> 014-07-10 20:34:23.426 IST [config-pusher] INFO  o.o.c.c.y.c.t.i.ToasterProviderModule - Toaster provider (instance org.opendaylight.controller.config.yang.config.toaster_provider.impl.ToasterProviderModule$1AutoCloseableToaster@75fa8eb5) initialized
15:13:04 <devinavery> That is for the Toaster. :) Your message should be similar though "TaskProviderModule"
15:15:05 <Neel_B> then i did it wrong
15:15:16 <Neel_B> it is not initialized
15:15:37 <colindixon> #info Neel_B is just finishing step 5 from the list devinavery gave him of how to get started with the MD-SAL
15:15:43 <devinavery> Ok. Did you copy over the configuration XML?
15:15:47 <Neel_B> i copied the jar files and
15:15:49 <devinavery> in addition to the jars?
15:15:56 <Neel_B> 2 configuration xml
15:16:11 <Neel_B> one consumer and one provider
15:16:29 <devinavery> Ok - can you copy the full path of where you copied the files TO?
15:17:15 <Neel_B> opendaylight/configuration/initial
15:17:30 <Neel_B> that initial folder was not there i created
15:17:43 <Neel_B> that path is mentioned in archetype next stpes
15:17:48 <Neel_B> steps*
15:17:58 <devinavery> can you go to that destination folder and do a "pwd"?
15:18:05 <devinavery> The folder should have already existed
15:20:53 <Neel_B> /home/neel/odl/mywork/controller/opendaylight/configuration
15:23:55 <colindixon> #chair devinavery
15:23:56 <odl_meetbot> Current chairs: colindixon devinavery
15:24:15 <devinavery> ok. Should be /home/neel/odl/mywork/controller/opendaylight/distribution/opendaylight/target/distribut....../opendaylight/configuration/initial
15:24:28 <devinavery> You have to go into the location where you actually start the controller from, not the source code.
15:25:23 <colindixon> the full path should be /home/neel/odl/mywork/controller/opendaylight/distribution/opendaylight/target/distribution.opendaylight-osgipackage/opendaylight/configuration/initial
15:25:40 <Neel_B> okay
15:25:49 <colindixon> #info it appears as though Neel_B was having trouble copying the jars/config files to the right place
15:26:24 <regXboi> all: I'm reading, just splitting my attention n ways
15:26:30 <colindixon> #info the jar files should go in this direcory: /home/neel/odl/mywork/controller/opendaylight/distribution/opendaylight/target/distribution.opendaylight-osgipackage/opendaylight/plugins
15:27:11 <colindixon> #info the config (xml) files should go in this directory: /home/neel/odl/mywork/controller/opendaylight/distribution/opendaylight/target/distribution.opendaylight-osgipackage/opendaylight/configuration/initial
15:27:26 <colindixon> (I’m just logging this stuff so that Neel_B has something to go back and look at in the notes if he wants later)
15:28:08 <Neel_B> done
15:28:17 <Neel_B> both Taskprovider and
15:28:24 <colindixon> #info where /home/neel/odl/mywork/controller is the path to the controller repository on Neel_B’s machine
15:28:44 <devinavery> Great. So now you see the info message that the TaskProvider is initialized?
15:28:44 <Neel_B> TaskConsumer initialized
15:28:57 <Neel_B> 2014-07-10 20:54:45.324 IST [config-pusher] INFO  o.o.c.c.y.c.t.i.TaskProviderModule - TaskProvider (instance org.opendaylight.controller.config.yang.config.task_provider.impl.TaskProviderModule$1CloseResources@1313edc) initialized.
15:28:57 <Neel_B> 2014-07-10 20:54:45.406 IST [config-pusher] INFO  o.o.c.c.y.c.t.i.TaskConsumerModule - TaskConsumerService (instance org.opendaylight.controller.config.yang.config.task_consumer.impl.TaskConsumerModule$1AutoCloseableService@40dfcaa) initialized.
15:29:04 <devinavery> Cool cool.
15:29:18 <Neel_B> setting up rpc
15:29:19 <devinavery> Did you add a print out statement verifying that the DOMDataBroker was non-nuill?
15:29:59 <Neel_B> DOMDataBroker domDataBroker=getDomDataBrokerDependency();
15:29:59 <Neel_B> System.out.println(domDataBroker);
15:30:37 <devinavery> Cool cool. And you see that getting printed out too - right?
15:32:09 <Neel_B> looking
15:32:51 <Neel_B> no not printed
15:34:17 <devinavery> Ok. I would add some additional text in there so you can find it easily. Then make sure that you compile and copy over the new jar file from the target directory correctly
15:35:00 <colindixon> #info with that change, Neel_B has his first MD-SAL app up and working in the controller!
15:35:06 <colindixon> #topic nex steps
15:35:36 <colindixon> #topic next steps
15:36:22 <colindixon> #info devinavery suggests that we could speed up development by setting up an integration test
15:36:30 <colindixon> #chair regXboi
15:36:30 <odl_meetbot> Current chairs: colindixon devinavery regXboi
15:37:19 <Neel_B> printed
15:37:31 <Neel_B> i copied it without buildinf
15:37:55 <Neel_B> i added print and did not build
15:38:04 <Neel_B> now its printer
15:38:08 <Neel_B> printed*
15:38:17 <Neel_B> org.opendaylight.controller.md.sal.dom.broker.impl.DOMDataBrokerImpl@5e451607
15:38:43 <devinavery> Awesome. Ok. So we are ready to move onto the next steps
15:38:59 <devinavery> Thought to be honest, instead of wasting time using the real controller, I would suggest we try and use an integration test.
15:39:12 <devinavery> This is new territory for me though, so we will have to experiment
15:40:51 <Neel_B> okay how do we do that ?
15:41:29 <devinavery> Well. I am looking at the "sample-toaster-it" bundle in the controller as an example
15:41:52 <devinavery> We can use a framework called "pax-exam" which essentially loads a real OSGi environment up.
15:42:57 <devinavery> So.... I am guessing that we can take most of that existing code, perhaps comment out a few things, but ultimately get ahold of a real DOMDataBroker, and then play around with it
15:43:10 <devinavery> This would allow us to run JUnit tests just like we did before, and thus make it faster to experiment
15:44:21 <Neel_B> okay
15:45:08 <devinavery> I am playing around with it myself as well, but I would suggest you first just try and run the toaster sample IT bundle test through eclipse
15:47:17 <Neel_B> okay i would import it now
15:48:56 <devinavery> Ok.
15:49:33 <devinavery> Ok. I will #action some new next steps
15:50:09 <Neel_B> okay
15:52:15 <devinavery> #info change of plans with regards to next steps. Instead of getting a URL up and running in a "running" controller we should use an integration test instead for faster development
15:52:27 <devinavery> #info will #action next steps
15:53:05 <devinavery> #action Neel_B should try running the sample-toaster-it project in the controller source code, to get a feel for how it runs.
15:53:25 <devinavery> #action Neel_B should then copy to project to his projects so we can modify it
15:54:33 <Neel_B> done
15:54:54 <Neel_B> devinavery: i am missing one plugin for eclipse
15:54:57 <Neel_B> installing it
15:55:09 <devinavery> #action Neel_B should now modify his copy of the integration test to do the minimal amount of work (for example, comment out all comments in the "testToaster" methods) and add in a simple Print line to understand how integration test flow works
15:56:52 <devinavery> #action Neel_B should then try to import the DOMDataBroker service using the the @Inject method (hopefully all dependencies are already being pulled in).
15:57:48 <devinavery> #action Neel_B now has a functioning DOMDataBroker installed. Neel_B should use that to first insert a simple toaster and then use it to experiment with how we might merge the element and read interfaces of MD-SAL
15:58:31 <devinavery> #action Neel_B: Note, Neel_B may want to import the DataBroker (which is the "binding" version to create the toaster information as is done in the toaster provider code. May prove to be easier.)
15:58:43 <devinavery> Ok, so at a high level does that make sense Neel?
15:58:57 <Neel_B> i am reading
16:00:40 <Neel_B> sort of i will ping when i need more help presently i get what we are doing
16:00:45 <Neel_B> at a high level
16:01:42 <devinavery> Ok great. It is a bit of experimentation, but the idea in general is to take the toaster iteration test bundle as a starting point, then modifying it a step at a time to test what we want. I think you will only need to comment out the code in the method annotated with the @Test annotation
16:01:48 <colindixon> ok
16:01:49 <devinavery> Everything else can probably stay for now
16:02:06 <Neel_B> okay
16:02:06 <devinavery> #info The idea in general is to take the toaster iteration test bundle as a starting point, then modifying it a step at a time to test what we want. I think you will only need to comment out the code in the method annotated with the @Test annotation
16:02:38 <Neel_B> okay
16:03:30 <devinavery> Alright. Well that should give you plenty to get started with for tomorrow. :)
16:03:31 <colindixon> perfect
16:03:41 <colindixon> #endmeeting