вторник, 24 июня 2014 г.

cargo-maven2-plugin - запуск сервера tomcat на отладку здесь и сейчас

cargo-maven2-plugin - запуск сервера tomcat на отладку здесь и сейчас


Пишу под maven/tomcat, соответственно при перемещениях исходного приложения с машины на машину приходится проходить цикл настройки сервера для подключения. И это порядком утомляет. Пусть даже и немного помогает плагин tomcat7-maven-plugin (будет ли восьмой - не знаю). Но хотелось бы более удобного способа, который можно было бы "вмонтировать" прямо в maven. Некоторое время назад наткнулся на плагин "cargo-maven2-plugin", решил его испытать и он мне очень понравился. Поэтому тут я поделюсь своими впечатлениями.

Начну с полученного результата. Для тестирования war-приложения на любой машине (даже на удалённой), где настроен maven выполняю команду:

    mvn clean package cargo:run

Если сборка прошла успешно, то запускаю браузер, набираю адрес http://localhost:8580/<приложение>, должен появиться результат. Чтобы подключиться к отладке запускаю удалённое подкючение IDE (Eclipse или IDEA) и делаю отладку. Всё - результат получен.

Теперь расскажу поподробнее, что тут происходит.

Настройка плагина в проектом pom.xml:


Вот так выглядит запуск из командной строки (причём не только под command.exe, но и под linux/bash):

проверим браузер:

Настраиваем eclipse на удалённую отладку и запускаем:


Вот так получаем желаемый результат. Вообще возможности cargo не ограничиваются только tomcat. В документации идёт речь и о других контейнерах. Кроме того, мне удалось подключить этот плагин при тестирование под Selenium и под Arquillian.

Очень рекомендую обратить внимание.

суббота, 5 апреля 2014 г.

Как быстро включить номера строк в Eclipse

Как быстро включить номера строк в Eclipse

"Быстро" (Ctrl-3) войти в Quick Access, набрать "show l" (подразумевается "show line numbers"), нажать Enter и получить результат:
Точно так же их можно и отключить.

Теперь пару слов о том, что тут произошло. Прикол весь в интересном свойстве Eclipse IDE предоставлять доступ к своим настройкам в Preferences через Quick Access. И эта функция системы позволила быстро выполнить действия, которые доступны из GUI таким образом:
Только эти действия через Quick Access выполняются почти мгновенно и не надо хватать мышку и целиться в кнопки. :) Всё просто!

вторник, 25 марта 2014 г.

Как быстро вставить зависимость в pom.xml в IDE Eclipse (quick insert a dependency into pom.xml in Eclipse)

Как быстро вставить зависимость в pom.xml в IDE Eclipse (quick insert a dependency into pom.xml in Eclipse)

Оказывается, зависимость в pom.xml в среде разработки Eclipse можно вставить очень быстро и просто, помня только основное название зависимости:


Аналогичная ситуация и с плагинами.

воскресенье, 23 марта 2014 г.

bash. Строку с двоичными кодами и преобразовать в base64.

bash. Строку с двоичными кодами и преобразовать в base64.

Сначала я стал искать hex-редакторы с возможностью преобразования данных в base64, но поскольку речь шла о небольшом объёме данных, которые мне нужно набирать на клавиатуре, то нашлось простое решение под linux в одну строчку:

printf "\x00alex-zaharow@yandex.ru\x00password" | base64

на выходе получаем:

AGFsZXgtemFoYXJvd0B5YW5kZXgucnUAcGFzc3dvcmQ=

Проверка для smtp сервера:


Проблема изначально была в том, что никак было не "написать" исходную строку в bash с двоичным символом null, но если сделать вывод в printf и через трубопровод передать в base64, то данные будут содержать нулевой код символа и преобразуются в base64.

понедельник, 10 марта 2014 г.

Использование cmd в консоли eclipse с правильной кодировкой

Использование cmd в консоли eclipse с правильной кодировкой

Долго не мог решить проблему, что консольный вывод команды cmd, запущенный в среде eclipse выдавал неверные символы (не сильно беспокоило, но решил разобраться):


Довольно быстро нашёл перечень шрифтов, которые можно использовать в консоли:

Только в этой настройке ничего нет про кодировку dos866 (сколько лет прошло, а призрак MSDOS  до сих пор преследует Windows), но как-то мне улыбнулась удача и я нашёл правильную кодировку для этой настройки, которую Eclipse нормально использует:

cp866

Странно, что используемая настройка нигде не запоминается и не предлагается.

Java split

Java split

И как я раньше не замечал такого свойства в Java, аналогичного split в JavaScript, чтобы разделить стрку на лексемы по паттерну регулярных выражений. Существует аж два метода:



Заодно обнаружил, что если нужно при выводе использовать паттерн форматированной строки вместо длинного оператора System.out.println("строка1 "+значение1+", строка2 "+значение2) или System.out.println( String.format("строка1 %s, строка2 %s", значение1, значение2) ), то можно сделать ещё быстрее:
System.out.printf("Строка1 %s, строка2 %s", значение1, значение2)

пятница, 21 февраля 2014 г.

JAVA. HOWTO. Как прочитать ресурс WAR-приложения как байтовый массив.

JAVA. HOWTO. Как прочитать ресурс WAR-приложения как байтовый массив.

Пример приведён для jsp. Файл "2070.cer" является ресурсом приложения. После сборки он будет находится в файле war/jar.
см. http://stackoverflow.com/questions/2639943/accessing-jar-resources

<%@page import="local.esphere.cert.DER2XML, java.io.*, org.apache.commons.io.*"%>
<html>
<body>
<h2>Hello World!</h2>
<%
 String crtPath = "/2070.cer";
 InputStream file = getClass().getResourceAsStream( crtPath );
 
 byte[] bytesDER = IOUtils.toByteArray(file);
 
 out.println("xml:<br/><pre>"+ DER2XML.convert( bytesDER )+"</pre>" );
 out.println("ThumbPrint:"+ DER2XML.getThumbPrint( bytesDER ) );
%>
</body>
</html>

Примечание: поскольку getClass не является статическим методом, то вызвать его напрямую можно только у инстанциированных объектов, например:

InputStream file = crtPath.getClass().getResourceAsStream( crtPath );