Interface GatewayConfiguration
-
public interface GatewayConfiguration
This interface allows for configuration of the gateway for an application. The caller constructs an instance and calls the setters, these are then used by the ClassLoadingService to construct a gateway class loader instance for the application.
It is possible to configure GatewayClassLoaders to use the
APIResolverHook
to filter the packages that are available to be loaded. This resolver hook will only be enabled if a call tosetApiTypeVisibility(ApiType...)
orsetApiTypeVisibility(Iterable)
has been made, if no call is made then the gateway class loader will not be configured to filter any of the packages based on their API type and all packages will be available.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.util.EnumSet<ApiType>
getApiTypeVisibility()
Returns a set of the API types that are allowed to be seen by a gateway class loader created from this configuration, the options for the set are:java.lang.String
getApplicationName()
org.osgi.framework.Version
getApplicationVersion()
boolean
getDelegateToSystem()
java.lang.Iterable<java.lang.String>
getDynamicImportPackage()
java.lang.Iterable<java.lang.String>
getImportPackage()
java.lang.Iterable<java.lang.String>
getRequireBundle()
GatewayConfiguration
setApiTypeVisibility(ApiType... types)
Sets the allowed API types.GatewayConfiguration
setApiTypeVisibility(java.lang.Iterable<ApiType> types)
Sets the allowed API types.GatewayConfiguration
setApplicationName(java.lang.String name)
GatewayConfiguration
setApplicationVersion(org.osgi.framework.Version version)
GatewayConfiguration
setDelegateToSystem(boolean delegateToSystem)
GatewayConfiguration
setDynamicImportPackage(java.lang.String... packageImports)
GatewayConfiguration
setDynamicImportPackage(java.util.List<java.lang.String> packageImports)
GatewayConfiguration
setImportPackage(java.lang.String... packageImports)
GatewayConfiguration
setImportPackage(java.util.List<java.lang.String> packageImports)
GatewayConfiguration
setRequireBundle(java.lang.String... bundleRequirements)
GatewayConfiguration
setRequireBundle(java.util.List<java.lang.String> bundleRequirements)
-
-
-
Method Detail
-
setRequireBundle
GatewayConfiguration setRequireBundle(java.util.List<java.lang.String> bundleRequirements)
- Parameters:
bundleRequirements
- a list of bundle requirements. A bundle requirement contains a bundle symbolic name, followed by a set of attributes and directives which are separated by semicolons.
-
setRequireBundle
GatewayConfiguration setRequireBundle(java.lang.String... bundleRequirements)
- See Also:
setRequireBundle(List)
-
setImportPackage
GatewayConfiguration setImportPackage(java.util.List<java.lang.String> packageImports)
- Parameters:
packageImports
- a list of package import requirements. A package requirements contains a package name, followed by a set of attributes and directives which are separated by semi-colons.
-
setImportPackage
GatewayConfiguration setImportPackage(java.lang.String... packageImports)
- See Also:
setImportPackage(List)
-
setDynamicImportPackage
GatewayConfiguration setDynamicImportPackage(java.util.List<java.lang.String> packageImports)
- Parameters:
packageImports
- a list of dynamic package import requirements. A package requirements contains a package name, followed by a set of attributes and directives which are separated by semi-colons. A dynamic package import is wired on demand, rather than up front.
-
setDynamicImportPackage
GatewayConfiguration setDynamicImportPackage(java.lang.String... packageImports)
- See Also:
setDynamicImportPackage(List)
-
setApplicationName
GatewayConfiguration setApplicationName(java.lang.String name)
- Parameters:
name
- The name of the application. This should be unique.
-
setApplicationVersion
GatewayConfiguration setApplicationVersion(org.osgi.framework.Version version)
- Parameters:
version
- The version of an application.
-
setDelegateToSystem
GatewayConfiguration setDelegateToSystem(boolean delegateToSystem)
- Parameters:
delegateToSystem
- true if findSystemClass should be called if the bundle is unable to load the class.
-
getDelegateToSystem
boolean getDelegateToSystem()
-
setApiTypeVisibility
GatewayConfiguration setApiTypeVisibility(ApiType... types)
Sets the allowed API types. Even if notypes
are supplied this will enable the filtering of packages for gateway class loaders constructed from this configuration. Once it is set it cannot be unset.- Parameters:
types
- The type that of APIs that are allowed to be loaded by the gateway class loader- Returns:
- The GatewayConfiguration with this property set
-
setApiTypeVisibility
GatewayConfiguration setApiTypeVisibility(java.lang.Iterable<ApiType> types)
Sets the allowed API types. Even if notypes
are supplied this will enable the filtering of packages for gateway class loaders constructed from this configuration. Once it is set it cannot be unset.- Parameters:
types
- The type that of APIs that are allowed to be loaded by the gateway class loader- Returns:
- The GatewayConfiguration with this property set
-
getRequireBundle
java.lang.Iterable<java.lang.String> getRequireBundle()
-
getImportPackage
java.lang.Iterable<java.lang.String> getImportPackage()
-
getDynamicImportPackage
java.lang.Iterable<java.lang.String> getDynamicImportPackage()
-
getApiTypeVisibility
java.util.EnumSet<ApiType> getApiTypeVisibility()
Returns a set of the API types that are allowed to be seen by a gateway class loader created from this configuration, the options for the set are:
null
: Do not restrict the packages visible to the class loader- Empty: Restrict the packages available to just "internal" packages
- Non Empty Set: Restrict the packages available to just the types supplied and "internal" packages
- Returns:
- The set of allowed API types
-
getApplicationName
java.lang.String getApplicationName()
-
getApplicationVersion
org.osgi.framework.Version getApplicationVersion()
-
-