Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

Setup for using module wizard plugin in command line.

Prerequisite: Maven should be installed in you system. Check the command : "mvn --version" It should display your system and maven properties.

Copy the below OpenMRS profile tag in your settings.xml

File Location-

  • Linux: ~/.m2
  • Windows: C:\Documents and Settings\USER\.m2
  • Vista/Windows7: C:\Users\USER\.m2

If the settings.xml file does not exist create the file
Settings.xml file should look similarly as below:  

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <pluginGroups>
    <pluginGroup>org.openmrs.maven.plugins</pluginGroup>
  </pluginGroups>
  <profiles>
    <profile>
      <id>OpenMRS</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <archetypeCatalog>http://mavenrepo.openmrs.org/nexus/service/local/repositories/releases/content/archetype-catalog.xml</archetypeCatalog>
      </properties>
      <repositories>
        <repository>
          <id>openmrs-repo</id>
          <name>OpenMRS Nexus Repository</name>
          <url>http://mavenrepo.openmrs.org/nexus/content/repositories/public</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>openmrs-repo</id>
          <name>OpenMRS Nexus Repository</name>
          <url>http://mavenrepo.openmrs.org/nexus/content/repositories/public</url>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

</settings>

Using the wizard archetype at command line

  1. Go to a folder where you want to create project (like your workspace folder)
  2. Run maven plugin command - " mvn module-wizard:generate"
  3. Follow the wizard prompts

How to use the maven archetype command line

When wizard prompts :


groupId: org.openmrs.module: : <input by user>
question: default value: <input by user>
The question is "groupId"
The default value is "org.openmrs.module" (if user doesn't input anything)


if parameter includes (Y/N) then value should be letter  'y'(yes) or 'n'(no) , not case sensitive.     
In case at left, the user has chosen 'n' (No).

Example output

 

Description

Example

File Structure

a)

Creation of basic Demo Module:     

  • It creates basic file structure of an openmrs module with a ModuleActivator.java     
  • To create a basic module you should set all other module wizard questions to 'n'.



b)

Creation of Demo Module with a link in admin page:     

  • It creates a module similar to basic module with extra adminList.java file to create a link in openmrs admin page under the parent tag of module name.
  • To create a module with admin link
    • you need to set module wizard question , " Do you want admin page link " value to  'y'.
    • After the wizard question ,extra parameter gets prompted asking for the text of link which should appear in admin page (parameter : Link Name).



c)

Creation of Demo Module with a SpringMvc driven page:

  • Creates a module with a controller which is mapped to a url , on redirecting returns model view of a jsp.
    • controller mapped to path : module/<artifactId>/<artifactId>Link.form
    • jsp page                          : <artifactId>Form.Jsp
          
  • To create a module with spring driven page you need to set module wizard question "Do you want Spring driven Mvc page" value  to  'y'.
  • In example,  
    • controller mapped to path : module/demo/demoLink.form
    • jsp page                          : demoForm.Jsp



d)

Creation of Demo Module with a service/serviceimpl/dao/hibernatedao:

  • Creates a module with a service, serviceImpl , DAO ,HibernateDAO , pojo , hibernate mapping xml , liquiibase.xml and sqldiff.xml with related mappings.
  • To create a module with service/dao  files you need to set module wizard question "Do you want service/serviceimpl/dao/hibernatedao mapping " value to  'y'. 
  • It then prompt's for parameter. 
    -Service Name : Name for Service, Dao, Hibernate  files.
    -Object  Name  : Name for hbm.xml  and its pojo.




Headless install (no prompts) 

User can directly create modules skipping the prompts by making the interactive mode parameter false.

Command: mvn module-wizard:generate -DinteractiveMode=false

To change a default-value of a parameter, pass the parameter expression concatenating with -D with a value.

Command: mvn module-wizard:generate -D<parameterExpression>=<value>

Parameter Description

ParameterExpression

Default Value

Group Id

groupId

org.openmrs.module

Artifact Id

artifactId

whirlygig

Package

org.openmrs.module.whirlgig

Version

version

1.0-SNAPSHOT

Module Name No Spaces

whirlgigmodule

Module Name

moduleName

Whirlygig Module

Module Description

moduleDescription

Allows user to generate and save whirlygigs.

Module Author

user.name

<system-user-name>

OpenMRS Version Depended on

openmrsVerison

1.8.2

Do you want admin page link : (Y/N)

adminLinkReply

n

Link Name

adminPageLink

Manage Whirlygigs

Do you want Spring driven Mvc page : (Y/N)

springMvcReply

n

Do you want service/serviceimpl/dao/hibernatedao mapping : (Y/N)

serviceReply

n

Service Name

serviceDaoName

Whirlygig

Object Name

objectName

Whirlygig

Does this module depend on another module: (Y/N)

dependentModules

null

Note:

  • Package parameter cannot be manipulated. package=org.openmrs.module+artifactId (set internally)
  • Module Name parameter , " Module" string get concatenate's. So it is recommended to give only module name(Whirlygig) but not complete name(Whirlygig Module).
    Module Name=<given-moduleName>+" Module"
  • Module No Name spaces is set internally.
  • Passing dependent modules list in command line , it should follow a case-
    <Module 1 Id>:<Module 1 Version>,<Module 2 Id>:<Module 2 Version>,<Module 3 Id>:<Module 3 Version>,.....
    -DdependentModules=reportmodule:1.0.0,cohortmodule:1.0.5,
    
    Assumptions,
    -groupId=org.openmrs.module
    -artifactid=<given-module-id>-api

Example:
Creating a Demo module with a link in admin page and a dependent module with out any prompts.

mvn module-wizard:generate -DinteractiveMode=false -DartifactId=demo -DmoduleName=Demo -DmoduleDescription="A sample module for demo." -DopenmrsVerison=1.8.0 -DadminLinkReply=y -DadminPageLink="Manage Demo Pages" -DdependentModules=Cohort:1.0.2,

Using the wizard archetype in your IDE

Import the created module as "Existing Maven Projects" , you will observe a parent project (name=artifactId) and two child projects, api (name=artifactId-api) and omod (name=artifactId-omod).

If the project gives error try enabling maven dependency management or Update Project Configuration. (Right Click on project->Maven->"Enable Dependency Management" or "Update Project Configuration")

this section needs more work

 

  • No labels