← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 3900: added json-action for validationRules

 

------------------------------------------------------------
revno: 3900
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2011-06-14 15:59:43 +0200
message:
  added json-action for validationRules
added:
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonValidationRules.vm
  dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/commons/action/GetValidationRulesAction.java
modified:
  dhis-2/dhis-web/dhis-web-commons/src/main/resources/META-INF/dhis/beans.xml
  dhis-2/dhis-web/dhis-web-commons/src/main/resources/dhis-web-commons.xml
  dhis-2/dhis-web/dhis-web-validationrule/src/main/resources/META-INF/dhis/beans.xml


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== added file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonValidationRules.vm'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonValidationRules.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonValidationRules.vm	2011-06-14 13:59:43 +0000
@@ -0,0 +1,15 @@
+#set( $size = $validationRules.size() )
+{ "validationRules": [
+#foreach( $validationRule in $validationRules )
+  {
+    "id": ${validationRule.id},
+    "name": "$!encoder.jsonEncode( ${validationRule.name} )",
+    "description": "$!encoder.jsonEncode( ${validationRule.description} )",
+    "type": "$!encoder.jsonEncode( ${validationRule.type} )"
+  }#if( $velocityCount < $size ),#end
+#end
+]
+#if( $usePaging ),
+	"paging":#parse( "/dhis-web-commons/ajax/jsonPaging.vm" )
+#end
+}

=== added file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/commons/action/GetValidationRulesAction.java'
--- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/commons/action/GetValidationRulesAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/commons/action/GetValidationRulesAction.java	2011-06-14 13:59:43 +0000
@@ -0,0 +1,76 @@
+package org.hisp.dhis.commons.action;
+
+/*
+ * Copyright (c) 2004-2010, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hisp.dhis.validation.ValidationRule;
+import org.hisp.dhis.validation.ValidationRuleService;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author mortenoh
+ */
+public class GetValidationRulesAction
+    implements Action
+{
+    // -------------------------------------------------------------------------
+    // Dependencies
+    // -------------------------------------------------------------------------
+
+    private ValidationRuleService validationRuleService;
+
+    public void setValidationRuleService( ValidationRuleService validationRuleService )
+    {
+        this.validationRuleService = validationRuleService;
+    }
+
+    // -------------------------------------------------------------------------
+    // Input & Output
+    // -------------------------------------------------------------------------
+
+    private List<ValidationRule> validationRules;
+
+    public List<ValidationRule> getValidationRules()
+    {
+        return this.validationRules;
+    }
+
+    // -------------------------------------------------------------------------
+    // Action implementation
+    // -------------------------------------------------------------------------
+
+    public String execute()
+    {
+        validationRules = new ArrayList<ValidationRule>( validationRuleService.getAllValidationRules() );
+
+        return SUCCESS;
+    }
+}

=== modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-commons/src/main/resources/META-INF/dhis/beans.xml	2011-05-24 09:42:48 +0000
+++ dhis-2/dhis-web/dhis-web-commons/src/main/resources/META-INF/dhis/beans.xml	2011-06-14 13:59:43 +0000
@@ -1,550 +1,582 @@
 <?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:sec="http://www.springframework.org/schema/security";
-	xsi:schemaLocation="
+<beans xmlns="http://www.springframework.org/schema/beans"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xmlns:sec="http://www.springframework.org/schema/security";
+  xsi:schemaLocation="
 		http://www.springframework.org/schema/beans	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 		http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd";>
 
 	<!-- Web Portal -->
 
-	<bean id="org.hisp.dhis.webportal.module.ModuleManager" class="org.hisp.dhis.webportal.module.DefaultModuleManager">
-		<property name="moduleComparator">
-			<ref local="org.hisp.dhis.webportal.module.ConfigurableModuleComparator" />
-		</property>
-		<property name="defaultActionName">
-			<value>index</value>
-		</property>
-		<property name="maintenanceModuleIdentifier">
-			<value>maintenance</value>
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.webportal.module.ConfigurableModuleComparator" class="org.hisp.dhis.webportal.module.ConfigurableModuleComparator">
-		<property name="order">
-			<list>
-				<value>dhis-web-portal</value>
-				<value>dhis-web-maintenance-settings</value>
-				<value>dhis-web-maintenance-user</value>
-				<value>dhis-web-maintenance-organisationunit</value>
-				<value>dhis-web-maintenance-datadictionary</value>
-				<value>dhis-web-maintenance-dataset</value>
-				<value>dhis-web-maintenance-dataadmin</value>
-				<value>dhis-web-dataentry</value>
-			</list>
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.webportal.module.CurrentModuleDetectorFilter" class="org.hisp.dhis.webportal.module.CurrentModuleDetectorFilter">
-		<property name="moduleManager">
-			<ref local="org.hisp.dhis.webportal.module.ModuleManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.webportal.interceptor.XWorkPortalParamsInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalParamsInterceptor">
-		<property name="standardParams">
-			<set>
-				<value>page</value>
-				<value>menu</value>
-				<value>menuTreeHeight</value>
-			</set>
-		</property>
-		<property name="commaSeparatedParams">
-			<set>
-				<value>javascripts</value>
-				<value>stylesheets</value>
-			</set>
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.webportal.interceptor.XWorkPortalModuleInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalModuleInterceptor">
-		<property name="moduleManager">
-			<ref local="org.hisp.dhis.webportal.module.ModuleManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.webportal.menu.MenuStateManager" class="org.hisp.dhis.webportal.menu.SessionMenuStateManager" />
-
-	<bean id="org.hisp.dhis.webportal.menu.action.SetMenuHiddenAction" class="org.hisp.dhis.webportal.menu.action.SetMenuHiddenAction">
-		<property name="menuStateManager">
-			<ref local="org.hisp.dhis.webportal.menu.MenuStateManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.webportal.menu.action.SetMenuVisibleAction" class="org.hisp.dhis.webportal.menu.action.SetMenuVisibleAction">
-		<property name="menuStateManager">
-			<ref local="org.hisp.dhis.webportal.menu.MenuStateManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.webportal.interceptor.XWorkPortalMenuInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalMenuInterceptor">
-		<property name="menuStateManager">
-			<ref local="org.hisp.dhis.webportal.menu.MenuStateManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.webportal.interceptor.XWorkPortalUserInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalUserInterceptor">
-		<property name="currentUserService">
-			<ref bean="org.hisp.dhis.user.CurrentUserService" />
-		</property>
-	</bean>
+  <bean id="org.hisp.dhis.webportal.module.ModuleManager" class="org.hisp.dhis.webportal.module.DefaultModuleManager">
+    <property name="moduleComparator">
+      <ref local="org.hisp.dhis.webportal.module.ConfigurableModuleComparator" />
+    </property>
+    <property name="defaultActionName">
+      <value>index</value>
+    </property>
+    <property name="maintenanceModuleIdentifier">
+      <value>maintenance</value>
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.webportal.module.ConfigurableModuleComparator" class="org.hisp.dhis.webportal.module.ConfigurableModuleComparator">
+    <property name="order">
+      <list>
+        <value>dhis-web-portal</value>
+        <value>dhis-web-maintenance-settings</value>
+        <value>dhis-web-maintenance-user</value>
+        <value>dhis-web-maintenance-organisationunit</value>
+        <value>dhis-web-maintenance-datadictionary</value>
+        <value>dhis-web-maintenance-dataset</value>
+        <value>dhis-web-maintenance-dataadmin</value>
+        <value>dhis-web-dataentry</value>
+      </list>
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.webportal.module.CurrentModuleDetectorFilter" class="org.hisp.dhis.webportal.module.CurrentModuleDetectorFilter">
+    <property name="moduleManager">
+      <ref local="org.hisp.dhis.webportal.module.ModuleManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.webportal.interceptor.XWorkPortalParamsInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalParamsInterceptor">
+    <property name="standardParams">
+      <set>
+        <value>page</value>
+        <value>menu</value>
+        <value>menuTreeHeight</value>
+      </set>
+    </property>
+    <property name="commaSeparatedParams">
+      <set>
+        <value>javascripts</value>
+        <value>stylesheets</value>
+      </set>
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.webportal.interceptor.XWorkPortalModuleInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalModuleInterceptor">
+    <property name="moduleManager">
+      <ref local="org.hisp.dhis.webportal.module.ModuleManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.webportal.menu.MenuStateManager" class="org.hisp.dhis.webportal.menu.SessionMenuStateManager" />
+
+  <bean id="org.hisp.dhis.webportal.menu.action.SetMenuHiddenAction" class="org.hisp.dhis.webportal.menu.action.SetMenuHiddenAction">
+    <property name="menuStateManager">
+      <ref local="org.hisp.dhis.webportal.menu.MenuStateManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.webportal.menu.action.SetMenuVisibleAction" class="org.hisp.dhis.webportal.menu.action.SetMenuVisibleAction">
+    <property name="menuStateManager">
+      <ref local="org.hisp.dhis.webportal.menu.MenuStateManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.webportal.interceptor.XWorkPortalMenuInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalMenuInterceptor">
+    <property name="menuStateManager">
+      <ref local="org.hisp.dhis.webportal.menu.MenuStateManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.webportal.interceptor.XWorkPortalUserInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalUserInterceptor">
+    <property name="currentUserService">
+      <ref bean="org.hisp.dhis.user.CurrentUserService" />
+    </property>
+  </bean>
 
 	<!-- Organisation Unit Web Tree -->
 
-	<bean id="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" class="org.hisp.dhis.ouwt.manager.DefaultOrganisationUnitSelectionManager">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.ouwt.manager.TreeStateManager" class="org.hisp.dhis.ouwt.manager.DefaultTreeStateManager">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-		<property name="collapseClosesAllSubtrees">
-			<value>false</value>
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.ouwt.interceptor.OrganisationUnitTreeInterceptor" class="org.hisp.dhis.ouwt.interceptor.OrganisationUnitTreeInterceptor">
-		<property name="selectionManager">
-			<ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
-		</property>
-		<property name="treeStateManager">
-			<ref local="org.hisp.dhis.ouwt.manager.TreeStateManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.ouwt.action.ExpandSubtreeAction" class="org.hisp.dhis.ouwt.action.ExpandSubtreeAction" scope="prototype">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-		<property name="treeStateManager">
-			<ref local="org.hisp.dhis.ouwt.manager.TreeStateManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.ouwt.action.CollapseSubtreeAction" class="org.hisp.dhis.ouwt.action.CollapseSubtreeAction" scope="prototype">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-		<property name="treeStateManager">
-			<ref local="org.hisp.dhis.ouwt.manager.TreeStateManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.ouwt.action.GetExpandedTreeAction" class="org.hisp.dhis.ouwt.action.GetExpandedTreeAction" scope="prototype">
-		<property name="selectionManager">
-			<ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
-		</property>
-		<property name="treeStateManager">
-			<ref local="org.hisp.dhis.ouwt.manager.TreeStateManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.ouwt.action.SetSelectedOrganisationUnitAction" class="org.hisp.dhis.ouwt.action.SetSelectedOrganisationUnitAction"
-		scope="prototype">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-		<property name="selectionManager">
-			<ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.ouwt.action.AddSelectedOrganisationUnitAction" class="org.hisp.dhis.ouwt.action.AddSelectedOrganisationUnitAction"
-		scope="prototype">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-		<property name="selectionManager">
-			<ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.ouwt.action.RemoveSelectedOrganisationUnitAction" class="org.hisp.dhis.ouwt.action.RemoveSelectedOrganisationUnitAction"
-		scope="prototype">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-		<property name="selectionManager">
-			<ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.ouwt.action.GetOrganisationUnitByCodeAction" class="org.hisp.dhis.ouwt.action.GetOrganisationUnitByCodeAction"
-		scope="prototype">
-		<property name="selectionManager">
-			<ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
-		</property>
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-	</bean>
+  <bean id="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" class="org.hisp.dhis.ouwt.manager.DefaultOrganisationUnitSelectionManager">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.ouwt.manager.TreeStateManager" class="org.hisp.dhis.ouwt.manager.DefaultTreeStateManager">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="collapseClosesAllSubtrees">
+      <value>false</value>
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.ouwt.interceptor.OrganisationUnitTreeInterceptor" class="org.hisp.dhis.ouwt.interceptor.OrganisationUnitTreeInterceptor">
+    <property name="selectionManager">
+      <ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+    </property>
+    <property name="treeStateManager">
+      <ref local="org.hisp.dhis.ouwt.manager.TreeStateManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.ouwt.action.ExpandSubtreeAction" class="org.hisp.dhis.ouwt.action.ExpandSubtreeAction"
+    scope="prototype">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="treeStateManager">
+      <ref local="org.hisp.dhis.ouwt.manager.TreeStateManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.ouwt.action.CollapseSubtreeAction" class="org.hisp.dhis.ouwt.action.CollapseSubtreeAction"
+    scope="prototype">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="treeStateManager">
+      <ref local="org.hisp.dhis.ouwt.manager.TreeStateManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.ouwt.action.GetExpandedTreeAction" class="org.hisp.dhis.ouwt.action.GetExpandedTreeAction"
+    scope="prototype">
+    <property name="selectionManager">
+      <ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+    </property>
+    <property name="treeStateManager">
+      <ref local="org.hisp.dhis.ouwt.manager.TreeStateManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.ouwt.action.SetSelectedOrganisationUnitAction" class="org.hisp.dhis.ouwt.action.SetSelectedOrganisationUnitAction"
+    scope="prototype">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="selectionManager">
+      <ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.ouwt.action.AddSelectedOrganisationUnitAction" class="org.hisp.dhis.ouwt.action.AddSelectedOrganisationUnitAction"
+    scope="prototype">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="selectionManager">
+      <ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.ouwt.action.RemoveSelectedOrganisationUnitAction" class="org.hisp.dhis.ouwt.action.RemoveSelectedOrganisationUnitAction"
+    scope="prototype">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="selectionManager">
+      <ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.ouwt.action.GetOrganisationUnitByCodeAction" class="org.hisp.dhis.ouwt.action.GetOrganisationUnitByCodeAction"
+    scope="prototype">
+    <property name="selectionManager">
+      <ref local="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+    </property>
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+  </bean>
 
 	<!-- Organisation Unit Selection Tree -->
 
