Global Class
From LongJump Support Wiki
Revision as of 19:28, 3 June 2011 by imported>Aeric
ISVs and MSPs can create custom pages at global level for use by Tenants. This feature gives Service Providers the ability to design and build classes once, then make the custom work available to multiple tenants.
Users who are logged into a Service Provider tenancy can create custom pages.
To create a Global Class: Prerequisite Before you create a class, you need to decide what package to put it in. Here are a few notes to help you make that decision:
- Packages let you organize classes into different directories according to their functionality, their usability, or any other category that makes sense. (The only rule is that classes in one package have a qualitatively different kind of functionality compared with those in another package.)
- Packages help to avoid class name collision. (The same class name can be used in different packages.)
- Classes in the same package can access each others package-protected fields and methods, as well as their public members, without doing an import. So classes that cooperate with each other extensively generally belong in the same package.
- Classes that are part of a different package can be accessed with an import declaration.
To add a class:
- Click Designer > Classes
- Click [New Class]
- Fill in the class properties.
- Click [Next]
A class template appears. - Provide the code for the class.
- Click [Save]
Class properties
- Package
- The package name
- The platform supplies this part: com.platform.{namespace},
where {namespace} is defined in the Developer Configuration settings of the current tenancy. - You supply this part: {packagename}
- The result is the fully-qualified package path for the class: com.platform.{namespace}.{packagename}
- The platform supplies this part: com.platform.{namespace},
- Class Name
- The name of the class. Must consist of alphanumeric characters (a-z,A-Z,0-9) or underscores (_). Must start with an alphabetic character (a-z,A-Z) or underscore (_).
- Global Class
- Checkbox
- If checked, this class is a Global Class
- If unchecked, this class is available to users in the current tenancy, only
- Java code
- Enter Java code in the text area.
- Considerations
- Usage is hierarchical, meaning that:
- ISVs can create Global Classes, which can be used by MSPs and Tenants of that ISV
- MSPs can create Global Classes, which can be used by Tenants of that MSP
- Java Packages:
- The Package name of all classes starts with: com.platform.{namespace};
- The {namespace} is defined by the ISV as part of the Developer Configuration settings
- The namespace (along with the rest of the package path) must be specified to access the global class.
- Runtime considerations:
- At run time, parent class loader loads the global class, parent class loader can be an MSP class loader or an ISV class loader
- If the Parent class loader is MSP and the class not present in class loader, it checks its parent class loader (ISV class loader)