=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseDimensionalObject.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseDimensionalObject.java 2014-10-16 06:17:19 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseDimensionalObject.java 2014-12-01 07:31:16 +0000 @@ -42,7 +42,7 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; -@JacksonXmlRootElement( localName = "dimensionalObject", namespace = DxfNamespaces.DXF_2_0 ) +@JacksonXmlRootElement( localName = "dimension", namespace = DxfNamespaces.DXF_2_0 ) public class BaseDimensionalObject extends BaseNameableObject implements DimensionalObject { === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/AbstractPropertyIntrospectorService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/AbstractPropertyIntrospectorService.java 2014-10-21 17:05:37 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/AbstractPropertyIntrospectorService.java 2014-12-01 07:31:16 +0000 @@ -46,7 +46,7 @@ /** * @author Morten Olav Hansen */ -public abstract class AbstractPropertyIntrospectorService +public abstract class AbstractPropertyIntrospectorService implements PropertyIntrospectorService { // simple alias map for our concrete implementations of the core interfaces. @@ -81,6 +81,17 @@ return classMapCache.get( klass ); } + @Override + public Class getConcreteClass( Class klass ) + { + if ( BASE_ALIAS_MAP.containsKey( klass ) ) + { + return BASE_ALIAS_MAP.get( klass ); + } + + return klass; + } + /** * Introspect a class and return a map with key=property-name, and value=Property class. * === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/PropertyIntrospectorService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/PropertyIntrospectorService.java 2014-04-14 06:43:16 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/PropertyIntrospectorService.java 2014-12-01 07:31:16 +0000 @@ -51,4 +51,7 @@ * @return Map with key property-name and value Property */ Map getPropertiesMap( Class klass ); + + // TODO should probably be moved out of PropertyIntrospectorService, useful other places also + Class getConcreteClass( Class klass ); } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/schema/DefaultSchemaService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/schema/DefaultSchemaService.java 2014-09-30 07:02:57 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/schema/DefaultSchemaService.java 2014-12-01 07:31:16 +0000 @@ -121,13 +121,14 @@ return schema; } - klass = ReflectionUtils.getRealClass( klass ); + klass = propertyIntrospectorService.getConcreteClass( ReflectionUtils.getRealClass( klass ) ); String name = getName( klass ); schema = new Schema( klass, name, name + "s" ); schema.setDisplayName( beautify( schema.getName() ) ); schema.setPropertyMap( Maps.newHashMap( propertyIntrospectorService.getPropertiesMap( schema.getKlass() ) ) ); + schema.setMetadata( false ); updateSelf( schema ); @@ -198,6 +199,7 @@ { Property property = schema.getPropertyMap().get( "__self__" ); schema.setName( property.getName() ); + schema.setCollectionName( schema.getPlural() ); schema.setNamespace( property.getNamespace() ); schema.getPropertyMap().remove( "__self__" );