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]

Reply via email to