-	<bean id="org.hisp.dhis.oust.manager.SelectionTreeManager" class="org.hisp.dhis.oust.manager.DefaultSelectionTreeManager">
-		<property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService"/>
-		<property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService"/>
-	</bean>
-
-	<bean id="org.hisp.dhis.oust.action.ExpandSubtreeAction" class="org.hisp.dhis.oust.action.ExpandSubtreeAction" scope="prototype">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.oust.action.GetExpandedTreeAction" class="org.hisp.dhis.oust.action.GetExpandedTreeAction" scope="prototype">
-		<property name="selectionTreeManager">
-			<ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.oust.action.SetSelectedOrganisationUnitAction" class="org.hisp.dhis.oust.action.SetSelectedOrganisationUnitAction"
-		scope="prototype">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-		<property name="selectionTreeManager">
-			<ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.oust.action.AddSelectedOrganisationUnitAction" class="org.hisp.dhis.oust.action.AddSelectedOrganisationUnitAction"
-		scope="prototype">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-		<property name="organisationUnitGroupService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
-		</property>
-		<property name="selectionTreeManager">
-			<ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.oust.action.RemoveSelectedOrganisationUnitAction" class="org.hisp.dhis.oust.action.RemoveSelectedOrganisationUnitAction"
-		scope="prototype">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-		<property name="organisationUnitGroupService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
-		</property>
-		<property name="selectionTreeManager">
-			<ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.oust.action.SelectAllOrganisationUnitAction" class="org.hisp.dhis.oust.action.SelectAllOrganisationUnitAction"
-		scope="prototype">
-		<property name="organisationUnitService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		</property>
-		<property name="selectionTreeManager">
-			<ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.oust.action.ClearSelectedOrganisationUnitsAction" class="org.hisp.dhis.oust.action.ClearSelectedOrganisationUnitsAction"
-		scope="prototype">
-		<property name="selectionTreeManager">
-			<ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
-		</property>
-	</bean>
+  <bean id="org.hisp.dhis.oust.manager.SelectionTreeManager" class="org.hisp.dhis.oust.manager.DefaultSelectionTreeManager">
+    <property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    <property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.oust.action.ExpandSubtreeAction" class="org.hisp.dhis.oust.action.ExpandSubtreeAction"
+    scope="prototype">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.oust.action.GetExpandedTreeAction" class="org.hisp.dhis.oust.action.GetExpandedTreeAction"
+    scope="prototype">
+    <property name="selectionTreeManager">
+      <ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.oust.action.SetSelectedOrganisationUnitAction" class="org.hisp.dhis.oust.action.SetSelectedOrganisationUnitAction"
+    scope="prototype">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="selectionTreeManager">
+      <ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.oust.action.AddSelectedOrganisationUnitAction" class="org.hisp.dhis.oust.action.AddSelectedOrganisationUnitAction"
+    scope="prototype">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="organisationUnitGroupService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
+    </property>
+    <property name="selectionTreeManager">
+      <ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.oust.action.RemoveSelectedOrganisationUnitAction" class="org.hisp.dhis.oust.action.RemoveSelectedOrganisationUnitAction"
+    scope="prototype">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="organisationUnitGroupService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
+    </property>
+    <property name="selectionTreeManager">
+      <ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.oust.action.SelectAllOrganisationUnitAction" class="org.hisp.dhis.oust.action.SelectAllOrganisationUnitAction"
+    scope="prototype">
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="selectionTreeManager">
+      <ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.oust.action.ClearSelectedOrganisationUnitsAction" class="org.hisp.dhis.oust.action.ClearSelectedOrganisationUnitsAction"
+    scope="prototype">
+    <property name="selectionTreeManager">
+      <ref local="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+    </property>
+  </bean>
 
 	<!-- Security import -->
-	<import resource="security.xml"/>
+  <import resource="security.xml" />
 
 	<!-- i18n -->
 
-	<bean id="org.hisp.dhis.i18n.action.I18nAction" class="org.hisp.dhis.i18n.action.I18nAction" scope="prototype">
-		<property name="i18nService">
-			<ref bean="org.hisp.dhis.i18n.I18nService" />
-		</property>
-		<property name="localeManager">
-			<ref bean="org.hisp.dhis.i18n.locale.LocaleManagerDb" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.i18n.action.GetTranslationsAction" class="org.hisp.dhis.i18n.action.GetTranslationsAction">
-		<property name="i18nService">
-			<ref bean="org.hisp.dhis.i18n.I18nService" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.i18n.action.TranslateAction" class="org.hisp.dhis.i18n.action.TranslateAction">
-		<property name="i18nService">
-			<ref bean="org.hisp.dhis.i18n.I18nService" />
-		</property>
-		<property name="translationService">
-			<ref bean="org.hisp.dhis.translation.TranslationService" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.i18n.action.ValidateAddDuplicatedTranslationAction" class="org.hisp.dhis.i18n.action.ValidateAddDuplicatedTranslationAction">
-		<property name="i18nService">
-			<ref bean="org.hisp.dhis.i18n.I18nService" />
-		</property>
-		<property name="translationService">
-			<ref bean="org.hisp.dhis.translation.TranslationService" />
-		</property>
-	</bean>
+  <bean id="org.hisp.dhis.i18n.action.I18nAction" class="org.hisp.dhis.i18n.action.I18nAction" scope="prototype">
+    <property name="i18nService">
+      <ref bean="org.hisp.dhis.i18n.I18nService" />
+    </property>
+    <property name="localeManager">
+      <ref bean="org.hisp.dhis.i18n.locale.LocaleManagerDb" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.i18n.action.GetTranslationsAction" class="org.hisp.dhis.i18n.action.GetTranslationsAction">
+    <property name="i18nService">
+      <ref bean="org.hisp.dhis.i18n.I18nService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.i18n.action.TranslateAction" class="org.hisp.dhis.i18n.action.TranslateAction">
+    <property name="i18nService">
+      <ref bean="org.hisp.dhis.i18n.I18nService" />
+    </property>
+    <property name="translationService">
+      <ref bean="org.hisp.dhis.translation.TranslationService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.i18n.action.ValidateAddDuplicatedTranslationAction" class="org.hisp.dhis.i18n.action.ValidateAddDuplicatedTranslationAction">
+    <property name="i18nService">
+      <ref bean="org.hisp.dhis.i18n.I18nService" />
+    </property>
+    <property name="translationService">
+      <ref bean="org.hisp.dhis.translation.TranslationService" />
+    </property>
+  </bean>
 
 	<!-- About -->
 
