Roger, that means how modules need to be modified. I'm not sure what I did wrong to that page :-) I thought I've only removed things that are no longer in the archetype. If you know how to improve that page, create a ticket for EMMA or just edit the page.
-Rafal On 11 January 2012 16:46, Friedman, Roger (CDC/CGH/DGHA) (CTR) <[email protected]> wrote: > Rafa -- > It's not clear what you mean by "how properly to divide modules in api > and omod". Does this have to do with how modules created with previous > versions of the archetype or by the mavenizer need to be modified, or does it > have to do with the substantive content of the api and omod projects? > BTW, I think by eliminating the question-by-question content of that > page, you have made it better for people who know Maven but harder for those > who are looking for step-by-step instructions about how to get started. > Saludos, Roger > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On Behalf Of Rafal Korytkowski > Sent: Tuesday, January 10, 2012 3:18 PM > To: [email protected] > Subject: Re: [OPENMRS-DEV] Including one mavenized module within another > mavenized module > > We've included -omod.jar mostly because the module was not divided properly > in -api and -omod. Normally, you should include -api.jar only. See the > basicmodule in svn or the updated module archetype [0] on how to properly > divide modules in api and omod. Suggestions and improvements are welcome. > > [0] - https://wiki.openmrs.org/display/docs/Using+the+Module+Maven+Archetype > > -Rafal > > On 10 January 2012 16:59, Friedman, Roger (CDC/CGH/DGHA) (CTR) <[email protected]> > wrote: >> I have been experiencing similar problems and working them through >> with Rafa. >> >> >> >> Mark, I think it was decided that the two artifacts to be used as >> dependencies would be module-api.jar and module-omod.jar, both required. >> Module.omod is solely for use by the module manager. I think you >> should consider whether it serves any purpose to maintain the -api, >> <unnamed> artifact naming scheme, such as the behavior of the mavenizer. >> >> >> >> I think that all three artifacts need to go in the openmrs maven repository. >> I think the module downloader ought to have a checkbox to download >> the -api and -omod as well as the .omod. >> >> >> >> From: [email protected] [mailto:[email protected]] On Behalf Of Ben Wolfe >> Sent: Tuesday, January 10, 2012 3:06 AM >> >> >> To: [email protected] >> Subject: Re: [OPENMRS-DEV] Including one mavenized module within >> another mavenized module >> >> >> >> I don't know when/you would use "pom" over "jar". I've always used jar. >> Perhaps Matt Blanchette can chime in on that? >> >> Rafal figured out the api vs omod unit test thing. He has modified >> the module archetype and the basicmodule to have the right separation. >> >> Ben >> >> On Tue, Jan 10, 2012 at 6:24 AM, Mark Goodrich <[email protected]> wrote: >> >> Darius, yeah, I agree... >> >> When I deploy the module to the repo via mvn deploy, all three >> projects are added, as follows: >> >> addresshierarchy - with the pom >> addresshierarchy-api - with the pom and jar addresshierarchy-omod - >> with the pom and jar >> >> This seems correct to me. However, including the projects via type "pom" >> doesn't seem to work for me... if I try something like: >> >> <groupId>org.openmrs.module</groupId> >> <artifactId>addresshierarchy</artifactId> (or >> <artifactId>addresshierarchy-api</artifact>) >> >> <version>2.2.0</version> >> <type>pom</type> >> >> The build fails (and, prior to that, Eclipse doesn't see the address >> hierarchy packages on the build path). >> >> The only way I can include the module as a dependency is using >> <type>jar</type>... and since there is no jar in the parent project, I >> have to directly reference the api jar: >> >> >> <groupId>org.openmrs.module</groupId> >> <artifactId>addresshierarchy-api</artifactId> >> <version>2.2.0</version> >> >> <type>jar</type> >> >> I would assume that the <type>pom</type> should work... does anyone >> know why this doesn't? Has anyone gotten a pom include to work with another >> module? >> >> Mark >> >> ________________________________________ >> From: [email protected] [[email protected]] On Behalf Of Darius Jazayeri >> [[email protected]] >> Sent: Monday, January 09, 2012 5:53 PM >> >> To: [email protected] >> Subject: Re: [OPENMRS-DEV] Including one mavenized module within >> another mavenized module >> >> Offhand, I think that the correct behavior should be that you just >> need to require the api of the required module. (Also that things like >> hbm.xmls, and unit test classes should be in the api, rather the omod >> as they sometimes >> are...) >> >> That said, if you include the parent project, that ought to work as well... >> >> -Darius >> >> On Mon, Jan 9, 2012 at 2:23 PM, Mark Goodrich >> <[email protected]<mailto:[email protected]>> wrote: >> It is really a matter of 1) determining what we want mvn deploy to >> deploy to the module repo and then 2) having someone who knows how to >> configure maven give a tutorial on how to upgrade the poms and/or >> configure the deploy plugin appropriately. >> >> To see an example of what a mvn deploy currently deploys, take a look >> at the three addresshierarchy directories below: >> >> http://mavenrepo.openmrs.org/nexus/content/repositories/releases/org/o >> penmrs/module/ >> >> I don’t think it is particularly bad for the api and omod to be broken >> out into different jars, is it? Really, if you are using one module >> from within another you only need to import the api anyway. We could >> keep the mvn deploy as-is--we’d just have to update the instructions >> for how to include another module to note that you have to declare a >> dependency to the module-name-api artifact instead of module-name. >> >> Take care, >> Mark >> >> >> >> >> From: [email protected]<mailto:[email protected]> >> [mailto:[email protected]<mailto:[email protected]>] On Behalf Of Burke >> Mamlin >> >> Sent: Monday, January 09, 2012 4:15 PM >> >> To: >> [email protected]<mailto:[email protected] >> UI.EDU> >> >> Subject: Re: [OPENMRS-DEV] Including one mavenized module within >> another mavenized module >> >> Assuming the jar within the omod target only contains web classes as >> you say, then how about: >> >> * Rename Target/omod/moduleid-x.y.z.jar to >> Target/omod/moduleid-omod-x.y.z.jar (only contains web classes) >> * Create a Target/omod/moduleid-x.y.z.jar that contains both API + >> web classes (.omod would just be a copy with .omod extension) >> * mvn deploy would deploy the moduleid-x.y.z.jar containing API + >> web classes >> * (eventually) uploading an omod to the module repository would >> deploy to mvn as well if it hadn't already been done >> >> So, devs could either deploy an artifact via mvn deploy or just upload >> their omod to the module repository. >> >> -Burke >> >> On Mon, Jan 9, 2012 at 3:47 PM, Mark Goodrich >> <[email protected]<mailto:[email protected]>> wrote: >> Yes… but I’m not exactly sure understand it/agree with it… >> >> I would assume that we would want to use mvn deploy to deploy the >> module-api and module-omod jars to maven repo. But, if I’m reading it >> right… we won’t use mvn deploy to deploy modules to the maven repo. >> Instead we would simply run a mvn package and then create a ticket to >> add the module jar to maven repo. It is also unclear exactly what file we >> would use as the jar. >> Running a mvn package creates the following files: >> >> Target/api/addresshierarchy-api-2.2.0.jar (which only includes the >> api >> classes) >> Target/omod/addresshierarchy-2.2.0.jar (which appears to only include >> the omod classes) Target/omod/addresshierarchy-2.2.0.omod (which >> assumedly includes both the omod and api classes) >> >> If we want to reference a module just using >> <artifactId>module-name</artifactId> instead of >> <artifactId>module-name-api</artifactId> we would have to rename >> either addresshierarchy-api-2.2.0.jar or addresshierarchy-2.2.0.omod >> to addresshierarchy-2.2.0.jar. >> >> Mark >> >> >> From: [email protected]<mailto:[email protected]> >> [mailto:[email protected]<mailto:[email protected]>] On Behalf Of Ben >> Wolfe >> >> Sent: Monday, January 09, 2012 1:55 PM >> >> To: >> [email protected]<mailto:[email protected] >> UI.EDU> >> >> Subject: Re: [OPENMRS-DEV] Including one mavenized module within >> another mavenized module >> >> Have you seen this page? >> https://wiki.openmrs.org/display/docs/Requiring+another+module+in+your >> +module >> >> Ben >> >> On Mon, Jan 9, 2012 at 9:33 PM, Mark Goodrich >> <[email protected]<mailto:[email protected]>> wrote: >> Hello all— >> >> I’m having a little trouble referencing one mavenized module within >> another mavenized module and am looking for some feedback on what the >> preferred way to do this is via maven. >> >> I was able to deploy the address hierarchy module to the Openmrs maven >> repo via mvn deploy, and confirmed that the addresshierarchy poms and >> jars have been successfully added to the repo. Now I have a second >> module that uses a service provided by the Address Hierarchy module. >> I’ve tried linking address hierarchy as a pom dependency in the main >> pom and the api pom of the second module using both the following >> methods, but in all cases I get compile errors when building the >> second module because the relevant Address Hierarchy classes can’t be found: >> >> <dependency> >> <groupId>org.openmrs.module</groupId> >> <artifactId>addresshierarchy</artifactId> >> <version>2.2.0</version> >> <type>pom</type> >> <scope>provided</scope> >> </dependency> >> >> <dependency> >> <groupId>org.openmrs.module</groupId> >> <artifactId>addresshierarchy-api</artifactId> >> <version>2.2.0</version> >> <type>pom</type> >> <scope>provided</scope> </dependency> >> >> The only way I can get it to build correctly is to reference the >> addresshierarchy-api jar directly: >> >> <dependency> >> <groupId>org.openmrs.module</groupId> >> <artifactId>addresshierarchy-api</artifactId> >> <version>2.2.0</version> >> <type>jar<type> >> <scope>provided</scope> </dependency> >> >> Is this what we want? Or is there some way to include via pom that I >> am missing? >> >> Thanks, >> Mark >> >> >> >> ________________________________ >> >> Click here to >> unsubscribe<mailto:[email protected]?body=SIGNOFF%20openmrs- >> devel-l> >> from OpenMRS Developers' mailing list >> >> ________________________________ >> Click here to >> unsubscribe<mailto:[email protected]?body=SIGNOFF%20openmrs- >> devel-l> >> from OpenMRS Developers' mailing list >> ________________________________ >> Click here to >> unsubscribe<mailto:[email protected]?body=SIGNOFF%20openmrs- >> devel-l> >> from OpenMRS Developers' mailing list >> >> ________________________________ >> Click here to >> unsubscribe<mailto:[email protected]?body=SIGNOFF%20openmrs- >> devel-l> >> from OpenMRS Developers' mailing list >> >> ________________________________ >> Click here to >> unsubscribe<mailto:[email protected]?body=SIGNOFF%20openmrs- >> devel-l> >> from OpenMRS Developers' mailing list >> >> _________________________________________ >> >> To unsubscribe from OpenMRS Developers' mailing list, send an e-mail >> to [email protected] with "SIGNOFF openmrs-devel-l" in the >> body (not the subject) of your e-mail. >> >> [mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l] >> >> >> >> ________________________________ >> >> Click here to unsubscribe from OpenMRS Developers' mailing list >> >> ________________________________ >> Click here to unsubscribe from OpenMRS Developers' mailing list > > _________________________________________ > > To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to > [email protected] with "SIGNOFF openmrs-devel-l" in the body (not > the subject) of your e-mail. > > [mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l] _________________________________________ To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to [email protected] with "SIGNOFF openmrs-devel-l" in the body (not the subject) of your e-mail. [mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l]

