01:21:10 *** wyclif has quit IRC
02:09:27 *** wyclif has joined #openmrs-sprint
02:27:40 *** jriley has joined #openmrs-sprint
05:34:00 *** bwolfe has joined #openmrs-sprint
05:34:00 *** ChanServ sets mode: +o bwolfe
05:57:19 *** bwolfe has quit IRC
06:14:20 *** bwolfe has joined #openmrs-sprint
06:14:31 *** ChanServ sets mode: +o bwolfe
06:23:24 *** jriley has quit IRC
07:02:53 *** way has joined #openmrs-sprint
07:03:02 <way> hello
07:03:36 <way> i am intrested in knowing , wat sprint means?
07:04:25 <way> can any one giv a brief intro about sprint??
07:06:14 <bwolfe> hi way
07:06:28 <way> hi
07:06:33 <bwolfe> https://wiki.openmrs.org/display/RES/Development+Sprints
07:06:55 <bwolfe> it is a concentrated effort of programming towards a common goal
07:07:18 <bwolfe> so for this week and last week we are working on a web services module for openmrs
07:07:19 <way> ohh thats sounds :)
07:07:31 <bwolfe> https://wiki.openmrs.org/display/RES/2011-05-16+Development+Sprint
07:07:59 <bwolfe> I don't see you in the #openmrs room. I'm curious how you found us. :-)
07:09:45 <way> ha!! i jus heard sprint , thought of asking any expert :)
07:11:16 <way> can u give an exapamle regarding sprint :) @bwolfe
07:13:10 *** jriley has joined #openmrs-sprint
07:13:56 <bwolfe> if you use my username without hte @ sign I get notified here... :-)
07:14:12 <bwolfe> I linked to an example above, the one we are currently working on :-)
07:15:04 <way> that's cool :) thanx for info bwolfe
07:23:11 <way> bwolfe im not understanding tha t exapamle ....can u helpme out :)
07:23:32 <bwolfe> did you read up on the general development sprints page? theres more descirption there
07:23:39 <bwolfe> https://wiki.openmrs.org/display/RES/Development+Sprints
07:24:03 <bwolfe> there is nothing magical about a "sprint". its just a group of people working on the same thing for a short amount of time
07:24:18 <way> okay i will read and ask u :)
07:24:59 <way> okay
07:28:07 *** dkayiwa has joined #openmrs-sprint
07:29:24 *** way has quit IRC
07:43:33 *** robbyoconnor has quit IRC
07:47:27 *** robbyoconnor has joined #openmrs-sprint
08:21:48 *** robbyoconnor has quit IRC
08:27:30 *** robbyoconnor has joined #openmrs-sprint
08:29:31 *** r0bby has joined #openmrs-sprint
08:32:54 *** robbyoconnor has quit IRC
08:33:44 *** bwolfe has quit IRC
08:34:57 *** sunbiz has joined #openmrs-sprint
09:05:58 *** dkayiwa has quit IRC
09:06:13 *** dkayiwa has joined #openmrs-sprint
09:11:24 *** sunbiz has quit IRC
09:43:24 <OpenMRSBot> Recent updates in the world of openmrs: New Changeset: OpenMRS (localize-setup-wizard): Creating branch for Taras Chorney (cta) for gsoc2011 project localizing the setup initial setup wizards - https://wiki.o... <http://feedproxy.google.com/~r/OMRStrunk/~3/udT-w7HxA1w/OpenMRS>
09:59:12 <dkayiwa> hi djazayeri
10:01:05 *** bwolfe has joined #openmrs-sprint
10:01:05 *** ChanServ sets mode: +o bwolfe
10:09:16 *** jriley has quit IRC
10:14:33 <dkayiwa> hi bwolfe
10:14:55 <bwolfe> hey
10:15:01 <bwolfe> whats up?
10:15:07 <dkayiwa> nothing much
10:15:10 <dkayiwa> whats up
10:15:31 <dkayiwa> bwolfe: i did not understand your last comment very well :)
10:15:47 <dkayiwa> bwolfe: mind throwing some more light on it? :D
10:16:51 <bwolfe> sure
10:16:57 <dkayiwa> thanks
10:17:24 <bwolfe> the ws framework does several different things when looking for what rep to display: the getRepresentation method, the @rephandler annotated classes, etc
10:18:14 <bwolfe> so I thought it would be easier if you actually just called the resource methods and ws classes to get the resources it might be easier. Otherwise you have to write some super fancy scripting in python
10:18:48 <bwolfe> does that make sense?
10:19:49 <dkayiwa> bwolfe: do you mean that the script should call the ws class methods?
10:20:08 <bwolfe> I meant the script language can be java
10:20:16 <bwolfe> and the java just calls java methods in the ws framework
10:20:28 <bwolfe> so the easiest way to be "in" the ws framework is via a unit test
10:20:48 <bwolfe> once you figure out how to call via that, then we can either move it to a separate java project or just make a special place for it
10:21:28 <dkayiwa> oh i see
10:22:10 <dkayiwa> thanks for the clarification
10:37:55 <bwolfe> dkayiwa: is that enough for you to go on? does it make (more) sense?
10:38:39 <dkayiwa> bwolfe: yes for now. will get back to you if i come up with any question.
11:10:16 *** downeym has joined #openmrs-sprint
11:10:16 *** ChanServ sets mode: +o downeym
11:10:17 *** OpenMRSBot sets mode: +o downeym
11:12:57 *** bwolfe has quit IRC
11:26:10 *** bwolfe has joined #openmrs-sprint
11:26:10 *** ChanServ sets mode: +o bwolfe
12:08:04 *** bwolfe has quit IRC
12:19:38 <OpenMRSBot> Recent updates in the world of openmrs: On Twitter: OpenMRS: RT @twthoughts: <Tuesday, May 24> Join us at the ThoughtWorks Pune office for OpenMRS Hack Day with Ola Bini & Zabil CM. Register ... <http://twitter.com/OpenMRS/statuses/72625794320580608>
12:28:09 *** wyclif has quit IRC
12:50:35 <OpenMRSBot> Recent updates in the world of openmrs: New Changeset: OpenMRS (webapp-testing): Creating branch for webapp testing framework and unit tests - initial ticket: https://tickets.openmrs.org/browse/TRUNK-2... <http://feedproxy.google.com/~r/OMRStrunk/~3/qtVXZbUovnk/OpenMRS>
13:06:13 *** dkayiwa has quit IRC
13:06:19 *** dkayiwa has joined #openmrs-sprint
13:15:01 *** wyclif has joined #openmrs-sprint
13:22:29 <dkayiwa> java.lang.RuntimeException: No suitable method "getAuditInfo" in class org.openmrs.module.webservices.rest.web.resource.CohortMemberResource
13:23:01 <dkayiwa> shouldn't this resource have a getAuditInfo() method?
13:44:47 *** bwolfe has joined #openmrs-sprint
13:50:25 <dkayiwa> bwolfe:
13:50:26 <dkayiwa> am scanning for all resource classes and calling their getRepresentationDescription() method to get stuff for documentation
13:50:26 <dkayiwa> about each resource's deafault, full, and ref representation
13:54:39 <bwolfe> ok
13:54:46 <bwolfe> and are you following the method chain yourself?
13:56:48 <dkayiwa> i just scan through the resource package
13:57:23 <dkayiwa> check for each class i find and if it is a resource, i call the getRepresentationDescription() method
13:57:23 <bwolfe> right, but after calling getRepDesc method...what are you doing?
13:57:53 <dkayiwa> i look through the properties
13:57:56 <dkayiwa> loop
13:58:09 <dkayiwa> bwolfe: for(String property : resoureDescription.getProperties().keySet())
13:58:33 <dkayiwa> bwolfe: then i do System.out.println(property);
14:00:27 <bwolfe> seems that getAuditInfo is not on the subresource parent class. it is on the resource parent class that most objects use though
14:00:39 <bwolfe> so it probably needs to be copied over there.
14:00:58 <dkayiwa> be copied over to the sub resource?
14:02:42 <dkayiwa> bwolfe: this exception is thrown when i call getRepresentationDescription on the resource class
14:02:58 <dkayiwa> bwolfe: should i just ignore resources which throw this exception?
14:03:23 <dkayiwa> bwolfe: or should i just add this audit method to them too?
14:03:47 <bwolfe> create a ticket, and then you can ignore and keep working on your ticket. :-)
14:03:55 <bwolfe> err, create a ticket for someone to add it
14:04:38 <dkayiwa> or should i add it myself? :)
14:05:19 <bwolfe> if you want, you can
14:05:33 <bwolfe> but it'd be better for you to keep working on what you are doing (if you can get past the error)
14:05:44 <bwolfe> This thing you are running into is why I initially created this ticket: https://tickets.openmrs.org/browse/RESTWS-5
14:06:10 <dkayiwa> looks like a simple fix. thats why i wanted to fix it
14:13:17 <bwolfe> ok, but create a ticket first still. :-)
14:13:26 <dkayiwa> ok :)
14:14:45 <dkayiwa> bwolfe: should this ticket simply be that CohortMemberResourc should have a getAuditInfo method?
14:17:26 <bwolfe> either that or the general parent subresource method
14:17:53 <bwolfe> something like MetadataDelegatingCrudResource
14:18:09 <bwolfe> but MetadataDelegatingCrudResource depends on Metadata (an OpenmrsObject)
14:18:16 <bwolfe> so it can have that method
14:18:40 <bwolfe> but DelegatingSubResource is just a general object
14:18:47 <bwolfe> errr depends on a general Object
14:18:50 <bwolfe> so maybe it can't
14:19:02 <bwolfe> I need to go help prepare dinner. I'll be back on tonight
14:19:06 <dkayiwa> ok
14:23:19 *** bwolfe has quit IRC
14:25:52 <OpenMRSBot> Recent updates in the world of openmrs: On Twitter: OpenMRS: Work begins today for our 16 Google Summer of Code students. Good luck! #GSoC #OpenMRS <http://twitter.com/OpenMRS/statuses/72658903862747136>
15:01:07 *** bwolfe has joined #openmrs-sprint
16:47:15 <dkayiwa> hi djazayeri
16:47:31 <dkayiwa> and hi bwolfe
16:48:07 <djazayeri> hi dkayiwa
16:48:14 <dkayiwa> (What operations are supported by each resource)
16:48:27 <dkayiwa> does that mean the CRUD operations?
16:48:43 <djazayeri> and also search (by ?q=) and getAll
16:48:58 <dkayiwa> ok
17:01:26 <dkayiwa> hi djazayeri again
17:01:41 <dkayiwa> (What each operation on each resource means)
17:02:44 <dkayiwa> does that mean the same operation (e.g Purgeable) could mean different things depending on the resource?
17:02:58 <djazayeri> the same HTTP method could mean different things
17:02:59 <dkayiwa> bwolfe: same question for you :)
17:03:07 <djazayeri> e.g. DELETE could mean "void" or "retire".
17:03:24 <djazayeri> or for a sub-resource it could mean: "remove from collection"
17:03:29 <dkayiwa> ok
17:03:58 *** downeym has quit IRC
17:04:41 <dkayiwa> djazayeri: are the operations only three (GET, PUT, DELETE) ?
17:04:51 <djazayeri> and POST
17:04:59 <dkayiwa> oh yeah
17:05:05 <djazayeri> we're not really using PUT though, only POST.
17:05:06 *** dkayiwa has quit IRC
17:06:22 *** dkayiwa has joined #openmrs-sprint
17:06:56 <dkayiwa> djazayeri: is it ok if i create four corresponding annotations for the description of each operation?
17:07:20 <djazayeri> dkayiwa: I don't like that idea
17:07:29 <dkayiwa> :D
17:07:35 <djazayeri> how about having those be "@annotations" in the javadoc
17:07:55 <djazayeri> can we do that?
17:08:38 <dkayiwa> how would that be different?
17:09:47 <dkayiwa> eg @GetDescription, @PostDescription, @PutDescription, @DeleteDescription,
17:10:10 <dkayiwa> wouldn't that be the same as you are suggesting
17:10:23 <dkayiwa> or am i getting it differently?
17:10:29 <dkayiwa> djazayeri
17:11:47 <djazayeri> dkayiwa: I mean that we should not introduce an annotation class, that must be compiled against
17:12:09 <dkayiwa> ok
17:12:15 <djazayeri> rather:
17:12:17 <djazayeri> /**
17:12:19 <djazayeri> * @getDocumentation ...
17:12:21 <djazayeri> * @postDocumentation ...
17:12:23 <djazayeri> */
17:12:41 <djazayeri> I'm wondering, though, do those go on the controller or on the resource?
17:14:15 *** bwolfe has quit IRC
17:14:26 *** bwolfe has joined #openmrs-sprint
17:16:28 *** dkayiwa_ has joined #openmrs-sprint
17:16:39 *** dkayiwa has quit IRC
17:16:39 *** dkayiwa_ is now known as dkayiwa
17:16:42 <dkayiwa> oh i see
17:16:50 <dkayiwa> thanks djazayeri
17:16:58 <djazayeri> np
17:19:43 <dkayiwa> djazayeri: should i use the same javadoc annotations to determine the available operations or the (Creatable, Retrievable, Updatable, Deletable, Purgeable) interfaces?
17:20:11 <djazayeri> dkayiwa: I don't know...
17:20:20 <dkayiwa> :)
17:20:42 <djazayeri> I feel like using javadoc annotations is a more appropriate way of producing documentation
17:20:50 <dkayiwa> ok
17:21:05 <djazayeri> I think using code/reflection to figure out things like "what properties are in each Rep" is good.
17:21:13 <dkayiwa> ok
17:21:28 <djazayeri> But I think that documenting what operations are actually supported is better via javadoc.
17:21:36 <dkayiwa> ok
17:26:51 *** rafa has joined #openmrs-sprint
17:26:51 *** ChanServ sets mode: +v rafa
17:30:42 *** sunbiz has joined #openmrs-sprint
17:31:04 <rafa> What is the best place to test whether ip is allowed to access webservices as in RESTWS-14? Is BaseCrudController okay or shall I create some sort of filter?
17:31:10 <sunbiz> djazayeri: I didnt understand why use @PropertyGetter and not override getProperty?
17:31:16 <rafa> djazayeri, bwolfe ping
17:34:57 <bwolfe> hi rafa
17:36:40 <rafa> Hi bwolfe, any suggestions?
17:37:46 <bwolfe> rafa: filter would probably be better
17:38:01 <djazayeri> sunbiz: the idea is that the getProperty method is part of the framework, and it should handle all common use cases, and be overridden rarely.
17:38:09 <bwolfe> you could piggyback on the filter than RESTWS-1 is making
17:38:25 <bwolfe> (that way the module only has to add one filter)
17:38:59 <rafa> very good
17:39:06 <rafa> thanks!
17:39:31 <djazayeri> sunbiz: it's also not obvious to someone who glances at your code what's going on there, whereas @PropertyGetter("attributes") ... return removeVoided(...) is clear at one glance
17:43:28 <sunbiz> djazayeri: so u suggest to add an annotation??
17:43:43 <sunbiz> I see its pretty easy to figure
17:43:53 <sunbiz> just increases some code length
17:44:30 <djazayeri> sunbiz: clarity and maintainability is much more important than code size, and even performance.
17:44:36 <djazayeri> I just commented on the ticket
17:44:46 <djazayeri> but yes, please add that annotation.
17:46:42 <djazayeri> rafa: I don't think RESTWS-1 has had anything committed yet, so you might want to look at a different ticket for now.
17:46:46 *** bwolfe has quit IRC
17:46:55 <djazayeri> (though I guess there's stuff you could do before the filter exists)
17:49:00 <rafa> djazayeri: right, I can code most of it.
17:49:06 <djazayeri> ok
17:53:45 *** bwolfe has joined #openmrs-sprint
18:09:25 *** bwolfe has quit IRC
18:09:42 *** bwolfe has joined #openmrs-sprint
18:44:32 *** dkayiwa has quit IRC
18:58:24 *** downeym has joined #openmrs-sprint
18:58:24 *** ChanServ sets mode: +o downeym
18:58:25 *** OpenMRSBot sets mode: +o downeym
19:03:13 *** sunbiz has quit IRC
19:07:35 <wyclif> djazayeri, i dont seem to get right this comment https://source.openmrs.org/cru/CR-MOD-147/#CFR-7444
19:07:41 <OpenMRSBot> <http://ln-s.net/8qPA> (at source.openmrs.org)
19:08:58 <djazayeri> line 369 will never evaluate to true because it's inside the line 365 if block
19:09:20 <djazayeri> wyclif: ^^
19:09:30 <wyclif> yes
19:10:38 <wyclif> djazayeri, the reason i add line 369 is because line 366 reads in a gp value meaning it can become a blank string
19:11:49 <djazayeri> ah okay
19:12:01 <wyclif> or even a white space character, i haven't looked at the API code that fetches the gp to know if it checks for these are doesn't assign it
19:12:05 <djazayeri> wyclif: that's true. anyway, I still don't like the logic of the whole method
19:12:24 <wyclif> i know it looks strange
19:12:51 <djazayeri> And from a later comment, can't we just store this under RestConstants?
19:13:06 <djazayeri> and have that value be updated at startup, and whenever the GP is changed?
19:16:17 <wyclif> djazayeri, i think the rationale of global property listeners is to be able to changed GP values and have them in effect without requiring an openmrs restart or hitting the DB each time we want the value of the GP, so removing some of this logic would dissatisfy Ben's wish on the ticket description
19:17:32 <djazayeri> wyclif: leave the GP listener, but instead of having a getUriPrefix() method, just have a RestConstants.URI_PREFIX that gets updated by the GP listener
19:18:06 <wyclif> ok
19:18:09 <djazayeri> you have logic baked into the getter. instead the logic should happen (1) at startup, and (2) when the GP is changed
19:18:20 <djazayeri> instead of having the logic be run/checked on every get.
19:22:39 <wyclif> i think you have a point, to have this logic executed only when the GP is changed, i will make the switch
19:23:16 <djazayeri> you also want to set it up when the module is first loaded, probably through a static { ... } block in RestConstants.
19:23:35 <djazayeri> or in RestUtil
19:24:57 <wyclif> ok
19:27:19 <wyclif> setting the GP when the module is first loaded i think can only be done in the activator otherwise in a static block, i have a feeling spring might not be up yet, though i will test it to be sure
19:45:07 *** r0bby is now known as robbyoconnor
20:12:33 <OpenMRSBot> Recent updates in the world of openmrs: OpenMRS Modules: Address Hierarchy 2.0 uploaded to OpenMRS Module Repository <https://dev.openmrs.org/modules/view.jsp?module=addresshierarchy&version=&2.0>
20:40:27 *** dkayiwa has joined #openmrs-sprint
20:48:55 *** downeym has quit IRC
20:55:59 <dkayiwa> hi bwolfe
20:56:21 <bwolfe> hey
20:56:35 <dkayiwa> what time do you sleep? :D
20:56:55 <bwolfe> in about 5 mins.
20:57:05 <dkayiwa> :)
20:57:44 <dkayiwa> how do you handle the kids, wife, etc when you are on the computer up to this late?
20:58:31 <bwolfe> haha, they handle themselves these days :-)
20:58:39 <dkayiwa> :D
20:58:40 <bwolfe> now is the only time I have for myself!
20:58:49 <dkayiwa> hahahahah
21:02:09 <bwolfe> you're the one with the tiny baby...and no sleep! how are you surviving?
21:02:21 <dkayiwa> lollllllllllll
21:02:32 <dkayiwa> baby is getting bigger
21:02:41 <dkayiwa> lots of breast feeding :)
21:06:16 *** dkayiwa has quit IRC
21:06:32 *** dkayiwa has joined #openmrs-sprint
21:17:35 *** bwolfe has quit IRC
21:21:59 *** dkayiwa has quit IRC
21:49:37 *** djazayeri_ has joined #openmrs-sprint
21:50:42 *** djazayeri_ has joined #openmrs-sprint
21:54:43 *** djazayeri_ has quit IRC
22:04:03 *** djazayeri_ has joined #openmrs-sprint
22:07:21 *** djazayeri has left #openmrs-sprint
22:11:29 *** djazayeri_ has quit IRC
22:19:49 *** djazayeri_ has joined #openmrs-sprint
22:23:18 *** wyclif has quit IRC
22:29:51 *** rafa has quit IRC
22:59:07 *** wyclif has joined #openmrs-sprint