1. A system for extending applications, comprising: a computer, including a microprocessor; one or more servers executing on the computer; an application deployed to the one or more servers for use by a first tenant and a second tenant different than the first tenant, wherein the application includes: a class defined in a source code of the application, wherein the class defines an object, comprises a body, and is stored in a class file before compilation; a first mapping file associated with the first tenant and a second mapping file associated with the second tenant, wherein the first mapping file and the second mapping file are separate files from the class file, wherein at least one of the first mapping file and the second mapping file is a markup language file, wherein a first extension property is defined in the first mapping file and a second extension property is defined in the second mapping file, and wherein the first extension property and the second extension property are absent from the body of the class; an first annotation to the class indicating that the first extension property and the second extension property are each properties of the class; accessor methods for accessing the one or more extension properties in the mapping file; and a second annotation to the class indicating that the accessor methods handle additional mappings associated with the first extension property and the second extension property, and wherein at runtime the first extension property is added to a first instance of the object instantiated by the first tenant and the second extension property is added to a second instance of the object instantiated by the second tenant.