You should no longer need the config snippets on this page.
The Maven module creation archetype will generate all these configuration snippets for you.
The @Controller, @Component, and @RequestMapping annotations will ensure Spring automatically registers them without config file entries.
Various things you might want to copy-and-paste while creating a module.
config.xml (common values)
<updateURL>https://modules.openmrs.org/modules/download/@MODULE_ID@/update.rdf</updateURL> <require_modules> <require_module>org.openmrs.module.htmlformentry</require_module> </require_modules> <mappingFiles> AccountRequest.hbm.xml </mappingFiles> <messages> <lang>en</lang> <file>messages.properties</file> </messages>
moduleApplicationContext.xml (minimal with annotation-driven MVC)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> <context:component-scan base-package="@MODULE_PACKAGE@" /> </beans>
moduleApplicationContext.xml (minimal with old-style MVC)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!-- Beans to add to the current Application context definition --> <beans> <bean id="@MODULE_ID@UrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="order"><value>1</value></property> <property name="mappings"> <props> <prop key="module/@MODULE_ID@/something.form">someController</prop> </props> </property> </bean> <bean id="someController" class="@MODULE_PACKAGE@.web.controller.SomeController"> <property name="sessionForm"><value>false</value></property> <property name="commandName"><value>command</value></property> <property name="formView"><value>/module/@MODULE_ID@/someList</value></property> <property name="successView"><value>someForm.list</value></property> </bean> </beans>
moduleApplicationContext service creation
<bean parent="serviceContext"> <property name="moduleService"> <list> <value>@MODULE_PACKAGE@.___Service</value> <!-- service interface name --> <bean class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"><ref bean="transactionManager"/></property> <property name="target"> <bean class="@MODULE_PACKAGE@.impl.___ServiceImpl"> <property name="___DAO"> <bean class="@MODULE_PACKAGE@.db.hibernate.Hibernate___DAO"> <property name="sessionFactory"><ref bean="sessionFactory"/></property> </bean> </property> </bean> </property> <property name="preInterceptors"> <ref bean="serviceInterceptors"/> </property> <property name="transactionAttributeSource"> <bean class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"/> </property> </bean> </list> </property> </bean>
Form controller annotations
@RequestMapping("/module/@MODULE_ID@/urlToMap")
Sqldiff.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqldiff PUBLIC "-//OpenMRS//DTD OpenMRS SQL Diff Config 1.0//EN" "http://resources.openmrs.org/doctype/sqldiff-1.0.dtd"> <sqldiff version="1.0"> <help></help> <diff> <version>0.1</version> <author></author> <date>Jan 1st 2009</date> <description> </description> <sql> </sql> </diff> </sqldiff>