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.
-
-
Constructor Summary
Constructors Constructor Description AbstractEc2InstanceLaunchingFactoryBean()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected java.lang.Object
createInstance()
protected void
destroyInstance(java.lang.Object ignored)
protected abstract java.lang.Object
doCreateInstance(java.lang.String ip)
Implement to create the actual target object.void
setAwsKey(java.lang.String awsKey)
Set the AWS key.void
setAwsSecretKey(java.lang.String awsSecretKey)
Set the AWS secret key.void
setGroupName(java.lang.String groupName)
Set the name of the access group.void
setImageName(java.lang.String imageName)
Set the name of the AMI image to be launched.void
setKeypairName(java.lang.String keypairName)
Set the name of the keypair.
-
-
-
Method Detail
-
setImageName
public void setImageName(java.lang.String imageName)
Set the name of the AMI image to be launched.- Parameters:
imageName
- the AMI image name.
-
setAwsKey
public void setAwsKey(java.lang.String awsKey)
Set the AWS key.- Parameters:
awsKey
- the AWS key.
-
setAwsSecretKey
public void setAwsSecretKey(java.lang.String awsSecretKey)
Set the AWS secret key.- Parameters:
awsSecretKey
- the aws secret key.
-
setKeypairName
public void setKeypairName(java.lang.String keypairName)
Set the name of the keypair.- Parameters:
keypairName
- The keypair name.
-
setGroupName
public void setGroupName(java.lang.String groupName)
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
protected final java.lang.Object createInstance() throws java.lang.Exception
- Specified by:
createInstance
in classorg.springframework.beans.factory.config.AbstractFactoryBean
- Throws:
java.lang.Exception
-
doCreateInstance
protected abstract java.lang.Object doCreateInstance(java.lang.String ip) throws java.lang.Exception
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:
java.lang.Exception
- if an error occurs during initialization.
-
destroyInstance
protected void destroyInstance(java.lang.Object ignored) throws java.lang.Exception
- Overrides:
destroyInstance
in classorg.springframework.beans.factory.config.AbstractFactoryBean
- Throws:
java.lang.Exception
-
-