-	<bean id="org.hisp.dhis.about.action.AboutAction" class="org.hisp.dhis.about.action.AboutAction" scope="prototype">
-		<property name="locationManager" ref="locationManager" />
-		<property name="databaseInfoProvider" ref="databaseInfoProvider" />
-		<property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.about.action.HelpAction" class="org.hisp.dhis.about.action.HelpAction" scope="prototype">
-		<property name="localeManager" ref="org.hisp.dhis.i18n.locale.LocaleManager" />
-	</bean>
-
-	<bean id="org.hisp.dhis.about.action.SendFeedbackAction" class="org.hisp.dhis.about.action.SendFeedbackAction" scope="prototype">
-		<property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.help.action.GetHelpContentAction" class="org.hisp.dhis.help.action.GetHelpContentAction" scope="prototype">
-		<property name="helpManager" ref="org.hisp.dhis.options.help.HelpManager" />
-	</bean>
-
-	<bean id="org.hisp.dhis.help.action.GetHelpItemsAction" class="org.hisp.dhis.help.action.GetHelpItemsAction" scope="prototype">
-		<property name="helpManager" ref="org.hisp.dhis.options.help.HelpManager" />
-	</bean>
-
-	<!-- Common actions -->
-
-    <bean id="org.hisp.dhis.commons.action.GetUsersAction" class="org.hisp.dhis.commons.action.GetUsersAction" scope="prototype">
-      <property name="userService" ref="org.hisp.dhis.user.UserService" />
-    </bean>
-
-    <bean id="org.hisp.dhis.commons.action.GetUserGroupsAction" class="org.hisp.dhis.commons.action.GetUserGroupsAction" scope="prototype">
-      <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-    </bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetAvailablePeriodsAction" class="org.hisp.dhis.commons.action.GetAvailablePeriodsAction"
-		scope="prototype">
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetCategoryOptionCombosAction" class="org.hisp.dhis.commons.action.GetCategoryOptionCombosAction"
-		scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetDataElementAction" class="org.hisp.dhis.commons.action.GetDataElementAction" scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetDataElementGroupAction" class="org.hisp.dhis.commons.action.GetDataElementGroupAction"
-		scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetDataElementGroupsAction" class="org.hisp.dhis.commons.action.GetDataElementGroupsAction"
-		scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetDataElementsNotInGroupAction" class="org.hisp.dhis.commons.action.GetDataElementsNotInGroupAction"
-		scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetDataElementGroupSetAction" class="org.hisp.dhis.commons.action.GetDataElementGroupSetAction"
-		scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetDataElementGroupSetsAction" class="org.hisp.dhis.commons.action.GetDataElementGroupSetsAction"
-		scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetDataElementNameAction" class="org.hisp.dhis.commons.action.GetDataElementNameAction" scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-		<property name="categoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetDataElementsAction" class="org.hisp.dhis.commons.action.GetDataElementsAction" scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-		<property name="categoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
-		<property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetDataSetAction" class="org.hisp.dhis.commons.action.GetDataSetAction" scope="prototype">
-		<property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetDataSetsAction" class="org.hisp.dhis.commons.action.GetDataSetsAction" scope="prototype">
-		<property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-		<property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
-		<property name="userService" ref="org.hisp.dhis.user.UserService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetExpressionTextAction" class="org.hisp.dhis.commons.action.GetExpressionTextAction" scope="prototype">
-		<property name="expressionService" ref="org.hisp.dhis.expression.ExpressionService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetIndicatorAction" class="org.hisp.dhis.commons.action.GetIndicatorAction" scope="prototype">
-		<property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetIndicatorGroupAction" class="org.hisp.dhis.commons.action.GetIndicatorGroupAction" scope="prototype">
-		<property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetIndicatorGroupsAction" class="org.hisp.dhis.commons.action.GetIndicatorGroupsAction" scope="prototype">
-		<property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetIndicatorGroupSetAction" class="org.hisp.dhis.commons.action.GetIndicatorGroupSetAction"
-		scope="prototype">
-		<property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetIndicatorGroupSetsAction" class="org.hisp.dhis.commons.action.GetIndicatorGroupSetsAction"
-		scope="prototype">
-		<property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetIndicatorsAction" class="org.hisp.dhis.commons.action.GetIndicatorsAction" scope="prototype">
-		<property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
-        <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
-	</bean>
-
-    <bean id="org.hisp.dhis.commons.action.GetDataElementOperandsAction" class="org.hisp.dhis.commons.action.GetDataElementOperandsAction" scope="prototype">
-      <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
-      <property name="dataElementCategoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
-    </bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetOperandsAction" class="org.hisp.dhis.commons.action.GetOperandsAction" scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-		<property name="dataElementCategoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
-		<property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetOrganisationUnitAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitAction"
-		scope="prototype">
-		<property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetOrganisationUnitChildrenAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitChildrenAction"
-		scope="prototype">
-		<property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsAction"
-		scope="prototype">
-		<property name="organisationUnitGroupService">
-			<ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
-		</property>
-	</bean>
-
-    <bean id="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsByGroupSetAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsByGroupSetAction"
-        scope="prototype">
-        <property name="organisationUnitGroupService">
-            <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
-        </property>
-    </bean>
-
-    <bean id="org.hisp.dhis.commons.action.GetOrganisationUnitGroupSetsAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupSetsAction"
-        scope="prototype">
-        <property name="organisationUnitGroupService">
-            <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
-        </property>
-    </bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetOrganisationUnitLevelsAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitLevelsAction"
-		scope="prototype">
-		<property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetOrganisationUnitsAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitsAction"
-		scope="prototype">
-		<property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetPeriodAction" class="org.hisp.dhis.commons.action.GetPeriodAction" scope="prototype">
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetPeriodsAction" class="org.hisp.dhis.commons.action.GetPeriodsAction" scope="prototype">
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.GetPeriodTypesAction" class="org.hisp.dhis.commons.action.GetPeriodTypesAction" scope="prototype">
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.commons.action.LoadDocumentAction" class="org.hisp.dhis.commons.action.LoadDocumentAction" scope="prototype">
-		<property name="locationManager" ref="locationManager"/>
-		<property name="documentService" ref="org.hisp.dhis.document.DocumentService"/>
-	</bean>
-  
-	<bean id="org.hisp.dhis.commons.action.NoAction" class="org.hisp.dhis.commons.action.NoAction" />
+  <bean id="org.hisp.dhis.about.action.AboutAction" class="org.hisp.dhis.about.action.AboutAction" scope="prototype">
+    <property name="locationManager" ref="locationManager" />
+    <property name="databaseInfoProvider" ref="databaseInfoProvider" />
+    <property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.about.action.HelpAction" class="org.hisp.dhis.about.action.HelpAction" scope="prototype">
+    <property name="localeManager" ref="org.hisp.dhis.i18n.locale.LocaleManager" />
+  </bean>
+
+  <bean id="org.hisp.dhis.about.action.SendFeedbackAction" class="org.hisp.dhis.about.action.SendFeedbackAction"
+    scope="prototype">
+    <property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.help.action.GetHelpContentAction" class="org.hisp.dhis.help.action.GetHelpContentAction"
+    scope="prototype">
+    <property name="helpManager" ref="org.hisp.dhis.options.help.HelpManager" />
+  </bean>
+
+  <bean id="org.hisp.dhis.help.action.GetHelpItemsAction" class="org.hisp.dhis.help.action.GetHelpItemsAction"
+    scope="prototype">
+    <property name="helpManager" ref="org.hisp.dhis.options.help.HelpManager" />
+  </bean>
+
+  <!-- Common actions -->
+
+  <bean id="org.hisp.dhis.commons.action.GetUsersAction" class="org.hisp.dhis.commons.action.GetUsersAction" scope="prototype">
+    <property name="userService" ref="org.hisp.dhis.user.UserService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetUserGroupsAction" class="org.hisp.dhis.commons.action.GetUserGroupsAction"
+    scope="prototype">
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetValidationRulesAction" class="org.hisp.dhis.commons.action.GetValidationRulesAction"
+    scope="prototype">
+    <property name="validationRuleService" ref="org.hisp.dhis.validation.ValidationRuleService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetAvailablePeriodsAction" class="org.hisp.dhis.commons.action.GetAvailablePeriodsAction"
+    scope="prototype">
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetCategoryOptionCombosAction" class="org.hisp.dhis.commons.action.GetCategoryOptionCombosAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataElementAction" class="org.hisp.dhis.commons.action.GetDataElementAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataElementGroupAction" class="org.hisp.dhis.commons.action.GetDataElementGroupAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataElementGroupsAction" class="org.hisp.dhis.commons.action.GetDataElementGroupsAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataElementsNotInGroupAction" class="org.hisp.dhis.commons.action.GetDataElementsNotInGroupAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataElementGroupSetAction" class="org.hisp.dhis.commons.action.GetDataElementGroupSetAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataElementGroupSetsAction" class="org.hisp.dhis.commons.action.GetDataElementGroupSetsAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataElementNameAction" class="org.hisp.dhis.commons.action.GetDataElementNameAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+    <property name="categoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataElementsAction" class="org.hisp.dhis.commons.action.GetDataElementsAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+    <property name="categoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
+    <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataSetAction" class="org.hisp.dhis.commons.action.GetDataSetAction"
+    scope="prototype">
+    <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataSetsAction" class="org.hisp.dhis.commons.action.GetDataSetsAction"
+    scope="prototype">
+    <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+    <property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
+    <property name="userService" ref="org.hisp.dhis.user.UserService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetExpressionTextAction" class="org.hisp.dhis.commons.action.GetExpressionTextAction"
+    scope="prototype">
+    <property name="expressionService" ref="org.hisp.dhis.expression.ExpressionService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetIndicatorAction" class="org.hisp.dhis.commons.action.GetIndicatorAction"
+    scope="prototype">
+    <property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetIndicatorGroupAction" class="org.hisp.dhis.commons.action.GetIndicatorGroupAction"
+    scope="prototype">
+    <property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetIndicatorGroupsAction" class="org.hisp.dhis.commons.action.GetIndicatorGroupsAction"
+    scope="prototype">
+    <property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetIndicatorGroupSetAction" class="org.hisp.dhis.commons.action.GetIndicatorGroupSetAction"
+    scope="prototype">
+    <property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetIndicatorGroupSetsAction" class="org.hisp.dhis.commons.action.GetIndicatorGroupSetsAction"
+    scope="prototype">
+    <property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetIndicatorsAction" class="org.hisp.dhis.commons.action.GetIndicatorsAction"
+    scope="prototype">
+    <property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
+    <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetDataElementOperandsAction" class="org.hisp.dhis.commons.action.GetDataElementOperandsAction"
+    scope="prototype">
+    <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+    <property name="dataElementCategoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetOperandsAction" class="org.hisp.dhis.commons.action.GetOperandsAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+    <property name="dataElementCategoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
+    <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetOrganisationUnitAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitAction"
+    scope="prototype">
+    <property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetOrganisationUnitChildrenAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitChildrenAction"
+    scope="prototype">
+    <property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsAction"
+    scope="prototype">
+    <property name="organisationUnitGroupService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsByGroupSetAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsByGroupSetAction"
+    scope="prototype">
+    <property name="organisationUnitGroupService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetOrganisationUnitGroupSetsAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupSetsAction"
+    scope="prototype">
+    <property name="organisationUnitGroupService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetOrganisationUnitLevelsAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitLevelsAction"
+    scope="prototype">
+    <property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetOrganisationUnitsAction" class="org.hisp.dhis.commons.action.GetOrganisationUnitsAction"
+    scope="prototype">
+    <property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetPeriodAction" class="org.hisp.dhis.commons.action.GetPeriodAction"
+    scope="prototype">
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetPeriodsAction" class="org.hisp.dhis.commons.action.GetPeriodsAction"
+    scope="prototype">
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.GetPeriodTypesAction" class="org.hisp.dhis.commons.action.GetPeriodTypesAction"
+    scope="prototype">
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.LoadDocumentAction" class="org.hisp.dhis.commons.action.LoadDocumentAction"
+    scope="prototype">
+    <property name="locationManager" ref="locationManager" />
+    <property name="documentService" ref="org.hisp.dhis.document.DocumentService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.commons.action.NoAction" class="org.hisp.dhis.commons.action.NoAction" />
 
 	<!-- Interceptor -->
 
-	<bean id="org.hisp.dhis.interceptor.DisplayPropertyInterceptor" class="org.hisp.dhis.interceptor.DisplayPropertyInterceptor">
-		<property name="displayPropertyManager" ref="org.hisp.dhis.options.displayproperty.DisplayPropertyManager" />
-	</bean>
-
-	<bean id="org.hisp.dhis.interceptor.ExceptionInterceptor" class="org.hisp.dhis.interceptor.ExceptionInterceptor">
-		<property name="showStackTrace" value="true" />
-		<property name="ignoredExceptions">
-			<list>
-				<value>org.apache.catalina.connector.ClientAbortException</value>
-			</list>
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.interceptor.I18nInterceptor" class="org.hisp.dhis.interceptor.I18nInterceptor">
-		<property name="i18nManager" ref="org.hisp.dhis.i18n.I18nManager" />
-		<property name="localeManager" ref="org.hisp.dhis.i18n.locale.LocaleManager" />
-	</bean>
-
-	<bean id="org.hisp.dhis.interceptor.SortOrderInterceptor" class="org.hisp.dhis.interceptor.SortOrderInterceptor">
-		<property name="sortOrderManager" ref="org.hisp.dhis.options.sortorder.SortOrderManager" />
-	</bean>
-
-	<bean id="org.hisp.dhis.interceptor.StyleInterceptor" class="org.hisp.dhis.interceptor.StyleInterceptor">
-		<property name="systemStyleManager" ref="org.hisp.dhis.options.style.StyleManager" />
-		<property name="userStyleManager" ref="org.hisp.dhis.options.style.UserStyleManager" />
-	</bean>
-
-	<bean id="org.hisp.dhis.interceptor.SystemSettingInterceptor" class="org.hisp.dhis.interceptor.SystemSettingInterceptor">
-		<property name="systemSettingManager" ref="org.hisp.dhis.options.SystemSettingManager" />
-	</bean>
-
-	<bean id="org.hisp.dhis.interceptor.ContextInterceptor" class="org.hisp.dhis.interceptor.ContextInterceptor">
-		<property name="databaseInfoProvider" ref="databaseInfoProvider" />
-	</bean>
-
-	<bean id="org.hisp.dhis.interceptor.UserSettingInterceptor" class="org.hisp.dhis.interceptor.UserSettingInterceptor">
-	    <property name="userSettingManager" ref="org.hisp.dhis.options.UserSettingManager" />
-	</bean>
-
-	<bean id="org.hisp.dhis.useraccount.action.GetCurrentUserAction" class="org.hisp.dhis.useraccount.action.GetCurrentUserAction" scope="prototype">
-		<property name="currentUserService">
-			<ref bean="org.hisp.dhis.user.CurrentUserService" />
-		</property>
-		<property name="userService">
-			<ref bean="org.hisp.dhis.user.UserService" />
-		</property>
-	</bean>
-
-	<bean id="org.hisp.dhis.useraccount.action.UpdateUserAccountAction" class="org.hisp.dhis.useraccount.action.UpdateUserAccountAction"
-		scope="prototype">
-		<property name="userService">
-			<ref bean="org.hisp.dhis.user.UserService" />
-		</property>
-		<property name="passwordManager">
-			<ref bean="org.hisp.dhis.security.PasswordManager" />
-		</property>
-	</bean>
+  <bean id="org.hisp.dhis.interceptor.DisplayPropertyInterceptor" class="org.hisp.dhis.interceptor.DisplayPropertyInterceptor">
+    <property name="displayPropertyManager" ref="org.hisp.dhis.options.displayproperty.DisplayPropertyManager" />
+  </bean>
+
+  <bean id="org.hisp.dhis.interceptor.ExceptionInterceptor" class="org.hisp.dhis.interceptor.ExceptionInterceptor">
+    <property name="showStackTrace" value="true" />
+    <property name="ignoredExceptions">
+      <list>
+        <value>org.apache.catalina.connector.ClientAbortException</value>
+      </list>
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.interceptor.I18nInterceptor" class="org.hisp.dhis.interceptor.I18nInterceptor">
+    <property name="i18nManager" ref="org.hisp.dhis.i18n.I18nManager" />
+    <property name="localeManager" ref="org.hisp.dhis.i18n.locale.LocaleManager" />
+  </bean>
+
+  <bean id="org.hisp.dhis.interceptor.SortOrderInterceptor" class="org.hisp.dhis.interceptor.SortOrderInterceptor">
+    <property name="sortOrderManager" ref="org.hisp.dhis.options.sortorder.SortOrderManager" />
+  </bean>
+
+  <bean id="org.hisp.dhis.interceptor.StyleInterceptor" class="org.hisp.dhis.interceptor.StyleInterceptor">
+    <property name="systemStyleManager" ref="org.hisp.dhis.options.style.StyleManager" />
+    <property name="userStyleManager" ref="org.hisp.dhis.options.style.UserStyleManager" />
+  </bean>
+
+  <bean id="org.hisp.dhis.interceptor.SystemSettingInterceptor" class="org.hisp.dhis.interceptor.SystemSettingInterceptor">
+    <property name="systemSettingManager" ref="org.hisp.dhis.options.SystemSettingManager" />
+  </bean>
+
+  <bean id="org.hisp.dhis.interceptor.ContextInterceptor" class="org.hisp.dhis.interceptor.ContextInterceptor">
+    <property name="databaseInfoProvider" ref="databaseInfoProvider" />
+  </bean>
+
+  <bean id="org.hisp.dhis.interceptor.UserSettingInterceptor" class="org.hisp.dhis.interceptor.UserSettingInterceptor">
+    <property name="userSettingManager" ref="org.hisp.dhis.options.UserSettingManager" />
+  </bean>
+
+  <bean id="org.hisp.dhis.useraccount.action.GetCurrentUserAction" class="org.hisp.dhis.useraccount.action.GetCurrentUserAction"
+    scope="prototype">
+    <property name="currentUserService">
+      <ref bean="org.hisp.dhis.user.CurrentUserService" />
+    </property>
+    <property name="userService">
+      <ref bean="org.hisp.dhis.user.UserService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.useraccount.action.UpdateUserAccountAction" class="org.hisp.dhis.useraccount.action.UpdateUserAccountAction"
+    scope="prototype">
+    <property name="userService">
+      <ref bean="org.hisp.dhis.user.UserService" />
+    </property>
+    <property name="passwordManager">
+      <ref bean="org.hisp.dhis.security.PasswordManager" />
+    </property>
+  </bean>
 
 </beans>

=== modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/resources/dhis-web-commons.xml'
--- dhis-2/dhis-web/dhis-web-commons/src/main/resources/dhis-web-commons.xml	2011-06-12 12:09:35 +0000
+++ dhis-2/dhis-web/dhis-web-commons/src/main/resources/dhis-web-commons.xml	2011-06-14 13:59:43 +0000
@@ -4,745 +4,673 @@
 "http://struts.apache.org/dtds/struts-2.0.dtd";>
 <struts>
 
-	<include file="struts-default.xml" />
+  <include file="struts-default.xml" />
 
 	<!-- Properties -->
 
-	<constant name="struts.velocity.contexts"
-		value="org.hisp.dhis.encoding.velocity.EncoderVelocityContext" />
-	<constant name="struts.velocity.toolboxlocation" value="toolbox.xml" /> <!-- Work-around -->
-	<constant name="struts.i18n.encoding" value="UTF-8" />
-	<constant name="struts.multipart.parser" value="jakarta" />
-	<constant name="struts.multipart.maxSize" value="1073741824" />
+  <constant name="struts.velocity.contexts" value="org.hisp.dhis.encoding.velocity.EncoderVelocityContext" />
+  <constant name="struts.velocity.toolboxlocation" value="toolbox.xml" /> <!-- Work-around -->
+  <constant name="struts.i18n.encoding" value="UTF-8" />
+  <constant name="struts.multipart.parser" value="jakarta" />
+  <constant name="struts.multipart.maxSize" value="1073741824" />
 
 	<!-- DHIS Web Commons -->
 
-	<package name="dhis-web-commons" extends="struts-default"
-		namespace="/dhis-web-commons">
-
-		<result-types>
-			<result-type name="plainTextErrorResult"
-				class="org.hisp.dhis.result.PlainTextErrorResult" />
-			<result-type name="chart" 
-				class="org.hisp.dhis.result.ChartResult" />
-			<result-type name="velocity-xml"
-				class="org.hisp.dhis.result.VelocityXMLResult" />
-			<result-type name="velocity-json"
-				class="org.hisp.dhis.result.VelocityJsonResult" />
-			<result-type name="velocity-javascript"
-				class="org.hisp.dhis.result.VelocityJavascriptResult" />
-			<result-type name="outputStreamResult"
-				class="org.hisp.dhis.result.OutputStreamResult" />
-			<result-type name="gridCsvResult"
-				class="org.hisp.dhis.result.GridCsvResult" />
-			<result-type name="gridXlsResult"
-				class="org.hisp.dhis.result.GridXlsResult" />
-			<result-type name="gridPdfResult"
-				class="org.hisp.dhis.result.GridPdfResult" />
-			<result-type name="gridJasperResult"
-				class="org.hisp.dhis.result.GridJasperResult" />
-			<result-type name="gridJrxmlResult"
-				class="org.hisp.dhis.result.GridJrxmlResult" />
-		</result-types>
-
-		<interceptors>
-			<interceptor name="exceptionInterceptor"
-				class="org.hisp.dhis.interceptor.ExceptionInterceptor" />
-			<interceptor name="i18nInterceptor"
-				class="org.hisp.dhis.interceptor.I18nInterceptor" />
-			<interceptor name="sortOrderInterceptor"
-				class="org.hisp.dhis.interceptor.SortOrderInterceptor" />
-			<interceptor name="displayPropertyInterceptor"
-				class="org.hisp.dhis.interceptor.DisplayPropertyInterceptor" />
-			<interceptor name="systemSettingInterceptor"
-				class="org.hisp.dhis.interceptor.SystemSettingInterceptor" />
-			<interceptor name="userSettingInterceptor"
-				class="org.hisp.dhis.interceptor.UserSettingInterceptor" />
-			<interceptor name="styleInterceptor"
-				class="org.hisp.dhis.interceptor.StyleInterceptor" />
-			<interceptor name="contextInterceptor"
-				class="org.hisp.dhis.interceptor.ContextInterceptor" />
-
-			<interceptor name="portalParamsInterceptor"
-				class="org.hisp.dhis.webportal.interceptor.XWorkPortalParamsInterceptor" />
-			<interceptor name="portalModuleInterceptor"
-				class="org.hisp.dhis.webportal.interceptor.XWorkPortalModuleInterceptor" />
-			<interceptor name="portalMenuInterceptor"
-				class="org.hisp.dhis.webportal.interceptor.XWorkPortalMenuInterceptor" />
-			<interceptor name="organisationUnitTreeInterceptor"
-				class="org.hisp.dhis.ouwt.interceptor.OrganisationUnitTreeInterceptor" />
-			<interceptor name="portalUserInterceptor"
-				class="org.hisp.dhis.webportal.interceptor.XWorkPortalUserInterceptor" />
-			<interceptor name="securityInterceptor"
-				class="org.hisp.dhis.security.intercept.XWorkSecurityInterceptor" />
-			<interceptor name="postHttpMethodInterceptor"
-				class="org.hisp.dhis.security.intercept.HttpMethodInterceptor" />
-			<interceptor name="loginInterceptor" class="loginInterceptor" />
-
-			<interceptor-stack name="commonInterceptors">
-				<interceptor-ref name="staticParams" />
-				<interceptor-ref name="params" />
-				<interceptor-ref name="chain" />
-				<interceptor-ref name="i18nInterceptor" />
+  <package name="dhis-web-commons" extends="struts-default" namespace="/dhis-web-commons">
+
+    <result-types>
+      <result-type name="plainTextErrorResult" class="org.hisp.dhis.result.PlainTextErrorResult" />
+      <result-type name="chart" class="org.hisp.dhis.result.ChartResult" />
+      <result-type name="velocity-xml" class="org.hisp.dhis.result.VelocityXMLResult" />
+      <result-type name="velocity-json" class="org.hisp.dhis.result.VelocityJsonResult" />
+      <result-type name="velocity-javascript" class="org.hisp.dhis.result.VelocityJavascriptResult" />
+      <result-type name="outputStreamResult" class="org.hisp.dhis.result.OutputStreamResult" />
+      <result-type name="gridCsvResult" class="org.hisp.dhis.result.GridCsvResult" />
+      <result-type name="gridXlsResult" class="org.hisp.dhis.result.GridXlsResult" />
+      <result-type name="gridPdfResult" class="org.hisp.dhis.result.GridPdfResult" />
+      <result-type name="gridJasperResult" class="org.hisp.dhis.result.GridJasperResult" />
+      <result-type name="gridJrxmlResult" class="org.hisp.dhis.result.GridJrxmlResult" />
+    </result-types>
+
+    <interceptors>
+      <interceptor name="exceptionInterceptor" class="org.hisp.dhis.interceptor.ExceptionInterceptor" />
+      <interceptor name="i18nInterceptor" class="org.hisp.dhis.interceptor.I18nInterceptor" />
+      <interceptor name="sortOrderInterceptor" class="org.hisp.dhis.interceptor.SortOrderInterceptor" />
+      <interceptor name="displayPropertyInterceptor" class="org.hisp.dhis.interceptor.DisplayPropertyInterceptor" />
+      <interceptor name="systemSettingInterceptor" class="org.hisp.dhis.interceptor.SystemSettingInterceptor" />
+      <interceptor name="userSettingInterceptor" class="org.hisp.dhis.interceptor.UserSettingInterceptor" />
+      <interceptor name="styleInterceptor" class="org.hisp.dhis.interceptor.StyleInterceptor" />
+      <interceptor name="contextInterceptor" class="org.hisp.dhis.interceptor.ContextInterceptor" />
+
+      <interceptor name="portalParamsInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalParamsInterceptor" />
+      <interceptor name="portalModuleInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalModuleInterceptor" />
+      <interceptor name="portalMenuInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalMenuInterceptor" />
+      <interceptor name="organisationUnitTreeInterceptor" class="org.hisp.dhis.ouwt.interceptor.OrganisationUnitTreeInterceptor" />
+      <interceptor name="portalUserInterceptor" class="org.hisp.dhis.webportal.interceptor.XWorkPortalUserInterceptor" />
+      <interceptor name="securityInterceptor" class="org.hisp.dhis.security.intercept.XWorkSecurityInterceptor" />
+      <interceptor name="postHttpMethodInterceptor" class="org.hisp.dhis.security.intercept.HttpMethodInterceptor" />
+      <interceptor name="loginInterceptor" class="loginInterceptor" />
+
+      <interceptor-stack name="commonInterceptors">
+        <interceptor-ref name="staticParams" />
+        <interceptor-ref name="params" />
+        <interceptor-ref name="chain" />
+        <interceptor-ref name="i18nInterceptor" />
 				<!--
 					The securityInterceptor is put after the i18nInterceptor so that
 					the access denied error pages can use internationalisation.
 				-->
-				<interceptor-ref name="securityInterceptor" />
-				<interceptor-ref name="loginInterceptor" />
-				<interceptor-ref name="sortOrderInterceptor" />
-				<interceptor-ref name="displayPropertyInterceptor" />
-				<interceptor-ref name="systemSettingInterceptor" />
-				<interceptor-ref name="userSettingInterceptor" />
-				<interceptor-ref name="styleInterceptor" />
-				<interceptor-ref name="contextInterceptor"/>
-				<interceptor-ref name="portalParamsInterceptor" />
-				<interceptor-ref name="portalMenuInterceptor" />
-				<interceptor-ref name="portalModuleInterceptor" />
-				<interceptor-ref name="portalUserInterceptor" />
-			</interceptor-stack>
-
-			<interceptor-stack name="exceptionStack">
-				<interceptor-ref name="exceptionInterceptor" />
-				<interceptor-ref name="commonInterceptors" />
-			</interceptor-stack>
-
-			<interceptor-stack name="fileUploadStack">
-				<interceptor-ref name="exceptionInterceptor" />
-				<interceptor-ref name="fileUpload" />
-				<interceptor-ref name="commonInterceptors" />
-			</interceptor-stack>
-
-			<interceptor-stack name="organisationUnitTreeStack">
-				<interceptor-ref name="exceptionInterceptor" />
-				<interceptor-ref name="organisationUnitTreeInterceptor" />
-				<interceptor-ref name="commonInterceptors" />
-			</interceptor-stack>
-		</interceptors>
-
-		<default-interceptor-ref name="exceptionStack" />
-
-		<global-results>
-			<result name="exceptionDefault" type="velocity">/exception.vm</result>
-			<result name="accessDenied" type="velocity">/accessDenied.vm</result>
-			<result name="jsonAccessDenied" type="velocity">/dhis-web-commons/ajax/jsonAccessDenied.vm</result>
-			<result name="plainTextError" type="plainTextErrorResult">
-				<param name="parse">true</param>
-				<param name="message">${exception.class.name}: ${exception.message}</param>
-			</result>
-		</global-results>
-	</package>
+        <interceptor-ref name="securityInterceptor" />
+        <interceptor-ref name="loginInterceptor" />
+        <interceptor-ref name="sortOrderInterceptor" />
+        <interceptor-ref name="displayPropertyInterceptor" />
+        <interceptor-ref name="systemSettingInterceptor" />
+        <interceptor-ref name="userSettingInterceptor" />
+        <interceptor-ref name="styleInterceptor" />
+        <interceptor-ref name="contextInterceptor" />
+        <interceptor-ref name="portalParamsInterceptor" />
+        <interceptor-ref name="portalMenuInterceptor" />
+        <interceptor-ref name="portalModuleInterceptor" />
+        <interceptor-ref name="portalUserInterceptor" />
+      </interceptor-stack>
+
+      <interceptor-stack name="exceptionStack">
+        <interceptor-ref name="exceptionInterceptor" />
+        <interceptor-ref name="commonInterceptors" />
+      </interceptor-stack>
+
+      <interceptor-stack name="fileUploadStack">
+        <interceptor-ref name="exceptionInterceptor" />
+        <interceptor-ref name="fileUpload" />
+        <interceptor-ref name="commonInterceptors" />
+      </interceptor-stack>
+
+      <interceptor-stack name="organisationUnitTreeStack">
+        <interceptor-ref name="exceptionInterceptor" />
+        <interceptor-ref name="organisationUnitTreeInterceptor" />
+        <interceptor-ref name="commonInterceptors" />
+      </interceptor-stack>
+    </interceptors>
+
+    <default-interceptor-ref name="exceptionStack" />
+
+    <global-results>
+      <result name="exceptionDefault" type="velocity">/exception.vm</result>
+      <result name="accessDenied" type="velocity">/accessDenied.vm</result>
+      <result name="jsonAccessDenied" type="velocity">/dhis-web-commons/ajax/jsonAccessDenied.vm</result>
+      <result name="plainTextError" type="plainTextErrorResult">
+        <param name="parse">true</param>
+        <param name="message">${exception.class.name}: ${exception.message}</param>
+      </result>
+    </global-results>
+  </package>
 
 	<!-- Organisation Unit Selection Tree -->
 
