Буквально вчера наткнулся на простую и, казалось бы, такую очевидную функцию в IDE Eclipse, как подключение исходников от внешних библиотек. Возможно кому то это покажется слишком простым и банальным, но опросив несколько знакомых разработчиков, я обнаружил, что не только я не знал о такой функции, потому для всех любителей и профессионалов, которые занимается разработкой под Android, прошу под кат, и вы узнаете, как дебажить не только ваш код, но смотреть «в корень» — а именно, дебажить ваш проект «до основания».
Читать полностью »
Рубрика «java» - 276
Подключаем исходники Android в Eclipse
2013-03-12 в 20:19, admin, рубрики: android, development, eclipse, java, source code, Разработка под android, метки: android, development, Eclipse, java, source codeТестирование контроллеров с помощью MockMvc
2013-03-12 в 10:38, admin, рубрики: groovy, hibernate, java, mockmvc, spring, тестирование, метки: groovy, hibernate, java, mockmvc, springВсем привет.
Познакомившись с библиотекой MockMvc, я обнаружил "полное наличие отсутствия" её упоминаний на Хабре. Постараюсь восполнить этот пробел, тем более, что наше приложение ContactManager как раз нуждается в автоматизированном тестировании.
Читать полностью »
Агрегация логов с нескольких серверов средставами log4j
2013-03-12 в 2:28, admin, рубрики: java, log4j, logging, метки: log4j, logging log4j широкоизвестная библиотека логирования, нашедшая своё применение во многих проектах. Её возможности не ограничиваются «добавлением строчек в лог-файлы». На базе log4j можно организовать сложную систему агрегации логов на центральный сервер. Кроме того, сообщество располагает GUI утилитами для анализа логов, которые удобно подключать к центральному серверу для анализа логов.
Читать полностью »
Таинственный FrontCache
2013-03-11 в 15:41, admin, рубрики: hashmap, hotspot, java, кэширование, недокументированные функции, метки: hashmap, hotspot, java, кэширование, недокументированные функции Всё началось с того, что я в очередной раз ковырял в Eclipse Memory Analyzer дамп памяти Java-приложения и увидел такую интересную вещь:

