diff --git a/spring-cql/src/main/java/org/springframework/cassandra/config/xml/CassandraCqlClusterParser.java b/spring-cql/src/main/java/org/springframework/cassandra/config/xml/CassandraCqlClusterParser.java
index ec6ac208f..93e4ff1e7 100644
--- a/spring-cql/src/main/java/org/springframework/cassandra/config/xml/CassandraCqlClusterParser.java
+++ b/spring-cql/src/main/java/org/springframework/cassandra/config/xml/CassandraCqlClusterParser.java
@@ -161,7 +161,7 @@ public class CassandraCqlClusterParser extends AbstractBeanDefinitionParser {
poolingOptionsBuilder, parserContext, element));
builder.addPropertyValue("startupScripts", startupScripts);
- builder.addPropertyValue("shutdownScripts", startupScripts);
+ builder.addPropertyValue("shutdownScripts", shutdownScripts);
}
/**
diff --git a/spring-cql/src/test/java/org/springframework/cassandra/config/xml/CassandraCqlClusterParserUnitTests.java b/spring-cql/src/test/java/org/springframework/cassandra/config/xml/CassandraCqlClusterParserUnitTests.java
index 7157de063..777daf1d8 100644
--- a/spring-cql/src/test/java/org/springframework/cassandra/config/xml/CassandraCqlClusterParserUnitTests.java
+++ b/spring-cql/src/test/java/org/springframework/cassandra/config/xml/CassandraCqlClusterParserUnitTests.java
@@ -20,6 +20,8 @@ import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import static org.springframework.cassandra.support.BeanDefinitionTestUtils.*;
+import java.util.List;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -262,6 +264,44 @@ public class CassandraCqlClusterParserUnitTests {
verify(localPoolingOptionsElement).getAttribute(eq("min-simultaneous-requests"));
}
+ /**
+ * @see DATACASS-242
+ */
+ @Test
+ public void parseChildElementsWithStartupAndShutdownScripts() {
+
+ Element mockStartupCqlOne = mock(Element.class, "MockStartupCqlOne");
+ Element mockStartupCqlTwo = mock(Element.class, "MockStartupCqlTwo");
+ Element mockShutdownCqlOne = mock(Element.class, "MockShutdownCqlOne");
+ Element mockShutdownCqlTwo = mock(Element.class, "MockShutdownCqlTwo");
+
+ when(mockStartupCqlOne.getLocalName()).thenReturn("startup-cql");
+ when(mockStartupCqlTwo.getLocalName()).thenReturn("startup-cql");
+ when(mockStartupCqlOne.getTextContent()).thenReturn("CREATE KEYSPACE test;");
+ when(mockStartupCqlTwo.getTextContent()).thenReturn("CREATE TABLE test.table;");
+ when(mockShutdownCqlOne.getLocalName()).thenReturn("shutdown-cql");
+ when(mockShutdownCqlTwo.getLocalName()).thenReturn("shutdown-cql");
+ when(mockShutdownCqlOne.getTextContent()).thenReturn("DROP KEYSPACE test;");
+ when(mockShutdownCqlTwo.getTextContent()).thenReturn("DROP USER jblum;");
+
+ NodeList mockNodeList = mockNodeList(mockStartupCqlOne, mockStartupCqlTwo,
+ mockShutdownCqlOne, mockShutdownCqlTwo);
+
+ when(mockElement.getChildNodes()).thenReturn(mockNodeList);
+
+ BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition();
+
+ parser.parseChildElements(mockElement, mockParserContext(null), builder);
+
+ BeanDefinition beanDefinition = builder.getBeanDefinition();
+
+ List startupScripts = getPropertyValue(beanDefinition, "startupScripts");
+ assertThat(startupScripts, contains("CREATE KEYSPACE test;", "CREATE TABLE test.table;"));
+
+ List shutdownScripts = getPropertyValue(beanDefinition, "shutdownScripts");
+ assertThat(shutdownScripts, contains("DROP KEYSPACE test;", "DROP USER jblum;"));
+ }
+
/**
* @see DATACASS-298
*/