-	<package name="dhis-web-commons-oust" extends="dhis-web-commons"
-		namespace="/dhis-web-commons/oust">
-
-		<action name="expandSubtree" class="org.hisp.dhis.oust.action.ExpandSubtreeAction">
-			<result name="success" type="velocity">
-				/dhis-web-commons/ouwt/responseExpand.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getExpandedTree" class="org.hisp.dhis.oust.action.GetExpandedTreeAction">
-			<result name="success" type="velocity">
-				/dhis-web-commons/ouwt/responseTree.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="setorgunit"
-			class="org.hisp.dhis.oust.action.SetSelectedOrganisationUnitAction">
-			<result name="success" type="velocity">
-				/dhis-web-commons/ouwt/responseSelect.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="addorgunit"
-			class="org.hisp.dhis.oust.action.AddSelectedOrganisationUnitAction">
-			<result name="success" type="velocity">
-				/dhis-web-commons/ouwt/responseSelect.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="removeorgunit"
-			class="org.hisp.dhis.oust.action.RemoveSelectedOrganisationUnitAction">
-			<result name="success" type="velocity">
-				/dhis-web-commons/ouwt/responseSelect.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="clearSelectedOrganisationUnits"
-			class="org.hisp.dhis.oust.action.ClearSelectedOrganisationUnitsAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ouwt/responseSuccess.vm</result>
-			<result name="error" type="velocity-xml">
-				/dhis-web-commons/ouwt/responseError.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-		
-		<action name="selectallorgunit"
-			class="org.hisp.dhis.oust.action.SelectAllOrganisationUnitAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ouwt/responseSelect.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-	</package>
+  <package name="dhis-web-commons-oust" extends="dhis-web-commons" namespace="/dhis-web-commons/oust">
+
+    <action name="expandSubtree" class="org.hisp.dhis.oust.action.ExpandSubtreeAction">
+      <result name="success" type="velocity">
+        /dhis-web-commons/ouwt/responseExpand.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getExpandedTree" class="org.hisp.dhis.oust.action.GetExpandedTreeAction">
+      <result name="success" type="velocity">
+        /dhis-web-commons/ouwt/responseTree.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="setorgunit" class="org.hisp.dhis.oust.action.SetSelectedOrganisationUnitAction">
+      <result name="success" type="velocity">
+        /dhis-web-commons/ouwt/responseSelect.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="addorgunit" class="org.hisp.dhis.oust.action.AddSelectedOrganisationUnitAction">
+      <result name="success" type="velocity">
+        /dhis-web-commons/ouwt/responseSelect.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="removeorgunit" class="org.hisp.dhis.oust.action.RemoveSelectedOrganisationUnitAction">
+      <result name="success" type="velocity">
+        /dhis-web-commons/ouwt/responseSelect.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="clearSelectedOrganisationUnits" class="org.hisp.dhis.oust.action.ClearSelectedOrganisationUnitsAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ouwt/responseSuccess.vm</result>
+      <result name="error" type="velocity-xml">
+        /dhis-web-commons/ouwt/responseError.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="selectallorgunit" class="org.hisp.dhis.oust.action.SelectAllOrganisationUnitAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ouwt/responseSelect.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+  </package>
 
 	<!-- Organisation Unit Web Tree -->
 
-	<package name="dhis-web-commons-ouwt" extends="dhis-web-commons"
-		namespace="/dhis-web-commons/ouwt">
-
-		<action name="expandSubtree" class="org.hisp.dhis.ouwt.action.ExpandSubtreeAction">
-			<result name="success" type="velocity">
-				/dhis-web-commons/ouwt/responseExpand.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="collapseSubtree" class="org.hisp.dhis.ouwt.action.CollapseSubtreeAction">
-			<result name="success" type="velocity">
-				/dhis-web-commons/ouwt/responseCollapse.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getExpandedTree" class="org.hisp.dhis.ouwt.action.GetExpandedTreeAction">
-			<result name="success" type="velocity">
-				/dhis-web-commons/ouwt/responseTree.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="setorgunit"
-			class="org.hisp.dhis.ouwt.action.SetSelectedOrganisationUnitAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ouwt/responseSelect.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="addorgunit"
-			class="org.hisp.dhis.ouwt.action.AddSelectedOrganisationUnitAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ouwt/responseSelect.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="removeorgunit"
-			class="org.hisp.dhis.ouwt.action.RemoveSelectedOrganisationUnitAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ouwt/responseSelect.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>		
-		
-		<action name="getOrganisationUnitByCode"
-			class="org.hisp.dhis.ouwt.action.GetOrganisationUnitByCodeAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
-			<result name="input" type="velocity-json">
-				/dhis-web-commons/ajax/jsonResponseInput.vm</result>
-		</action>
-		
-		<action name="loadOrganisationUnitTree" 
-			class="org.hisp.dhis.commons.action.NoAction">
-			<result name="success" type="velocity">/dhis-web-commons/ouwt/orgunittree.vm</result>
-			<interceptor-ref name="organisationUnitTreeStack" />
-		</action>
-		
-	</package>
+  <package name="dhis-web-commons-ouwt" extends="dhis-web-commons" namespace="/dhis-web-commons/ouwt">
+
+    <action name="expandSubtree" class="org.hisp.dhis.ouwt.action.ExpandSubtreeAction">
+      <result name="success" type="velocity">
+        /dhis-web-commons/ouwt/responseExpand.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="collapseSubtree" class="org.hisp.dhis.ouwt.action.CollapseSubtreeAction">
+      <result name="success" type="velocity">
+        /dhis-web-commons/ouwt/responseCollapse.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getExpandedTree" class="org.hisp.dhis.ouwt.action.GetExpandedTreeAction">
+      <result name="success" type="velocity">
+        /dhis-web-commons/ouwt/responseTree.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="setorgunit" class="org.hisp.dhis.ouwt.action.SetSelectedOrganisationUnitAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ouwt/responseSelect.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="addorgunit" class="org.hisp.dhis.ouwt.action.AddSelectedOrganisationUnitAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ouwt/responseSelect.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="removeorgunit" class="org.hisp.dhis.ouwt.action.RemoveSelectedOrganisationUnitAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ouwt/responseSelect.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnitByCode" class="org.hisp.dhis.ouwt.action.GetOrganisationUnitByCodeAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
+      <result name="input" type="velocity-json">
+        /dhis-web-commons/ajax/jsonResponseInput.vm</result>
+    </action>
+
+    <action name="loadOrganisationUnitTree" class="org.hisp.dhis.commons.action.NoAction">
+      <result name="success" type="velocity">/dhis-web-commons/ouwt/orgunittree.vm</result>
+      <interceptor-ref name="organisationUnitTreeStack" />
+    </action>
+
+  </package>
 
 	<!-- Menu -->
 
-	<package name="dhis-web-commons-menu" extends="dhis-web-commons"
-		namespace="/dhis-web-commons/menu">
-
-		<action name="setMenuVisible"
-			class="org.hisp.dhis.webportal.menu.action.SetMenuVisibleAction">
-			<result name="success" type="httpheader">
-				<param name="status">204</param>
-			</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="setMenuHidden"
-			class="org.hisp.dhis.webportal.menu.action.SetMenuHiddenAction">
-			<result name="success" type="httpheader">
-				<param name="status">204</param>
-			</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-	</package>
+  <package name="dhis-web-commons-menu" extends="dhis-web-commons" namespace="/dhis-web-commons/menu">
+
+    <action name="setMenuVisible" class="org.hisp.dhis.webportal.menu.action.SetMenuVisibleAction">
+      <result name="success" type="httpheader">
+        <param name="status">204</param>
+      </result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="setMenuHidden" class="org.hisp.dhis.webportal.menu.action.SetMenuHiddenAction">
+      <result name="success" type="httpheader">
+        <param name="status">204</param>
+      </result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+  </package>
 
 	<!-- i18n -->
 
-	<package name="dhis-web-commons-i18n" extends="dhis-web-commons"
-		namespace="/dhis-web-commons">
-
-		<action name="i18n" class="org.hisp.dhis.i18n.action.I18nAction">
-			<result name="success" type="velocity">/main.vm</result>
-			<param name="page">/dhis-web-commons/i18n/translate.vm</param>
-			<param name="javascripts">../dhis-web-commons/i18n/i18n.js</param>
-		</action>
-
-		<action name="translate" class="org.hisp.dhis.i18n.action.TranslateAction">
-			<result name="success" type="velocity">/dhis-web-commons/i18n/goback.vm
-			</result>
-			<result name="input" type="redirect">
-			 <param name="location">i18n.action</param> 
-             <param name="className">${className}</param> 
-             <param name="objectId">${objectId}</param> 
-             <param name="returnUrl">${returnUrl}</param> 
-             <param name="message">${message}</param> 
-             <param name="parse">false</param>
-			</result>
-		</action>
-
-		<action name="validateAddDuplicatedTranslation"
-			class="org.hisp.dhis.i18n.action.ValidateAddDuplicatedTranslationAction">
-			<result name="success" type="velocity-xml">/dhis-web-commons/i18n/responseTranslationSuccess.vm
-			</result>
-			<result name="input" type="velocity-xml">/dhis-web-commons/i18n/responseTranslationInput.vm
-			</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getTranslations" class="org.hisp.dhis.i18n.action.GetTranslationsAction">
-			<result name="success" type="velocity">
-				/dhis-web-commons/i18n/responseTranslations.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="i18nJavaScriptSupport" class="org.hisp.dhis.commons.action.NoAction">
-			<result name="success" type="velocity-javascript">/dhis-web-commons/i18n/i18n.vm
-			</result>
-		</action>
-
-	</package>
+  <package name="dhis-web-commons-i18n" extends="dhis-web-commons" namespace="/dhis-web-commons">
+
+    <action name="i18n" class="org.hisp.dhis.i18n.action.I18nAction">
+      <result name="success" type="velocity">/main.vm</result>
+      <param name="page">/dhis-web-commons/i18n/translate.vm</param>
+      <param name="javascripts">../dhis-web-commons/i18n/i18n.js</param>
+    </action>
+
+    <action name="translate" class="org.hisp.dhis.i18n.action.TranslateAction">
+      <result name="success" type="velocity">/dhis-web-commons/i18n/goback.vm
+			</result>
+      <result name="input" type="redirect">
+        <param name="location">i18n.action</param>
+        <param name="className">${className}</param>
+        <param name="objectId">${objectId}</param>
+        <param name="returnUrl">${returnUrl}</param>
+        <param name="message">${message}</param>
+        <param name="parse">false</param>
+      </result>
+    </action>
+
+    <action name="validateAddDuplicatedTranslation" class="org.hisp.dhis.i18n.action.ValidateAddDuplicatedTranslationAction">
+      <result name="success" type="velocity-xml">/dhis-web-commons/i18n/responseTranslationSuccess.vm
+			</result>
+      <result name="input" type="velocity-xml">/dhis-web-commons/i18n/responseTranslationInput.vm
+			</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getTranslations" class="org.hisp.dhis.i18n.action.GetTranslationsAction">
+      <result name="success" type="velocity">
+        /dhis-web-commons/i18n/responseTranslations.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="i18nJavaScriptSupport" class="org.hisp.dhis.commons.action.NoAction">
+      <result name="success" type="velocity-javascript">/dhis-web-commons/i18n/i18n.vm
+			</result>
+    </action>
+
+  </package>
 
 	<!-- Common actions XML -->
 
