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]

Reply via email to