Gradle to Maven


Столкнулся с достаточно редким случаем, когда потребовалось переехать с gradle обратно на maven. Самой неприятной рутиной задачей был перевод описаний зависимостей из однострочного gradle-представления в xml-представление maven.
Представляю свое unix-way решение проблемы. Решение грубое, но может кому сгодится и сэкономит немного времени :)
~$ cat build.gradle | grep compile | sed "s/\(compile '\)\(.*\)\(:\)\(.*\)\(:\)\(.*\)\('\)/<dependency><groupId>\2<\/groupId><artifactId>\4<\/artifactId><version>\6<\/version><\/dependency>/g;"
Под катом небольшое пояснение.

Java. Реализация шаблона DAO. Продолжение


В прошлой статье мы начали разговор о реализации паттерна DAO в Java. В качестве наглядного примера использовалась ситуация с двумя сущностями: группой и студентом. В самом начале нашей беседы мы столкнулись с дилеммой: как реализовывать связь студент-группа? Сохранять ли первичный ключ группы, в которой состоит студент, или хранить объект, эту группу описывающий?
Первый вариант мы уже рассмотрели. Пришла пора реализовать второй.

Gradle в Ubuntu. JAVA_HOME is set to an invalid directory

После установки gradle в Ubuntu столкнулся со странной проблемой: gradle рьяно утверждал, что JAVA_HOME не корректна и якобы ссылается на /usr/lib/jvm/default-java.
$ gradle

ERROR: JAVA_HOME is set to an invalid directory: 
/usr/lib/jvm/default-java

Please set the JAVA_HOME variable in your 
environment to match the location of your 
Java installation.
При этом, это было наглой ложью с его стороны, т.к. эта переменная имела иное значение и была абсолютно корректной:
$ echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle

Java. Реализация шаблона DAO


Сегодня  я хочу наконец затронуть тему доступа к данным в Java и начать с самых основ -  с использования JDBC и шаблона DAO. Описывать DAO я не стану - в интернете полно хороших описаний этого шаблона. Я хочу заострить внимание на его реализации. Статья построена таким образом, чтобы не давать готового решения, а попытаться шаг за шагом привести Вас к нему. Поэтому не торопитесь переживать по поводу заведомо не оптимальных решений в начале, скорее всего ваши замечания будут учтены по ходу статьи.

Курс молодого связиста


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

Установка Oracle Java Development Kit в Linux

Есть несколько способов установить Oracle JDK в Linux. И всякий раз, когда мне приходится выполнить эту процедуру, я забываю каждый из найденых мною когда-то способов. Надоело. Пусть все будет в одном месте.

Стоит ли IT-шнику идти в армию?

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

На сегодняшний день внутренний армейский порядок может сильно отличаться даже между ротами внутри одного полка. Стоит ли говорить о различиях в службе в разных частях и родах войск?

Естественно, все ниже изложенное носит исключительно субъективный характер.

Служу России!


Пришло время отдать долг Родине. Университет позади и ближайший год я буду развлекать себя выполняя роль рядового Российской армии. Надеюсь время пролетит не заметно и я не успею забыть как писать Hello world!

Как разделить модульные и интеграционные тесты с помощью Maven


В теории, модульные тесты не должны зависеть от окружения. Для проверки работоспособности системы в приближенных к реальности условиях, пишутся интеграционные тесты. Для них в maven предусмотрена отдельная фаза сборки проекта.

В этой статье хотелось бы поделиться опытом ее использования.

JUnit, параметризованные тесты и Spring IoC


Чтобы не подымать руками контекст Spring-а в каждом модульном тесте на JUnit, был придуман SpringJUnit4ClassRunner. Но его использование делает невозможным применение еще одного очень плезного запускальщика тестов: Parameterized. И тут возникает проблема, как усидеть на двух стульях сразу: писать параметризованные тесты и пользоваться Spring.