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_LOCATION
CONTAINER_CLASS_PROP, CONTEXT_PROPERTY_DEPLOY_PATH
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(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
public StandaloneProcessingUnitContainerProvider(String location)
Resource
syntax.location
- The location of the processing unit archivepublic void addConfigLocation(String configLocation)
PathMatchingResourcePatternResolver
.addConfigLocation
in class ApplicationContextProcessingUnitContainerProvider
PathMatchingResourcePatternResolver
public void addConfigLocation(Resource resource) throws IOException
addConfigLocation
in class ApplicationContextProcessingUnitContainerProvider
IOException
public 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 ProcessingUnitContainerProvider
StandaloneProcessingUnitContainer
instanceCannotCreateContainerException
Copyright © GigaSpaces.