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
loggerFields inherited from interface org.springframework.beans.factory.FactoryBean
OBJECT_TYPE_ATTRIBUTE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final Objectprotected voiddestroyInstance(Object ignored) protected abstract ObjectImplement to create the actual target object.voidSet the AWS key.voidsetAwsSecretKey(String awsSecretKey) Set the AWS secret key.voidsetGroupName(String groupName) Set the name of the access group.voidsetImageName(String imageName) Set the name of the AMI image to be launched.voidsetKeypairName(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:
createInstancein 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:
destroyInstancein classorg.springframework.beans.factory.config.AbstractFactoryBean- Throws:
Exception
-