Различные весенние XML-файлы для среды разработки и развертывания при использовании maven - PullRequest
0 голосов
/ 16 октября 2008

Резюме

У нас есть центральный сервер LDAP, к которому должно подключиться наше развернутое веб-приложение Java. Наши тесты JUnit зависят от конкретных данных в хранилище LDAP, поэтому им необходимо подключиться к встроенному серверу ApacheDS LDAP, заполненному образцом набора данных. Как мы можем убедиться, что сервер ApacheDS не запускается при развертывании нашего веб-приложения?

Детали

Мы используем Spring security и имеем следующую строку в ldap-context.xml для запуска встроенного сервера LDAP:

<security:ldap-server root="dc=test,dc=com" port="33389" ldif="classpath:EmbeddedServerRoot.ldif" />

В настоящее время наш web.xml ссылается как на этот файл тестового контекста, так и на наш файл application-context.xml верхнего уровня:

    <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>
           classpath:ldap-context.xml
           classpath:application-context.xml 
       </param-value>
   </context-param>

Нам нужно убедиться, что ldap-context.xml включен, когда мы запускаем наши тесты JUnit и когда мы запускаем веб-приложение непосредственно из Eclipse (через WTP), но исключаем, когда мы упаковываем war и разворачиваем его на сервере. .

Мы используем maven в качестве инструмента для сборки. Мы можем довольно легко позаботиться об этой ситуации для наших тестов JUnit, убедившись, что они включают оба контекстных файла Spring в конфигурацию контекста:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:ldap-context.xml", "classpath:application-context.xml" })
public class TestStuff {
}

Тогда наш web.xml будет включать только application-context.xml, за исключением одной вещи - это не работает при запуске из WTP - нам нужен встроенный сервер для запуска в этом случае. Есть предложения?

Ответы [ 2 ]

1 голос
/ 17 октября 2008

Если вы используете Maven, почему бы не использовать плагин Assembly для управления развертываниями среды. Кажется, что ваш весенний файл не так уж сложен, поэтому вы можете иметь общий весенний файл, который не имеет ссылки на ldap-context.xml, а затем специальную версию теста, которая имеет ссылку на ldap. Когда сборка настроена и запущена, специфичный для среды файл перезапишет общую версию, а затем вы сможете развернуть упакованное приложение.

0 голосов
/ 17 октября 2008

Другая возможность состоит в использовании некоторых свойств в pom и отфильтрованном файле пружинных бинов, определяющих псевдонимы для бинов для переключения между средами. Но вам нужно использовать оба bean-компонента в конфигурации, но вы будете использовать один или другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...