-	<package name="dhis-web-commons-ajax" extends="dhis-web-commons"
-		namespace="/dhis-web-commons-ajax">
-
-		<action name="getCategoryOptionCombos"
-			class="org.hisp.dhis.commons.action.GetCategoryOptionCombosAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlCategoryOptionCombos.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataElement"
-			class="org.hisp.dhis.commons.action.GetDataElementAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlDataElement.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataElementGroup"
-			class="org.hisp.dhis.commons.action.GetDataElementGroupAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlDataElementGroup.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataElementGroups"
-			class="org.hisp.dhis.commons.action.GetDataElementGroupsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/xmlDataElementGroups.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>		
-
-		<action name="getDataElementGroupSet"
-			class="org.hisp.dhis.commons.action.GetDataElementGroupSetAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/xmlDataElementGroupSet.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>		
-
-		<action name="getDataElements"
-			class="org.hisp.dhis.commons.action.GetDataElementsAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlDataElements.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataSet" class="org.hisp.dhis.commons.action.GetDataSetAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlDataSet.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataSets" class="org.hisp.dhis.commons.action.GetDataSetsAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlDataSets.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicator" class="org.hisp.dhis.commons.action.GetIndicatorAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlIndicator.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicatorGroup" class="org.hisp.dhis.commons.action.GetIndicatorGroupAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlIndicatorGroup.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicatorGroups" class="org.hisp.dhis.commons.action.GetIndicatorGroupsAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlIndicatorGroups.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicatorGroupSet" class="org.hisp.dhis.commons.action.GetIndicatorGroupSetAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlIndicatorGroupSet.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicators" class="org.hisp.dhis.commons.action.GetIndicatorsAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlIndicators.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getOperands" class="org.hisp.dhis.commons.action.GetOperandsAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlOperands.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getOrganisationUnit"
-			class="org.hisp.dhis.commons.action.GetOrganisationUnitAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlOrganisationUnit.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getOrganisationUnits"
-			class="org.hisp.dhis.commons.action.GetOrganisationUnitsAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlOrganisationUnits.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getOrganisationUnitChildren"
-			class="org.hisp.dhis.commons.action.GetOrganisationUnitChildrenAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlOrganisationUnits.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getPeriod" class="org.hisp.dhis.commons.action.GetPeriodAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlPeriod.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getPeriods" class="org.hisp.dhis.commons.action.GetPeriodsAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/xmlPeriods.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-		
-	</package>
+  <package name="dhis-web-commons-ajax" extends="dhis-web-commons" namespace="/dhis-web-commons-ajax">
+
+    <action name="getCategoryOptionCombos" class="org.hisp.dhis.commons.action.GetCategoryOptionCombosAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlCategoryOptionCombos.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElement" class="org.hisp.dhis.commons.action.GetDataElementAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlDataElement.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElementGroup" class="org.hisp.dhis.commons.action.GetDataElementGroupAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlDataElementGroup.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElementGroups" class="org.hisp.dhis.commons.action.GetDataElementGroupsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/xmlDataElementGroups.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElementGroupSet" class="org.hisp.dhis.commons.action.GetDataElementGroupSetAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/xmlDataElementGroupSet.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElements" class="org.hisp.dhis.commons.action.GetDataElementsAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlDataElements.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataSet" class="org.hisp.dhis.commons.action.GetDataSetAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlDataSet.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataSets" class="org.hisp.dhis.commons.action.GetDataSetsAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlDataSets.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicator" class="org.hisp.dhis.commons.action.GetIndicatorAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlIndicator.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicatorGroup" class="org.hisp.dhis.commons.action.GetIndicatorGroupAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlIndicatorGroup.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicatorGroups" class="org.hisp.dhis.commons.action.GetIndicatorGroupsAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlIndicatorGroups.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicatorGroupSet" class="org.hisp.dhis.commons.action.GetIndicatorGroupSetAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlIndicatorGroupSet.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicators" class="org.hisp.dhis.commons.action.GetIndicatorsAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlIndicators.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOperands" class="org.hisp.dhis.commons.action.GetOperandsAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlOperands.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnit" class="org.hisp.dhis.commons.action.GetOrganisationUnitAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlOrganisationUnit.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnits" class="org.hisp.dhis.commons.action.GetOrganisationUnitsAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlOrganisationUnits.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnitChildren" class="org.hisp.dhis.commons.action.GetOrganisationUnitChildrenAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlOrganisationUnits.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getPeriod" class="org.hisp.dhis.commons.action.GetPeriodAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlPeriod.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getPeriods" class="org.hisp.dhis.commons.action.GetPeriodsAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/xmlPeriods.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+  </package>
 
 	<!-- Common actions JSON -->
 
-	<package name="dhis-web-commons-ajax-json" extends="dhis-web-commons"
-		namespace="/dhis-web-commons-ajax-json">
-
-        <action name="getUsers" class="org.hisp.dhis.commons.action.GetUsersAction">
-          <result name="success" type="velocity-json">
-            /dhis-web-commons/ajax/jsonUsers.vm
-          </result>
-          <param name="onExceptionReturn">plainTextError</param>
-        </action>
-
-        <action name="getUserGroups" class="org.hisp.dhis.commons.action.GetUserGroupsAction">
-          <result name="success" type="velocity-json">
-            /dhis-web-commons/ajax/jsonUserGroups.vm
-          </result>
-          <param name="onExceptionReturn">plainTextError</param>        
-        </action>
-
-		<action name="getCategoryOptionCombos"
-			class="org.hisp.dhis.commons.action.GetCategoryOptionCombosAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonCategoryOptionCombos.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataElement"
-			class="org.hisp.dhis.commons.action.GetDataElementAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonDataElement.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataElementGroup"
-			class="org.hisp.dhis.commons.action.GetDataElementGroupAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-commons/ajax/jsonDataElementGroup.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataElementGroups"
-			class="org.hisp.dhis.commons.action.GetDataElementGroupsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonDataElementGroups.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataElementGroupSets"
-			class="org.hisp.dhis.commons.action.GetDataElementGroupSetsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonDataElementGroupSets.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataElementsNotInGroup" class="org.hisp.dhis.commons.action.GetDataElementsNotInGroupAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonDataElements.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataElementName"
-			class="org.hisp.dhis.commons.action.GetDataElementNameAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonDataElementName.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataElements"
-			class="org.hisp.dhis.commons.action.GetDataElementsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonDataElements.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataSet" class="org.hisp.dhis.commons.action.GetDataSetAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonDataSet.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getDataSets" class="org.hisp.dhis.commons.action.GetDataSetsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonDataSets.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicator" class="org.hisp.dhis.commons.action.GetIndicatorAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonIndicator.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicatorGroup"
-			class="org.hisp.dhis.commons.action.GetIndicatorGroupAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonIndicatorGroup.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicatorGroups"
-			class="org.hisp.dhis.commons.action.GetIndicatorGroupsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonIndicatorGroups.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicatorGroupSet"
-			class="org.hisp.dhis.commons.action.GetIndicatorGroupSetAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonIndicatorGroupSet.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicatorGroupSets"
-			class="org.hisp.dhis.commons.action.GetIndicatorGroupSetsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonIndicatorGroupSets.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getIndicators" class="org.hisp.dhis.commons.action.GetIndicatorsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonIndicators.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-        <action name="getDataElementOperands" class="org.hisp.dhis.commons.action.GetDataElementOperandsAction">
-          <result name="success" type="velocity-json">
-            /dhis-web-commons/ajax/jsonDataElementOperands.vm</result>
-          <param name="onExceptionReturn">plainTextError</param>
-        </action>
-
-		<action name="getOperands" class="org.hisp.dhis.commons.action.GetOperandsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonOperands.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getOrganisationUnit"
-			class="org.hisp.dhis.commons.action.GetOrganisationUnitAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonOrganisationUnit.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getOrganisationUnitGroups"
-			class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonOrganisationUnitGroups.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-        <action name="getOrganisationUnitGroupsByGroupSet"
-            class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsByGroupSetAction">
-            <result name="success" type="velocity-json">
-                /dhis-web-commons/ajax/jsonOrganisationUnitGroups.vm</result>
-            <param name="onExceptionReturn">plainTextError</param>
-        </action>
-
-        <action name="getOrganisationUnitGroupSets"
-            class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupSetsAction">
-            <result name="success" type="velocity-json">
-                /dhis-web-commons/ajax/jsonOrganisationUnitGroupSets.vm</result>
-            <param name="onExceptionReturn">plainTextError</param>
-        </action>
-		
-		<action name="getOrganisationUnitChildren"
-			class="org.hisp.dhis.commons.action.GetOrganisationUnitChildrenAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonOrganisationUnits.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getOrganisationUnitLevels"
-			class="org.hisp.dhis.commons.action.GetOrganisationUnitLevelsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonOrganisationUnitLevels.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-		
-		<action name="getOrganisationUnits"
-			class="org.hisp.dhis.commons.action.GetOrganisationUnitsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonOrganisationUnits.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-		
-		<action name="getPeriod" class="org.hisp.dhis.commons.action.GetPeriodAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonPeriod.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getPeriods" class="org.hisp.dhis.commons.action.GetPeriodsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonPeriods.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-
-		<action name="getAvailablePeriods"
-			class="org.hisp.dhis.commons.action.GetAvailablePeriodsAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonPeriods.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-		
-		<action name="getExpressionText"
-			class="org.hisp.dhis.commons.action.GetExpressionTextAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
-			<result name="error" type="velocity-json">
-				/dhis-web-commons/ajax/jsonResponseError.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
-		
-		<action name="ping"	class="org.hisp.dhis.commons.action.NoAction">
-			<result name="success" type="velocity-json">
-				/dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
-		</action>
-		
-	</package>
+  <package name="dhis-web-commons-ajax-json" extends="dhis-web-commons" namespace="/dhis-web-commons-ajax-json">
+
+    <action name="getUsers" class="org.hisp.dhis.commons.action.GetUsersAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonUsers.vm
+          </result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getUserGroups" class="org.hisp.dhis.commons.action.GetUserGroupsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonUserGroups.vm
+          </result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getValidationRules" class="org.hisp.dhis.commons.action.GetValidationRulesAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonValidationRules.vm
+          </result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getCategoryOptionCombos" class="org.hisp.dhis.commons.action.GetCategoryOptionCombosAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonCategoryOptionCombos.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElement" class="org.hisp.dhis.commons.action.GetDataElementAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonDataElement.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElementGroup" class="org.hisp.dhis.commons.action.GetDataElementGroupAction">
+      <result name="success" type="velocity-xml">
+        /dhis-web-commons/ajax/jsonDataElementGroup.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElementGroups" class="org.hisp.dhis.commons.action.GetDataElementGroupsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonDataElementGroups.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElementGroupSets" class="org.hisp.dhis.commons.action.GetDataElementGroupSetsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonDataElementGroupSets.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElementsNotInGroup" class="org.hisp.dhis.commons.action.GetDataElementsNotInGroupAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonDataElements.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElementName" class="org.hisp.dhis.commons.action.GetDataElementNameAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonDataElementName.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElements" class="org.hisp.dhis.commons.action.GetDataElementsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonDataElements.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataSet" class="org.hisp.dhis.commons.action.GetDataSetAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonDataSet.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataSets" class="org.hisp.dhis.commons.action.GetDataSetsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonDataSets.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicator" class="org.hisp.dhis.commons.action.GetIndicatorAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonIndicator.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicatorGroup" class="org.hisp.dhis.commons.action.GetIndicatorGroupAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonIndicatorGroup.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicatorGroups" class="org.hisp.dhis.commons.action.GetIndicatorGroupsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonIndicatorGroups.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicatorGroupSet" class="org.hisp.dhis.commons.action.GetIndicatorGroupSetAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonIndicatorGroupSet.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicatorGroupSets" class="org.hisp.dhis.commons.action.GetIndicatorGroupSetsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonIndicatorGroupSets.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getIndicators" class="org.hisp.dhis.commons.action.GetIndicatorsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonIndicators.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getDataElementOperands" class="org.hisp.dhis.commons.action.GetDataElementOperandsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonDataElementOperands.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOperands" class="org.hisp.dhis.commons.action.GetOperandsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonOperands.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnit" class="org.hisp.dhis.commons.action.GetOrganisationUnitAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonOrganisationUnit.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnitGroups" class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonOrganisationUnitGroups.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnitGroupsByGroupSet" class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupsByGroupSetAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonOrganisationUnitGroups.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnitGroupSets" class="org.hisp.dhis.commons.action.GetOrganisationUnitGroupSetsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonOrganisationUnitGroupSets.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnitChildren" class="org.hisp.dhis.commons.action.GetOrganisationUnitChildrenAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonOrganisationUnits.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnitLevels" class="org.hisp.dhis.commons.action.GetOrganisationUnitLevelsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonOrganisationUnitLevels.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getOrganisationUnits" class="org.hisp.dhis.commons.action.GetOrganisationUnitsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonOrganisationUnits.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getPeriod" class="org.hisp.dhis.commons.action.GetPeriodAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonPeriod.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getPeriods" class="org.hisp.dhis.commons.action.GetPeriodsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonPeriods.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getAvailablePeriods" class="org.hisp.dhis.commons.action.GetAvailablePeriodsAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonPeriods.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="getExpressionText" class="org.hisp.dhis.commons.action.GetExpressionTextAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
+      <result name="error" type="velocity-json">
+        /dhis-web-commons/ajax/jsonResponseError.vm</result>
+      <param name="onExceptionReturn">plainTextError</param>
+    </action>
+
+    <action name="ping" class="org.hisp.dhis.commons.action.NoAction">
+      <result name="success" type="velocity-json">
+        /dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
+    </action>
+
+  </package>
 
     <!-- Stream -->
