spring-integration-aws/src/main/java/org/springframework/integration/aws/sns/core/SnsExecutor.java
@Override
	public void afterPropertiesSet() {

		Assert.isTrue(this.topicName != null || this.topicArn != null,
				"Either topicName or topicArn must not be empty.");

		Assert.isTrue(snsTestProxy != null || awsCredentialsProvider != null,
				"Either snsTestProxy or awsCredentialsProvider needs to be provided");

		if (messageMarshaller == null) {
			messageMarshaller = new JsonMessageMarshaller();
		}

		if (snsTestProxy == null) {
			if (awsClientConfiguration == null) {
				client = new AmazonSNSClient(awsCredentialsProvider);
			} else {
				client = new AmazonSNSClient(awsCredentialsProvider,
						awsClientConfiguration);
			}
			if (regionId != null) {
				client.setEndpoint(String.format("sns.%s.amazonaws.com",
						regionId));
			}
			if (topicArn == null) {
				createTopicIfNotExists();
			}
			processSubscriptions();
			addPermissions();
		}
	}
@Override
	public void afterPropertiesSet() {

		Assert.isTrue(this.topicName != null || this.topicArn != null,
				"Either topicName or topicArn must not be empty.");

		Assert.isTrue(snsTestProxy != null || awsCredentialsProvider != null,
				"Either snsTestProxy or awsCredentialsProvider needs to be provided");

		if (messageMarshaller == null) {
			messageMarshaller = new JsonMessageMarshaller();
		}

		if (snsTestProxy == null) {
			if (awsClientConfiguration == null) {
				client = new AmazonSNSClient(awsCredentialsProvider);
			} else {
				client = new AmazonSNSClient(awsCredentialsProvider,
						awsClientConfiguration);
			}
			if (regionId != null) {
				client.setEndpoint(String.format("sns.%s.amazonaws.com",
						regionId));
			}
			if (topicArn == null) {
				createTopicIfNotExists();
			}
			processSubscriptions();
			addPermissions();
		}
	}
Verifies and sets the parameters. E.g. initializes the to be used