С кодом HashMap я знаком весьма неплохо, но вложенного класса FrontCache никогда там не видел. Может, с последним обновлением JDK мне прислали обновлённый HashMap? Я заглянул в исходники, но слова «front» там не обнаружилось. Стало интересно, откуда же этот класс берётся и что он делает.
Читать полностью »
C/C++ plugin for IntelliJ IDEA as OpenSource
2013-03-11 в 10:11, admin, рубрики: c++, idea, java, метки: c++, idea, javaЗдравствуйте.
Сегодня, после двух недель ожидания, Advanced Tools опубликовали исходники плагина, если кто не знает, этот плагин дает поддержку C/C++ для IDE которые базируются на IntelliJ платформе(web ide, idea, etc)
PowerMock (+Mockito): новый взгляд на unit-тестирование
2013-03-11 в 8:32, admin, рубрики: java, junit, mockito, PowerMock, Unit-тестирование, тестирование, метки: java, junit, mockito, PowerMock, Unit-тестирование -novyi-vzglyad-na-unit-testirovanie.png)
Качественный код невозможен без тестов. А качественные тесты — без моков. В создании моков нам давно помогают различные полезные библиотечки, наподобие EasyMock или Mockito. В своей практике я использую Mockito, как самое гибкое, красивое и функциональное средство. Но, к сожалению, Mockito тоже не стал серебрянной пулей. Ограничением всегда являлись final классы, private поля и методы, static методы и многое другое. И приходилось выбирать: или красивый дизайн, или качественное покрытие тестами. Меня, как приверженца красивой архитектуры и качественных тестов, такой расклад не устраивал. И вот совсем недавно я наткнулся на замечательную библиотечку — PowerMock, которая удовлетворила практически все мои запросы. За исключением одного, но об этом позже.
Java: executor с уплотнением по ключам
2013-03-11 в 7:24, admin, рубрики: concurrency, data structures, java, multithreading, метки: concurrency, data structures, java, multithreading 
Существует типичная проблема в большом классе задач, которая возникает при обработке потока сообщений:
— нельзя пропихнуть большого слона через маленькую трубу, или другими словами, обработка сообщений не успевает «проглотить» все сообщения.
При этом существуют некоторые ограничения на поток данных:
- поток не равномерный и состоит из событий разного типа
- количество типов событий заранее не известно, но некоторое конечное число
- каждый тип события имеет свою актуальность во времени
- все типы событий имеют равный приоритет
На диаграмме приведён пример разрешения проблемы: нагребатор(tm), работающий на нитке T1, в то время как разгребатор(tm) работает на нитке T2
- за время обработки события типа A успевают прийти новые события как типа B, так и A
- после обработки события типа B необходимо обработать наиболее актуальное событие типа A
Т.о. стоит задача о выполнении задач по ключу, так, что выполняется только самая актуальная из всех задач по данному ключу.
На суд публике представляется созданный нами ThrottlingExecutor.
Замечание терминологии: stream есть поток данных, тогда как thread есть нитка или нить выполнения. И не стоит путать потоки с нитками.
Замечание 1: проблема осложняется ещё тем, что может быть несколько нагребаторов(tm), при этом каждый нагребатор(tm) может порождать только события одного типа; с другой стороны есть потребность в нескольких (конечно же, для простоты можно выбрать N=1) разгребаторах(tm).
Замечание 2: мало того, что данный код должен работать в многопоточной (конкурентной) среде — т.е то самое множество нагребаторов(tm) — разгребаторов(tm), код должен работать с максимальной производительностью и низкими latency. Резонно к этим всем качествам добавить ещё и свойство garbage less.
И почти в каждом проекте так или иначе возникает эта задача, и каждый её решает по разному, но все они либо не эффективны, либо медленны, либо и то, и другое вместе взятое.
Oracle ADF (Application Development Framework)
2013-03-10 в 0:16, admin, рубрики: ADF, java, JDeveloper, mvc, oracle, метки: ADF, java, JDeveloper, mvc, oracleНе так давно, я познакомился с Java фреймворком, созданный компанией Oracle. Я был удивлен, что на Хабре не нашлось информации о нем, поэтому решил написать небольшую обозревательную статью.
Введение
Когда я только начинал познание сего чуда (хотя, если быть откровенным, для меня он до сих пор, как чертик в табакерке), первая же pdf’ка порадовала меня следующей картиной.
.jpg)
Читать полностью »
UC Browser: Умная белка, теперь и на хабре
2013-03-06 в 12:43, admin, рубрики: android, iOS, java, symbian, Uc Browser, windows phone, Блог компании UC Web, браузеры, Софт, метки: android, iOS, java, symbian, Uc Browser, windows phone Здравствуйте, читатели!
Мы хотим представить Вам наш корпоративный блог, и мы очень рады тому, что открыта еще одна площадка для общения с нашими пользователями. UC Mobile Limited — это компания из Китая, выпустившая популярный, в пределах своей Родины и за рубежом, UC Browser, браузер для мобильных устройств и планшетов. Наш браузер – яркое доказательство того, что современный Китай может производить дейтсвительно качественный продукт, разительно отличающийся от телефонов Nokla или кроссовок Abidas.

Читать полностью »
Selenium 2.0 — WebDriver. Впечатления, проблемы и советы по использованию
2013-03-05 в 13:14, admin, рубрики: java, selenium 2.0, webdriver, Песочница, разработка, тестирование, тестирование веб-приложений, метки: java, selenium 2.0, webdriver, тестирование веб-приложенийВведение
Последние три месяца мне пришлось работать с Selenium 2.0 (WebDriver).
В данной статье я опишу свои впечатления, мысли и опыт, который я приобрел.
Так же я опишу основные действия, которые чаще всего вызывают проблемы и покажу наиболее удачные решения, которые я смог реализовать для них. Возможно есть более правильные подходы — буду рад если оставите их в комментариях.
Читать полностью »