-    
-    <package name="dhis-web-commons-stream" extends="dhis-web-commons"
-		namespace="/dhis-web-commons-stream">
-    
-		<action name="loadDocument" class="org.hisp.dhis.commons.action.LoadDocumentAction">
-			<result name="success" type="outputStreamResult"/>
-		</action>    
-		
-	</package>
+
+  <package name="dhis-web-commons-stream" extends="dhis-web-commons" namespace="/dhis-web-commons-stream">
+
+    <action name="loadDocument" class="org.hisp.dhis.commons.action.LoadDocumentAction">
+      <result name="success" type="outputStreamResult" />
+    </action>
+
+  </package>
 	
 	<!-- About -->
 
-	<package name="dhis-web-commons-about" extends="dhis-web-commons"
-		namespace="/dhis-web-commons-about">
-
-		<action name="about" class="org.hisp.dhis.about.action.AboutAction">
-			<result name="success" type="velocity">/main.vm</result>
-			<param name="page">/dhis-web-commons/about/about.vm</param>
-			<param name="menu">/dhis-web-commons/about/menu.vm</param>
-		</action>
-
-		<action name="displayFeedbackForm" class="org.hisp.dhis.commons.action.NoAction">
-			<result name="success" type="velocity">/main.vm</result>
-			<param name="page">/dhis-web-commons/about/feedbackForm.vm</param>
-			<param name="menu">/dhis-web-commons/about/menu.vm</param>
-		</action>
-
-		<action name="sendFeedback" class="org.hisp.dhis.about.action.SendFeedbackAction">
-			<result name="success" type="redirect">about.action</result>
-		</action>
-
-		<action name="help" class="org.hisp.dhis.commons.action.NoAction">
-			<result name="success" type="velocity">/main.vm</result>
-			<param name="page">/dhis-web-commons/about/help.vm</param>
-			<param name="menu">/dhis-web-commons/about/menu.vm</param>
-			<param name="javascripts">../dhis-web-commons/util/jquery-ui.js,../dhis-web-commons/about/help.js</param>
-		</action>
-
-		<action name="getHelpContent" class="org.hisp.dhis.help.action.GetHelpContentAction">
-			<result name="success" type="outputStreamResult"></result>
-		</action>
-
-		<action name="getHelpItems" class="org.hisp.dhis.help.action.GetHelpItemsAction">
-			<result name="success" type="outputStreamResult"></result>
-		</action>
-
-		<action name="displayChangeLog" class="org.hisp.dhis.commons.action.NoAction">
-			<result name="success" type="velocity">/main.vm</result>
-			<param name="page">/dhis-web-commons/about/changeLog.vm</param>
-			<param name="menu">/dhis-web-commons/about/menu.vm</param>
-		</action>
-
-		<action name="displaySupportiveSoftware" class="org.hisp.dhis.commons.action.NoAction">
-			<result name="success" type="velocity">/main.vm</result>
-			<param name="page">/dhis-web-commons/about/software.vm</param>
-			<param name="menu">/dhis-web-commons/about/menu.vm</param>
-		</action>
-
-		<action name="showUpdateUserAccountForm"
-			class="org.hisp.dhis.useraccount.action.GetCurrentUserAction">
-			<result name="success" type="velocity">/main.vm</result>
-			<param name="page">/dhis-web-commons/useraccount/updateUserAccountForm.vm</param>
-			<param name="javascripts">/dhis-web-commons/useraccount/userAccount.js</param>
-		</action>
-
-		<action name="updateUserAccount" class="org.hisp.dhis.useraccount.action.UpdateUserAccountAction">
-			<result name="success" type="velocity">
-				/dhis-web-commons/useraccount/updateUserSuccess.vm</result>
-			<result name="input" type="velocity">
-				/dhis-web-commons/useraccount/updateUserInput.vm</result>
-		</action>
-		
-	</package>
+  <package name="dhis-web-commons-about" extends="dhis-web-commons" namespace="/dhis-web-commons-about">
+
+    <action name="about" class="org.hisp.dhis.about.action.AboutAction">
+      <result name="success" type="velocity">/main.vm</result>
+      <param name="page">/dhis-web-commons/about/about.vm</param>
+      <param name="menu">/dhis-web-commons/about/menu.vm</param>
+    </action>
+
+    <action name="displayFeedbackForm" class="org.hisp.dhis.commons.action.NoAction">
+      <result name="success" type="velocity">/main.vm</result>
+      <param name="page">/dhis-web-commons/about/feedbackForm.vm</param>
+      <param name="menu">/dhis-web-commons/about/menu.vm</param>
+    </action>
+
+    <action name="sendFeedback" class="org.hisp.dhis.about.action.SendFeedbackAction">
+      <result name="success" type="redirect">about.action</result>
+    </action>
+
+    <action name="help" class="org.hisp.dhis.commons.action.NoAction">
+      <result name="success" type="velocity">/main.vm</result>
+      <param name="page">/dhis-web-commons/about/help.vm</param>
+      <param name="menu">/dhis-web-commons/about/menu.vm</param>
+      <param name="javascripts">../dhis-web-commons/util/jquery-ui.js,../dhis-web-commons/about/help.js</param>
+    </action>
+
+    <action name="getHelpContent" class="org.hisp.dhis.help.action.GetHelpContentAction">
+      <result name="success" type="outputStreamResult"></result>
+    </action>
+
+    <action name="getHelpItems" class="org.hisp.dhis.help.action.GetHelpItemsAction">
+      <result name="success" type="outputStreamResult"></result>
+    </action>
+
+    <action name="displayChangeLog" class="org.hisp.dhis.commons.action.NoAction">
+      <result name="success" type="velocity">/main.vm</result>
+      <param name="page">/dhis-web-commons/about/changeLog.vm</param>
+      <param name="menu">/dhis-web-commons/about/menu.vm</param>
+    </action>
+
+    <action name="displaySupportiveSoftware" class="org.hisp.dhis.commons.action.NoAction">
+      <result name="success" type="velocity">/main.vm</result>
+      <param name="page">/dhis-web-commons/about/software.vm</param>
+      <param name="menu">/dhis-web-commons/about/menu.vm</param>
+    </action>
+
+    <action name="showUpdateUserAccountForm" class="org.hisp.dhis.useraccount.action.GetCurrentUserAction">
+      <result name="success" type="velocity">/main.vm</result>
+      <param name="page">/dhis-web-commons/useraccount/updateUserAccountForm.vm</param>
+      <param name="javascripts">/dhis-web-commons/useraccount/userAccount.js</param>
+    </action>
+
+    <action name="updateUserAccount" class="org.hisp.dhis.useraccount.action.UpdateUserAccountAction">
+      <result name="success" type="velocity">
+        /dhis-web-commons/useraccount/updateUserSuccess.vm</result>
+      <result name="input" type="velocity">
+        /dhis-web-commons/useraccount/updateUserInput.vm</result>
+    </action>
+
+  </package>
 
 </struts>

=== modified file 'dhis-2/dhis-web/dhis-web-validationrule/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-validationrule/src/main/resources/META-INF/dhis/beans.xml	2011-05-31 05:38:55 +0000
+++ dhis-2/dhis-web/dhis-web-validationrule/src/main/resources/META-INF/dhis/beans.xml	2011-06-14 13:59:43 +0000
@@ -1,333 +1,286 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans";
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xsi:schemaLocation="
+<beans xmlns="http://www.springframework.org/schema/beans"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="
 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd";>
- 
-  <bean id="org.hisp.dhis.validationrule.action.NoAction"
-    class="org.hisp.dhis.validationrule.action.NoAction">
+
+  <bean id="org.hisp.dhis.validationrule.action.NoAction" class="org.hisp.dhis.validationrule.action.NoAction">
   </bean>
 
   <!-- ValidationRule CRUD operations -->
-  
-  <bean id="org.hisp.dhis.validationrule.action.AddValidationRuleAction"
-    class="org.hisp.dhis.validationrule.action.AddValidationRuleAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-    <property name="expressionService">
-      <ref bean="org.hisp.dhis.expression.ExpressionService"/>
-    </property>
-    <property name="periodService">
-      <ref bean="org.hisp.dhis.period.PeriodService"/>
-    </property>     
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.ShowUpdateValidationRuleFormAction" 
-    class="org.hisp.dhis.validationrule.action.ShowUpdateValidationRuleFormAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-    <property name="expressionService">
-      <ref bean="org.hisp.dhis.expression.ExpressionService"/>
-    </property>
-	<property name="periodService">
-      <ref bean="org.hisp.dhis.period.PeriodService"/>
-    </property>     
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.GetValidationRuleAction" 
-    class="org.hisp.dhis.validationrule.action.GetValidationRuleAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-    <property name="expressionService">
-      <ref bean="org.hisp.dhis.expression.ExpressionService"/>
-    </property>    
-  </bean>
-
-  <bean id="org.hisp.dhis.validationrule.action.GetValidationRuleListAction"
-    class="org.hisp.dhis.validationrule.action.GetValidationRuleListAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.RemoveValidationRuleAction"
-    class="org.hisp.dhis.validationrule.action.RemoveValidationRuleAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.UpdateValidationRuleAction"
-    class="org.hisp.dhis.validationrule.action.UpdateValidationRuleAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-    <property name="expressionService">
-      <ref bean="org.hisp.dhis.expression.ExpressionService"/>
-    </property>  
-    <property name="periodService">
-      <ref bean="org.hisp.dhis.period.PeriodService"/>
-    </property>    
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.ValidateValidationRuleAction"
-    class="org.hisp.dhis.validationrule.action.ValidateValidationRuleAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.SetupTreeAction"
-    class="org.hisp.dhis.validationrule.action.SetupTreeAction" 
+
+  <bean id="org.hisp.dhis.validationrule.action.AddValidationRuleAction" class="org.hisp.dhis.validationrule.action.AddValidationRuleAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+    <property name="expressionService">
+      <ref bean="org.hisp.dhis.expression.ExpressionService" />
+    </property>
+    <property name="periodService">
+      <ref bean="org.hisp.dhis.period.PeriodService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.ShowUpdateValidationRuleFormAction" class="org.hisp.dhis.validationrule.action.ShowUpdateValidationRuleFormAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+    <property name="expressionService">
+      <ref bean="org.hisp.dhis.expression.ExpressionService" />
+    </property>
+    <property name="periodService">
+      <ref bean="org.hisp.dhis.period.PeriodService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.GetValidationRuleAction" class="org.hisp.dhis.validationrule.action.GetValidationRuleAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+    <property name="expressionService">
+      <ref bean="org.hisp.dhis.expression.ExpressionService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.GetValidationRuleListAction" class="org.hisp.dhis.validationrule.action.GetValidationRuleListAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.RemoveValidationRuleAction" class="org.hisp.dhis.validationrule.action.RemoveValidationRuleAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.UpdateValidationRuleAction" class="org.hisp.dhis.validationrule.action.UpdateValidationRuleAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+    <property name="expressionService">
+      <ref bean="org.hisp.dhis.expression.ExpressionService" />
+    </property>
+    <property name="periodService">
+      <ref bean="org.hisp.dhis.period.PeriodService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.ValidateValidationRuleAction" class="org.hisp.dhis.validationrule.action.ValidateValidationRuleAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.SetupTreeAction" class="org.hisp.dhis.validationrule.action.SetupTreeAction"
     scope="prototype">
     <property name="selectionTreeManager">
-      <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager"/>
+      <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
     </property>
     <property name="currentUserService">
-      <ref bean="org.hisp.dhis.user.CurrentUserService"/>
+      <ref bean="org.hisp.dhis.user.CurrentUserService" />
     </property>
     <property name="selectionManager">
