Не все знают, но начиная с версии 2.0 Liquibase поддерживает возможность использования файлов с «чистым SQL» в качестве файлов changeset’ов. Под катом хочу немного описать, из чего они состоят.
Читать полностью »
Рубрика «java» - 219
Consulo: Code Coverage, Unity3D и прочие изменения
2015-02-25 в 17:10, admin, рубрики: .net, C#, consulo, java, unity3d, метки: c#
Для тех кто пропустил мои посты:Consulo — это форк IntelliJ IDEA Community Edition, который имеет поддержку .NET(C# на текущий момент, и на этот сектор пока идет большой акцент), Java.
В этой мини-статье я поделюсь с вами с тем, что удалось сделать за последние 2 месяца.
JPoint 2015: обзор заявок от докладчиков
2015-02-25 в 4:32, admin, рубрики: cfp, java, jpoint, анонс, Блог компании CodeFreezeВсем привет!
На прошедших выходных мы закончили принимать заявки от докладчиков на JPoint 2015. Среди них попались как интересные, так и не очень. Прием заявок почти закрылся. Сегодня мы примем от вас последние заявки и закроемся ровно в полночь. Если вы хотите выступить на JPoint — срочно заполните заявку, и мы в течение суток свяжемся с вами.

Под катом вы найдете короткий обзор поданных докладов и традиционную голосовалку.
Читать полностью »
Программа курса и материалы по Scala
2015-02-23 в 17:52, admin, рубрики: java, scala, Блог компании GolovachCourses, курсы, курсы программированияДобрый день.
Меня зовут Головач Иван, я практикующий Java Tech Lead с опытом в программировании 10+ лет (Java EE, J2ME, C, C++, M-language, Delphi), который перешел на Scala.
Я подготовил и прочитал как обычные курсы по программированию (Java Core + Junior Java Developer), так и спецкурсы (Multicore Programming for JVM (раз и два)).
В данный момент я стартую спецкурс по Scala и в этом топике хочу поделиться материалами, которые я нашел наиболее интересными/информативными (курс готовился более года).
Читать полностью »
Учебный план по JDBC
2015-02-18 в 13:47, admin, рубрики: java, javaee, jdbc, rdbms, Блог компании GolovachCoursesДобрый день.
Я занимаюсь IT-образованием.
В данный момент готовлю курс «JDBC for Java Developer» для одной западной MOOC-платформы. Думаю этот детальный план может быть полезен кому-то для подготовки к собеседованию.
По некоторому размышлению выходит, что за 4-5 часов видео (стандартный формат на платформе) максимум полезного, что можно рассказать в 5-10 минутных кусочках, попадает в Первую часть (6 тем: «Intro», «Connect to database», «Query database», «ResultSet», «Optimizations», «Transactions» + 35 вложенных подтем).
Ценное, но не помещающееся, пошло во Вторую часть (3 темы: «ThreadLocal Tx-Manager», «Distributed Transactions», «Query Meta-Information» + 10 вложенных подтем).
Ожидается, что слушатель после курса будет готов приступить к технологиям «следующего уровня» после JDBC — Spring JDBC Template, JavaEE transactions, ORM.
Знаю, что разумное замечание состоит в том, что можно «просто почитать JDBC 4.2 Specification». Да, можно. Этот план и строится как анализ спецификации + предлагаемые целевые варианты использования (Dao Patter, TxManager, Connection pooling, ...).
Динамическая компиляция Java-кода своими руками
2015-02-18 в 11:29, admin, рубрики: cuba, dynamic classloading, haulmont, java, spring, Блог компании Haulmont, разработкаВ этой статье я расскажу о нашей реализации hot deploy — быстрой доставки изменений Java-кода в работающее приложение.
Для начала немного истории. Мы уже несколько лет делаем корпоративные приложения на платформе CUBA. Они очень разные по размеру и функциональности, но все они похожи в одном — в них много пользовательского интерфейса.
В какой-то момент мы поняли, что разрабатывать пользовательский интерфейс, постоянно перезагружая сервер — крайне утомительно. Использование Hot Swap сильно ограничивает (нельзя добавлять и переименовывать поля, методы класса). Каждая перезагрузка сервера отнимала минимум 10 секунд времени, плюс необходимость повторного логина и перехода на тот экран, который ты разрабатываешь.
Пришлось задуматься о полноценном hot deploy. Под катом — наше решение проблемы с кодом и демо-приложением.
Читать полностью »
Простой webdev на Java 8
2015-02-17 в 15:24, admin, рубрики: jade4j, java, java8, ORMLite, sparkjava, web-разработка, фрейморки javaХочу рассказать о том, как мне пришла в голову идея заняться веб-разработкой на Java.
Итак, как только я созрел для этого дела, составил небольшой список, которому должны соответствовать выбранные мною инструменты разработки:
- Сборка при помощи maven;
- Простой процесс деплоя и запуска;
- Библиотеки должны быть легковесны;
- Возможность использования шаблонизатора.
Усиленно погуглив, я нашел то, что мне нужно: Spark, jade4j и OrmLite.
Итак, инструменты выбраны, рассмотрим каждый из них в отдельности.
Читать полностью »
Централизованные логи для приложений с помощью связки heka+elasticsearch+kibana
2015-02-17 в 9:00, admin, рубрики: centralized logging, elasticsearch, Go, golang, java, python, ит-инфраструктура, метки: centralized loggingВ статье описана настройка центрального логирования для разных типов приложений (Python, Java (java.util.logging), Go, bash) с помощью довольно нового проекта Heka.
Heka разрабатывается в Mozilla и написана на Go. Именно поэтому я использую его вместо logstash, который имеет сходные возможности.
Читать полностью »
Hibernate: ленивая загрузка, наследование и instanceof
2015-02-16 в 16:02, admin, рубрики: hibernate, instanceof, java, наследование, ооп, слои абстракцийРассмотрим, в качестве примера, следующую ситуацию. У нас имеется класс User с полями, описывающими пользователя. Имеется класс Phone, который является родительским для классов CellPhone и SatellitePhone. В классе User есть поле содержащее список телефонов пользователя. В целях уменьшения нагрузки на БД мы сделали этот список «ленивым». Он будет загружаться только по требованию.
public class User {
...
@OneToMany(fetch = FetchType.LAZY)
private List<Phone> phones = new ArrayList<Phone>();
public List<Phone> getPhones() {
return phones;
}
}
public class Phone {
...
}
public class CellPhone extends Phone {
...
}
public class SatellitePhone extends Phone {
...
}
В такой конфигурации при запросе списка телефонов конкретного пользователя мы можем получить как список проинициализированных объектов-телефонов (например, если они уже есть в кэше), так и список proxy-объектов.
В большинстве ситуаций нам не важно с чем именно мы работаем (реальным объектом или его proxy). При запросе какого-либо поля какого-либо объекта — proxy-объект автоматически проинициализируется, и мы получим ожидаемые данные. Но если нам нужно узнать тип объекта, то все идет наперекосяк.
Читать полностью »
Небезопасное хранение паролей в IBM WebSphere
2015-02-16 в 9:13, admin, рубрики: java, WebSphere, websphere application server, информационная безопасность, криптография, метки: websphereПо работе часто сталкиваюсь с продуктами IBM: WebSphere Application Server (WAS) и другими на его основе. И как и все иногда забываю пароли, в особенности это касается тестовых систем или тех, которым не уделяешь должного внимания.
В очередной раз не вспомнив пароля, решил посмотреть, а как его хранит наш сервер приложений. Проанализировав несколько файлов конфигурации, таких как security.xml, wimconfig.xml и resources.xml обнаружил все пароли когда-либо введённые в консоли администрирования, в том числе и пароль главного админа. Хранились они во вполне безобидном на первый взгляд виде.
serverPassword="{xor}KD4sPjsyNjE="
