public class StandaloneProcessingUnitContainerProvider extends ApplicationContextProcessingUnitContainerProvider
StandaloneProcessingUnitContainer provider. A standalone processing unit container is a
container that understands a processing unit archive structure (both when working with an
"exploded" directory and when working with a zip/jar archive of it). It is provided with the
location of the processing unit using StandaloneProcessingUnitContainerProvider(String).
The location itself follows Spring resource loader syntax.
When creating the container a thread is started with StandaloneContainerRunnable.
This is done since a custom class loader is created taking into account the processing unit
archive structure, and in order to allows using the standlone container within other
environments, the new class loader is only set on the newly created thread context.
At its core the integrated processing unit container is built around Spring ApplicationContext configured based on a set of config locations.
The provider allows for programmatic configuration of different processing unit aspects. It
allows to configure where the processing unit Spring context xml descriptors are located (by
default it uses classpath*:/META-INF/spring/pu.xml). It also allows to set BeanLevelProperties and ClusterInfo
that will be injected to beans configured within the processing unit.
For a runnable "main" processing unit container please see StandaloneProcessingUnitContainer.main(String[]).
DEFAULT_FS_PU_CONTEXT_LOCATION, DEFAULT_PU_CONTEXT_LOCATIONCONTAINER_CLASS_PROP, CONTEXT_PROPERTY_DEPLOY_PATH, SPACE_NAME_PROPERTY_KEY| Constructor and Description |
|---|
StandaloneProcessingUnitContainerProvider(String location)
Constructs a new standalone container provider using the provided location as the location of
the processing unit archive (either an exploded archive or a jar/zip archive).
|
| Modifier and Type | Method and Description |
|---|---|
void |
addConfigLocation(org.springframework.core.io.Resource resource) |
void |
addConfigLocation(String configLocation)
Adds a config location based on a String description using Springs
PathMatchingResourcePatternResolver. |
ProcessingUnitContainer |
createContainer()
Creates a new
StandaloneProcessingUnitContainer based on the configured
parameters. |
getBeanLevelProperties, getClusterInfo, getConfig, setBeanLevelProperties, setClassLoader, setClusterInfo, setDeployPath, setManifestUrls, setMetricRegistrator, setSpaceNamepublic StandaloneProcessingUnitContainerProvider(String location)
Resource syntax.location - The location of the processing unit archivepublic void addConfigLocation(String configLocation)
PathMatchingResourcePatternResolver.addConfigLocation in class ApplicationContextProcessingUnitContainerProviderPathMatchingResourcePatternResolverpublic void addConfigLocation(org.springframework.core.io.Resource resource)
throws IOException
addConfigLocation in class ApplicationContextProcessingUnitContainerProviderIOExceptionpublic ProcessingUnitContainer createContainer() throws CannotCreateContainerException
Creates a new StandaloneProcessingUnitContainer based on the configured
parameters. A standalone processing unit container is a container that understands a
processing unit archive structure (both when working with an "exploded" directory and when
working with a zip/jar archive of it). It is provided with the location of the processing
unit using StandaloneProcessingUnitContainerProvider(String).
The location itself follows Spring resource loader syntax.
If addConfigLocation(String) is used, the Spring xml context will be read based
on the provided locations. If no config location was provided the default config location
will be classpath*:/META-INF/spring/pu.xml.
If ProcessingUnitContainerProvider.setBeanLevelProperties(org.openspaces.core.properties.BeanLevelProperties) is
set will use the configured bean level properties in order to configure the application
context and specific beans within it based on properties. This is done by adding BeanLevelPropertyBeanPostProcessor and BeanLevelPropertyPlaceholderConfigurer to the application
context.
If ProcessingUnitContainerProvider.setClusterInfo(org.openspaces.core.cluster.ClusterInfo) is set will use it to
inject ClusterInfo into beans that implement ClusterInfoAware.
createContainer in class ProcessingUnitContainerProviderStandaloneProcessingUnitContainer instanceCannotCreateContainerExceptionCopyright © GigaSpaces.