-      <ref bean="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager"/>
-    </property> 
+      <ref bean="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+    </property>
     <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>   
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
   </bean>
-  
-   <bean id="org.hisp.dhis.validationrule.action.GetPeriodTypesAction"
-    class="org.hisp.dhis.validationrule.action.GetPeriodTypesAction" 
+
+  <bean id="org.hisp.dhis.validationrule.action.GetPeriodTypesAction" class="org.hisp.dhis.validationrule.action.GetPeriodTypesAction"
     scope="prototype">
     <property name="periodService">
-      <ref bean="org.hisp.dhis.period.PeriodService"/>
-    </property>   
-  </bean>
-  
-  <!-- ValidationRuleGroup CRUD operations -->  
-  
-  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.AddValidationRuleGroupAction"
-    class="org.hisp.dhis.validationrule.action.validationrulegroup.AddValidationRuleGroupAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupAction" 
-    class="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-  </bean>
-
-  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupListAction"
-    class="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupListAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupMembersAction"
-    class="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupMembersAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.RemoveValidationRuleGroupAction"
-    class="org.hisp.dhis.validationrule.action.validationrulegroup.RemoveValidationRuleGroupAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-  </bean>
-  
-   <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.ShowUpdateValidationRuleGroupFormAction" 
-    class="org.hisp.dhis.validationrule.action.validationrulegroup.ShowUpdateValidationRuleGroupFormAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>  
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.UpdateValidationRuleGroupAction"
-    class="org.hisp.dhis.validationrule.action.validationrulegroup.UpdateValidationRuleGroupAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.ValidateValidationRuleGroupAction"
-    class="org.hisp.dhis.validationrule.action.validationrulegroup.ValidateValidationRuleGroupAction"
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>  
+      <ref bean="org.hisp.dhis.period.PeriodService" />
+    </property>
+  </bean>
+  
+  <!-- ValidationRuleGroup CRUD operations -->
+
+  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.AddValidationRuleGroupAction" class="org.hisp.dhis.validationrule.action.validationrulegroup.AddValidationRuleGroupAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupAction" class="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupListAction" class="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupListAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupMembersAction" class="org.hisp.dhis.validationrule.action.validationrulegroup.GetValidationRuleGroupMembersAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.RemoveValidationRuleGroupAction" class="org.hisp.dhis.validationrule.action.validationrulegroup.RemoveValidationRuleGroupAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.ShowUpdateValidationRuleGroupFormAction" class="org.hisp.dhis.validationrule.action.validationrulegroup.ShowUpdateValidationRuleGroupFormAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.UpdateValidationRuleGroupAction" class="org.hisp.dhis.validationrule.action.validationrulegroup.UpdateValidationRuleGroupAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.validationrulegroup.ValidateValidationRuleGroupAction" class="org.hisp.dhis.validationrule.action.validationrulegroup.ValidateValidationRuleGroupAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
   </bean>  
   
   <!-- ValidationRule Expression -->
-  
-  <bean id="org.hisp.dhis.validationrule.action.GetTextualExpressionAction"
-	class="org.hisp.dhis.validationrule.action.GetTextualExpressionAction"
+
+  <bean id="org.hisp.dhis.validationrule.action.GetTextualExpressionAction" class="org.hisp.dhis.validationrule.action.GetTextualExpressionAction"
     scope="prototype">
     <property name="expressionService">
-      <ref bean="org.hisp.dhis.expression.ExpressionService"/>
+      <ref bean="org.hisp.dhis.expression.ExpressionService" />
     </property>
   </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.GetFilteredDataElementsAction"
-    class="org.hisp.dhis.validationrule.action.GetFilteredDataElementsAction" 
+
+  <bean id="org.hisp.dhis.validationrule.action.GetFilteredDataElementsAction" class="org.hisp.dhis.validationrule.action.GetFilteredDataElementsAction"
     scope="prototype">
-	<property name="categoryService">
-      <ref bean="org.hisp.dhis.dataelement.DataElementCategoryService"/>
+    <property name="categoryService">
+      <ref bean="org.hisp.dhis.dataelement.DataElementCategoryService" />
     </property>
     <property name="dataSetService">
-      <ref bean="org.hisp.dhis.dataset.DataSetService"/>
+      <ref bean="org.hisp.dhis.dataset.DataSetService" />
     </property>
     <property name="periodService">
-      <ref bean="org.hisp.dhis.period.PeriodService"/>
+      <ref bean="org.hisp.dhis.period.PeriodService" />
     </property>
   </bean> 
   
   <!-- ValidationRule service operations -->
-  
-  <bean id="org.hisp.dhis.validationrule.action.ValidateRunValidationAction"
-    class="org.hisp.dhis.validationrule.action.ValidateRunValidationAction" 
+
+  <bean id="org.hisp.dhis.validationrule.action.ValidateRunValidationAction" class="org.hisp.dhis.validationrule.action.ValidateRunValidationAction"
     scope="prototype">
     <property name="selectionTreeManager">
-      <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager"/>
-    </property>
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.RunValidationAction"
-    class="org.hisp.dhis.validationrule.action.RunValidationAction" 
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-    <property name="organisationUnitService">
-      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService"/>
-    </property>
-	<property name="dataMartService">
-	  <ref bean="org.hisp.dhis.datamart.DataMartService"/>
-	</property>
-	<property name="periodService">
-	  <ref bean="org.hisp.dhis.period.PeriodService"/>
-	</property>
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.GetValidationResultDetailsAction"
-    class="org.hisp.dhis.validationrule.action.GetValidationResultDetailsAction" 
-    scope="prototype">
-    <property name="validationRuleService">
-      <ref bean="org.hisp.dhis.validation.ValidationRuleService"/>
-    </property>
-    <property name="organisationUnitService">
-      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService"/>
-    </property>
-    <property name="periodService">
-      <ref bean="org.hisp.dhis.period.PeriodService"/>
+      <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.RunValidationAction" class="org.hisp.dhis.validationrule.action.RunValidationAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="dataMartService">
+      <ref bean="org.hisp.dhis.datamart.DataMartService" />
+    </property>
+    <property name="periodService">
+      <ref bean="org.hisp.dhis.period.PeriodService" />
+    </property>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.GetValidationResultDetailsAction" class="org.hisp.dhis.validationrule.action.GetValidationResultDetailsAction"
+    scope="prototype">
+    <property name="validationRuleService">
+      <ref bean="org.hisp.dhis.validation.ValidationRuleService" />
+    </property>
+    <property name="organisationUnitService">
+      <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    </property>
+    <property name="periodService">
+      <ref bean="org.hisp.dhis.period.PeriodService" />
     </property>
     <property name="dataValueService">
-      <ref bean="org.hisp.dhis.datavalue.DataValueService"/>
+      <ref bean="org.hisp.dhis.datavalue.DataValueService" />
     </property>
     <property name="expressionService">
-      <ref bean="org.hisp.dhis.expression.ExpressionService"/>
+      <ref bean="org.hisp.dhis.expression.ExpressionService" />
     </property>
     <property name="dataElementService">
-      <ref bean="org.hisp.dhis.dataelement.DataElementService"/>
-    </property>  
+      <ref bean="org.hisp.dhis.dataelement.DataElementService" />
+    </property>
     <property name="categoryService">
-      <ref bean="org.hisp.dhis.dataelement.DataElementCategoryService"/>
+      <ref bean="org.hisp.dhis.dataelement.DataElementCategoryService" />
     </property>
-  </bean>  
-  
-  <bean id="org.hisp.dhis.validationrule.action.ExportValidationResultAction"
-  	class="org.hisp.dhis.validationrule.action.ExportValidationResultAction"
-  	scope="prototype"/>
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.ExportValidationResultAction" class="org.hisp.dhis.validationrule.action.ExportValidationResultAction"
+    scope="prototype" />
   
   <!-- Data analysis -->
-  
-  <bean id="org.hisp.dhis.validationrule.action.dataanalysis.ViewAnalysisFormAction" 
-    class="org.hisp.dhis.validationrule.action.dataanalysis.ViewAnalysisFormAction"
-    scope="prototype">
-    <property name="dataSetService"
-      ref="org.hisp.dhis.dataset.DataSetService"/>
-  </bean>
-      
-  <bean id="org.hisp.dhis.validationrule.action.dataanalysis.GetAnalysisAction" 
-    class="org.hisp.dhis.validationrule.action.dataanalysis.GetAnalysisAction"
-    scope="prototype">
-	<property name="serviceProvider"
-	  ref="dataAnalysisServiceProvider"/>
-    <property name="selectionTreeManager"
-      ref="org.hisp.dhis.oust.manager.SelectionTreeManager" />
-    <property name="periodService" 
-      ref="org.hisp.dhis.period.PeriodService" />
-    <property name="dataSetService" 
-      ref="org.hisp.dhis.dataset.DataSetService" />    
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.dataanalysis.EditDataValueAction" 
-    class="org.hisp.dhis.validationrule.action.dataanalysis.EditDataValueAction"
-    scope="prototype">
-    <property name="dataValueService" 
-      ref="org.hisp.dhis.datavalue.DataValueService" />
-    <property name="dataElementService"
-      ref="org.hisp.dhis.dataelement.DataElementService" />
-    <property name="organisationUnitService"
-      ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-    <property name="periodService" 
-      ref="org.hisp.dhis.period.PeriodService" />
-	<property name="categoryService"
-	  ref="org.hisp.dhis.dataelement.DataElementCategoryService"/>
-    <property name="currentUserService"
-      ref="org.hisp.dhis.user.CurrentUserService" />
-  </bean>
-  
-  <bean id="org.hisp.dhis.validationrule.action.dataanalysis.MarkForFollowupAction"
-	class="org.hisp.dhis.validationrule.action.dataanalysis.MarkForFollowupAction"
-	scope="prototype">    
-    <property name="dataValueService" 
-      ref="org.hisp.dhis.datavalue.DataValueService"/>
-    <property name="dataElementService" 
-      ref="org.hisp.dhis.dataelement.DataElementService"/>
-    <property name="periodService" 
-	  ref="org.hisp.dhis.period.PeriodService"/>
-    <property name="organisationUnitService" 
-      ref="org.hisp.dhis.organisationunit.OrganisationUnitService"/>
-    <property name="categoryService" 
-      ref="org.hisp.dhis.dataelement.DataElementCategoryService"/>
-  </bean>	
-
- <bean id="org.hisp.dhis.validationrule.action.dataanalysis.ValidationRunAnalysisAction"
-    class="org.hisp.dhis.validationrule.action.dataanalysis.ValidationRunAnalysisAction" 
+
+  <bean id="org.hisp.dhis.validationrule.action.dataanalysis.ViewAnalysisFormAction" class="org.hisp.dhis.validationrule.action.dataanalysis.ViewAnalysisFormAction"
+    scope="prototype">
+    <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.dataanalysis.GetAnalysisAction" class="org.hisp.dhis.validationrule.action.dataanalysis.GetAnalysisAction"
+    scope="prototype">
+    <property name="serviceProvider" ref="dataAnalysisServiceProvider" />
+    <property name="selectionTreeManager" ref="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+    <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.dataanalysis.EditDataValueAction" class="org.hisp.dhis.validationrule.action.dataanalysis.EditDataValueAction"
+    scope="prototype">
+    <property name="dataValueService" ref="org.hisp.dhis.datavalue.DataValueService" />
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+    <property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+    <property name="categoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
+    <property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.dataanalysis.MarkForFollowupAction" class="org.hisp.dhis.validationrule.action.dataanalysis.MarkForFollowupAction"
+    scope="prototype">
+    <property name="dataValueService" ref="org.hisp.dhis.datavalue.DataValueService" />
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+    <property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+    <property name="categoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.validationrule.action.dataanalysis.ValidationRunAnalysisAction" class="org.hisp.dhis.validationrule.action.dataanalysis.ValidationRunAnalysisAction"
     scope="prototype">
     <property name="selectionTreeManager">
-      <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager"/>
+      <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
     </property>
   </bean>
   <!-- PDF -->
 
-  <bean id="org.hisp.dhis.validationrule.action.pdf.ExportToPdfAction" 
-	  class="org.hisp.dhis.validationrule.action.pdf.ExportToPdfAction" 
-	  scope="prototype">
-	  <property name="serviceProvider">
-		<ref bean="exportServiceProvider" />
-	  </property>
+  <bean id="org.hisp.dhis.validationrule.action.pdf.ExportToPdfAction" class="org.hisp.dhis.validationrule.action.pdf.ExportToPdfAction"
+    scope="prototype">
+    <property name="serviceProvider">
+      <ref bean="exportServiceProvider" />
+    </property>
   </bean>
-  
+
 </beans>