Howto: in-memory derby db с помощью Glassfish

Мне нужно запустить тесты arquillian+junit на удаленном сервере Glassfish 4.1. Таблицы базы данных для этих тестовых случаев должны быть
(1) созданы в памяти,
(2) с встроенной JavaDB и
(3 ) отброшен после выполнения теста.

Будет ли работать следующий файл glassfish-resources.xml?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC
    "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN"
    "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
    <jdbc-resource pool-name="ArquillianEmbeddedDerbyPool"
                   jndi-name="java:app/jdbc/chapter2" />
    <jdbc-connection-pool name="ArquillianEmbeddedDerbyPool"
                          res-type="javax.sql.DataSource"
                          datasource-classname="org.apache.derby.jdbc.EmbeddedDataSource"
                          is-isolation-level-guaranteed="false">
        <property name="databaseName" value="memory:action-bazaar-db"/>
        <property name="createDatabase" value="create"/>
    </jdbc-connection-pool>
</resources>

Я пробовал, но не уверен, что база данных создается в памяти. Я продолжаю получать следующую ошибку каждый раз, когда запускаю тесты. Как избавиться от этой ошибки?

PER01000: получен оператор выполнения SQLException «CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR (50) NOT NULL, SEQ_COUNT DECIMAL (15), PRIMARY KEY (SEQ_NAME))»: java.sql.SQLException: таблица/представление «SEQUENCE» уже существует в схеме ' ПРИЛОЖЕНИЕ'


person Kiran Mohan    schedule 18.11.2015    source источник


Ответы (1)


Если вы используете Maven для своей сборки, вы можете использовать derby-maven-plugin. , который я написал и доступен на GitHub и через Maven Central.

Вы можете проверить здесь мой ответ на аналогичный вопрос.

person carlspring    schedule 11.12.2015