Метка «java» - 57

Не так давно, мне выпала задача, написать кеш, который сам себя чистит по истечению некоторого определенного времени. Требования к нему были следующие:

  1. Легковесность
  2. Потокобезобасность

В общем-то и все. До написания данной задачи с java.util.concurrent дела не имел. На мысль использования этого пакета меня натолкнул один мой коллега, у которого было нечто подобное, но не соответствовало тому функционалу который был нужен. Итак, начнем:

В качестве ключа будет выступать внутренний класс, который помимо прямого назначения будет определять он является «живым» или его можно удалить с кеша, так как время его существования подошло к концу:
Читать полностью »

В качестве хобби последние несколько месяцев я разрабатываю парсер языка PHP с помощью ANTLR. Сам проект для меня скорее просто Just for fun, но в ходе его реализации у меня, разумеется, возникали сложности. Тут сказывается как особенность языка PHP с полным отсутствием спецификаций, так и ограничения алгоритмов LL(k).

В этой статье я бы хотел поделиться техническими решениями и некоторыми хитростями в реализации парсера и процедуры его тестирования. Данная статья будет полезна тем, кто хочет подробнее разобраться в использовании средства ANTLR v2.Читать полностью »

в 22:37, , рубрики: cxf, java, JAX-RS, JAXB, jboss, Jersey, rest, Resteasy, RESTful, метки: , , , , , , , ,

Введение

Выросло данное API из JSR 311: JAX-RS: The Java API for RESTful Web Services и вошло в Java SE 5. Как видно из названия, предназначено оно для разработки RESTful веб-сервисов.

Основная цель данной статьи — познакомить читателя с основами JAX-RS API. Изначально я планировал написать о некоторых проблемах работы форм при использование JAX-RS сервиса. Не обнаружив на Хабре почти ничего, касающегося данной технологии понял, что введением к статье отделаться не удастся.

Будут представлены основы JAX-RS API, реализация от JBoss и дано небольшое введение в клиентскую часть фреймворка Resteasy.
Читать полностью »

Java характеризуется динамической загрузкой классов. Для поиска и загрузки используется механизм делегирующих classloader'ов. В Java SE окружении их количество ограничивается 2-3, но в серверах приложений оно приближается к 10 иерархическим classloader'ам. Этим объясняется большое время запуска (обычно от минуты) и деплоя приложений.

В JBoss AS 7 разработчикам удалось сильно сократить время запуска (пустой appserver запускается за 3-4 секунды на рабочей станции). Этому способствовала новая система загрузки классов в данном сервере приложений. Такой подход всё же обладает своими недостатками.

Данная статья касается механизма загрузки классов в различных окружениях, особенностях работы с JBoss AS 7, сопряжения с системой сборки Apache Maven и IDE IntelliJ IDEA.
Читать полностью »

Реализация алгоритма сортировочной станции на Java У меня возникла необходимость вычислять в Java-приложении значения формул, вводимых пользователями (да еще и так, чтобы приложение понимало комплексные числа). Внимание сразу привлекла библиотека Jep, но ввиду определенных ограничений использовать ее не представилось возможным. Поэтому я решил написать свой парсер, используя Алгоритм Дейкстры для преобразования входной записи из инфиксной нотации в постфиксную, также известный, как Алгоритм сортировочной станции. Он довольно прост, но в то же время элегантен, и я получил удовольствие, реализовывая его. Заинтересовавшихся — прошу под кат.

Читать полностью »

Статья ориентирована больше на новичков, или тех, кто еще не работал с данным механизмом в языке. Я постараюсь рассказать, что это такое, зачем они нужны, и как можно самому создавать удобные для себя аннотации.

Аннотации представляют из себя дескрипторы, включаемые в текст программы, и используются для хранения метаданных программного кода, необходимых на разных этапах жизненного цикла программы.
Информация, хранимая в аннотациях, может использоваться соответствующими обработчиками для создания необходимых вспомогательных файлов или для маркировки классов, полей и т.д.
Читать полностью »

Австралийский разработчик Мэтт Квэн (Matt Kwan) создал X-сервер для Android (на Java), который уже можно скачать в Android Market, исходный код также опубликован на Google Code (лицензия MIT или Apache).

X-сервер реализует протокол X11 на Android-устройствах, то есть позволяет отображать на планшете/смартфоне интерфейс приложения, которое выполняется на другой *nix-машине в сети, например, на десктопе или ноутбуке Linux, MacOS или *BSD. Чтобы сделать это, зная IP-адрес планшета, достаточно просто указать в переменной display IP-адрес планшета сЧитать полностью »

Прими участие в опросе! Подробности под катом.Open source / Oracle vs Open Source. Ваше мнение?

В марте, но год назад, в интернете появилась картинка с результатами опроса участников конференции JavaOne. Цель исследования была в том, чтобы определить, как отразилась покупка Oracle'ом компании Sun Microsystems на взаимоотношениях с OpenSource-сообществом. Я подумал, что спустя год, можно повторить этот опрос, но уже в рамках хабра. Вопросы пришлось немного перефразировать, но думаю, что общий смысл мне удалось сохранить.

Читать полностью »

23.16%
(41)
Продолжит снижаться популярность открытых проектов Oracle/Sun, таких как MySQL.

23.73%
(42)
Политика Oracle, в частности, судебный иск к Google, плохо отразится на Java.

16.38%
(29)
Цены на продукты, связанные с такими открытыми проектами, как MySQL, будут расти.

23.16%
(41)
Ларри Эллисон заслуживает того, чтобы его окунули в бочку с водой (dunk tank).

Читать полностью »


Введение

Spring Data позволяет легче создавать Spring-управляемые приложения которые используют новые способы доступа к данным, например нереляционные базы данных, map-reduce фреймворки, cloud сервисы, а так же уже хорошо улучшенную поддердку реляционных баз данных.

В этой статье будет рассмотрен один из под-проектов Spring Data — JPA

Что может Spring Data — JPA

  • Создание и поддержка репозиториев созданных при помощи Spring и JPA
  • Поддержка QueryDSL и JPA запросов
  • Аудит доменных классов
  • Поддержка порционной загрузки, сортировки, динамимических запросов
  • Поддержка XML мэппинга для сущностей

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js