Package org.springframework.ldap.test
Class AbstractEc2InstanceLaunchingFactoryBean
java.lang.Object
org.springframework.beans.factory.config.AbstractFactoryBean
org.springframework.ldap.test.AbstractEc2InstanceLaunchingFactoryBean
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanClassLoaderAware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.beans.factory.DisposableBean
,org.springframework.beans.factory.FactoryBean
,org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
ContextSourceEc2InstanceLaunchingFactoryBean
public abstract class AbstractEc2InstanceLaunchingFactoryBean
extends org.springframework.beans.factory.config.AbstractFactoryBean
Abstract FactoryBean superclass to use for automatically launching an EC2 instance
before creating the actual target object. This approach is particularly useful for
integration testing purposes - the idea is to have particular EC2 images prepared for
running integration tests against certain server configurations, enabling integration
tests aimed at e.g. a particluar DB server to run transparently at the computer of each
individual developer without having to have the actual server software installed on
their computers.
Public AMIs will need to be created, bundled and registered for each server setup. A subclass of this FactoryBean is then added to create the actual target object (e.g. a DataSource), implementing the {link #doCreateInstance} method. This method will be supplied the IP address of the instance that was created, enabling the subclass to configure the created instance appropriately.
-
Field Summary
Fields inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
logger
Fields inherited from interface org.springframework.beans.factory.FactoryBean
OBJECT_TYPE_ATTRIBUTE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected final Object
protected void
destroyInstance
(Object ignored) protected abstract Object
Implement to create the actual target object.void
Set the AWS key.void
setAwsSecretKey
(String awsSecretKey) Set the AWS secret key.void
setGroupName
(String groupName) Set the name of the access group.void
setImageName
(String imageName) Set the name of the AMI image to be launched.void
setKeypairName
(String keypairName) Set the name of the keypair.Methods inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
afterPropertiesSet, destroy, getBeanFactory, getBeanTypeConverter, getEarlySingletonInterfaces, getObject, getObjectType, isSingleton, setBeanClassLoader, setBeanFactory, setSingleton
-
Constructor Details
-
AbstractEc2InstanceLaunchingFactoryBean
public AbstractEc2InstanceLaunchingFactoryBean()
-
-
Method Details
-
setImageName
Set the name of the AMI image to be launched.- Parameters:
imageName
- the AMI image name.
-
setAwsKey
Set the AWS key.- Parameters:
awsKey
- the AWS key.
-
setAwsSecretKey
Set the AWS secret key.- Parameters:
awsSecretKey
- the aws secret key.
-
setKeypairName
Set the name of the keypair.- Parameters:
keypairName
- The keypair name.
-
setGroupName
Set the name of the access group. This group should be configured with the appropriate ports open for this test case to execute.- Parameters:
groupName
- the group name.
-
createInstance
- Specified by:
createInstance
in classorg.springframework.beans.factory.config.AbstractFactoryBean
- Throws:
Exception
-
doCreateInstance
Implement to create the actual target object.- Parameters:
ip
- the ip address of the launched EC2 image.- Returns:
- the object to be returned by this FactoryBean.
- Throws:
Exception
- if an error occurs during initialization.
-
destroyInstance
- Overrides:
destroyInstance
in classorg.springframework.beans.factory.config.AbstractFactoryBean
- Throws:
Exception
-