Как стать автором
Обновить
170.69

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Обновление IntelliJ IDEA 11.1

Время на прочтение2 мин
Количество просмотров14K
image

Вчера на сайте JetBrains стала доступна для скачивания новая версия среды разработки на Java – IntelliJ IDEA 11.1.

Как всегда IntelliJ IDEA доступна в двух версиях: Ultimate – полная платная версия, а также Community Edition – бесплатная Open-source версия. Владельцы лицензии IntelliJ IDEA 11 Ultimate имеют возможность бесплатного обновления до 11.1.

Попробуем ознакомиться с тем, что нас ждет в новой версии продукта.
Читать дальше →

Вышла новая версия Apache POI 3.8

Время на прочтение5 мин
Количество просмотров32K
26 Марта вышел новый релиз библиотеки Apache POI — версии 3.8.

Apache POI — это библиотека на языке Java для чтения и записи документов Microsoft Office,
таких как Excel, PowerPoint и Word. С помощью POI вы можете программно создавать новые
или изменять существующие документы, индексировать текст, обрабатывать вложенные
(embedded) объекты (документы, картинки и т.д.) и много чего другого.

Предыдущая стабильная версия Apache POI вышла полтора года назад, в Октябре 2010 года,
поэтому изменений накопилось порядочно. Исправлено более 200 багов, добавлены многочисленные
новые фичи и улучшена общая производительность.

Читать дальше →

Среды разработки на Java, или от Netbeans к Eclipse

Время на прочтение2 мин
Количество просмотров75K
В одной из крупных гос. компаний ведем небольшим коллективом разработку САПР на платформе Java
Проекту уже полтора года.
До недавнего времени все дружно использовали IDE Netbeans. Периодически радовались новым версиям среды.
И вот ваш покорный слуга увидел релиз Netbeans 7.1. Захотелось попробовать, посмотреть новинку.
Сначала обновил себе (Slackware Linux 12.2). Запустил, открыл проект, собрал (скомпилировал).
Все прошло нормально. Посоветовал коллеге (Windows 7), сам продолжил работу в новой версии.

Тут началось невообразимое. Сборка проекта прошла нормально, а при его выполнении появились странные Exception-s. При щелчке на Exception редактор Netbeans открыл пустое место в коде, где был вообще комментарий, а не какой-либо метод.
При этом сборка того-же проекта вручную с помощью Ant и последующий запуск из командной строки дали абсолютно корректный результат.

Был сделан вывод, что Netbeans 7.1 запускает какой-то собственный кэш, а не только что скомпилированные Java-классы!
Читать дальше →

Истории

Исследование платформ для сервера minecraft. Создание собственного сервера Minecraft

Время на прочтение13 мин
Количество просмотров37K

Содержание


1. Содержание
2. Цели и задачи
3. Выбор платформы для сервера
4. Описание проекта
5. Выводы и перспективы
6. Инструкция для пользователей
7. Список литературы

Цели и задачи


Цель
Создать популярный игровой сервер для игровой программы minecraft.
Читать дальше →

Обзор новых возможностей в playframework v2

Время на прочтение4 мин
Количество просмотров5.7K
Доброго времени суток всем. Хотел бы представить вашему вниманию небольшое описание новых возможностей Play 2. Речь в данной статье пойдет о play2 scala.
Читать дальше →

Интеграция DBUnit и Spring TestContext Framework

Время на прочтение8 мин
Количество просмотров13K
С появлением в Spring 2.5 фреймворка TestContext интеграционное тестирование кода, работающего с базой данных, существенно упростилось. Появились аннотации для декларативного указания контекста, в котором должен выполняться тест, аннотации для управления транзакциями в рамках теста, а также базовые классы тестов для JUnit и TestNG. В этой статье я опишу вариант интеграции фреймворка TestContext с DBUnit, позволяющим инициализировать базу данных и сверить её состояние с ожидаемым по окончании выполнения теста.
Читать дальше →

Обзор Typesafe Stack 2.0 и введение в модель акторов на примере Akka 2.0

Время на прочтение7 мин
Количество просмотров13K
image

Typesafe Stack — современная программная платформа, которая обеспечивает возможность создания легко масштабируемых программных систем на Java и Scala. Стек функционирует на JVM, включает в себя фрэймворки Akka 2.0 и Playframework 2.0. Ядром платформы, которое обеспечивает практически неограниченную масштабируемость разрабатываемой системы, является библиотека Akka, реализующая многозадачность на основе модели акторов.
Читать дальше →

Проблемы передачи utf-8 из формы в JAX-RS (REST)

Время на прочтение3 мин
Количество просмотров23K

Введение


Для передачи данных от интерфейса веб-приложения есть несколько методов, но, пожалуй, самый распространенный — отправка формы с MIME-type application/x-www-form-urlencoded. Ещё один вариант — multipart/form-data.

В качестве серверной технологии для приема могут использоваться контроллеры в MVC-фреймворках (из основных Java-технологий следует упомянуть Spring MVC, Java Server Pages, Java Server Faces. Но эти фреймворки довольно сильно осложняют жизнь разработчику интерфейса, если он не знаком с Java или нужен шаг в сторону от того, что позволяет фреймворк. В случае же экспонирования REST-интерфейса бэкендом приложения разработкой фронта упрощается: ей может заниматься человек, знающий базовый javascript и jquery, независимый от разработки бэка. Кроме того, даже при использовании шаблонизатора, выбор сильно расширяется: Apache Velocity, FreeMarker (стоит упомянуть, что Spirng MVC неплохо интегрируется с последними). Тогда данные из формы на стороне сервера записываются в бины, с которыми связан данный view/controller. Правда, у JSF тоже наблюдалась генетическая проблема с кодировками, рассмотрение которой — тема для отдельной статьи.

Краткое введение в JAX-RS было дано в предыдущей статье. И экспонированный через JAX-RS интерфейс может принимать GET и POST запросы с данными форм. О проблемах данного подхода при использовании не-latin-1 и пойдет речь в данной статье.
Читать дальше →

Пишем кеш с определенным временем хранения объектов с использованием java.util.concurrent

Время на прочтение4 мин
Количество просмотров22K
Не так давно, мне выпала задача, написать кеш, который сам себя чистит по истечению некоторого определенного времени. Требования к нему были следующие:
  1. Легковесность
  2. Потокобезобасность

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

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

Разработка парсера PHP средствами ANTLR

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

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

Основы JAX-RS

Время на прочтение4 мин
Количество просмотров140K

Введение


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

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

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

Загрузка классов в серверах приложений, особенности JBoss AS 7

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

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

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

Ближайшие события

Облегчаем вес приложения при деплое на сервер приложений Apache Tomcat

Время на прочтение2 мин
Количество просмотров5K
Очень часто вес приложения, которое мы выкладываем на сервер достигает неприлично больших размеров из-за включения в него всех нужных зависимостей. У меня в конечном итоге приложения занимают от 20 до 50 метров. Деплой таких war-ов на удаленный сервер, на Tomcat, дело не одной минуты, а при плохой связи и вовсе становится проблематичным. Класть библиотеки в ${tomcat.home}/lib дело очень неблагодарное и зачастую опасное. Мы на фирме немного погуглили и нашли очень приятное решение на DZone. Хочу с вами поделиться…
Читать дальше →

Аннотации в JAVA: обзор синтаксиса и создание собственных

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

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

Участие в работе над JavaFX

Время на прочтение1 мин
Количество просмотров2.1K
Stephen Chin, автор проекта JFXtras, предлагает желающим возглавить проект. Аргументирует своё решение отсутствием времени из-за работы над книгой по JavaFX.

image

Участники проекта JFXtras тесно сотрудничают с Oracle (либо являются штатными работниками Oracle). JFXtras служит инкубатором для новых компонентов JavaFX, часть из них войдёт в официальный релиз JavaFX 3.0.

Ссылка на письмо С.Чина — http://groups.google.com/group/jfxtras-users/browse_thread/thread/437d8f8f25faafc2. В комментариях к его письму можно предложить своё участие, если кому интересно.

Создание spring beans из обычных классов и юнит тесты

Время на прочтение3 мин
Количество просмотров7K
У нас и rich client, и сервер активно используют Spring. И очень быстро возникла проблема — как использовать спринг бины из обычных классов (которые сами — не бины).

Сначала возникли две идеи — передавать им нужные бины как аргументы в конструкторе или использовать какое то статическое поле для хранения Spring context.
Первая идея была признана порочной. Получается, что ныжные сервисы надо тянуть через длинную череду конструкторов.
Вторая идея тоже была признана порочной — возникает вопрос кто и когда будет инициализировать это поле и что будет происходить с юнит тестами.

Вскоре я нагуглил в интернетах такой красивый вариант:
Читать дальше →

Почему IDEA лучше Eclipse

Время на прочтение5 мин
Количество просмотров214K

Священный спор


Принято считать, что есть «вечные» вопросы, на которые нет правильного ответа. Например, что лучше: Windows или Linux, Java или C#; Чужой против Хищника или Чак Норрис против Ван Дамма.

Одним из таких холиваров считается выбор лучшей IDE для Java:


Идут постоянные споры о том, в которой из них больше плагинов, горячих клавиш и т.д. Различий так много, что трудно выбрать, какие из них важнее, и все сходятся в одном: обе IDE примерно одинаковы по своим возможностям, и выбор одной из них — это дело вкуса.

Так вот, я утверждаю, что это не просто дело вкуса. Есть объективные причины, почему
Intellij IDEA однозначно лучше, чем Eclipse.

Подчёркиваю, мы сейчас рассматриваем обе среды именно как Java IDE.

Я не буду приводить кучу мелких различий вроде плагинов, горячих клавиш и т.п. — этому посвящены многие страницы в интернете, а объясню лишь одно, самое главное отличие. Как правило, о нём не знают ни идеяшники, ни эклипсофилы, ибо первые привыкли к нему и не знают, что в других IDE этого может и не быть, а вторые привыкли жить без него, и даже не догадываются, что может быть лучше. Более того, эклипсники его не замечают, когда пробуют IDEA ради интереса, ибо привыкли работать по-старому.

Итак, главное различие между IDEA и Eclipse

Java Day 2012. Впечатления

Время на прочтение2 мин
Количество просмотров1.8K
Хочу вам рассказать немного о Java Day, который случился 10 февраля. Сразу поясню, почему публикую так поздно — первоначально идея была в том, чтобы сравнить Java Day с семинаром Red Hat (читайте в моём следующем посте), но мероприятия оказались настолько разными, что писать о них «вперемешку» нет никакого смысла. Вообще-то, пост будет не столько описанием того, что там происходило (такое уже публиковалось), сколько о впечатлениях, которые у меня остались.

Я уже посещал ранее «Sun Tech Days», но тогда мероприятие проходило «под крылом» Sun, поэтому, честно говоря, я ехал посмотреть, насколько Oracle всё испортила. :-) К счастью, сильно разочароваться мне не пришлось, хотя влияние нового владельца Java всё же было очень заметно.
Читать дальше →

Debug методов в Documentum Process Builder’е

Время на прочтение3 мин
Количество просмотров2.2K
Добрый день!
По роду работы (Documentum developer) столкнулся с необходимостью отлаживать процессы, которые создаю в Process Builder. Нашёл простой способ это сделать. И вот этим знанием хотелось бы поделится с разработчиками Documentum, которые наверняка присутствуют на Хабре.

Введение


Рассмотрим процесс локальной отладки метод, вызываемых активностями в Process Builder’е (PB) в режиме в Debug. Причины этого очевидны – для отладки и проверки на минимальную работоспособность методов не нужно «заливать» их в Java Method Server (JMS) с его рестартом. И ладно если с ним работаешь только ты один, а если несколько человек одновременно разрабатывают свои методы?
Читать дальше →

Вклад авторов

Работа

Java разработчик
225 вакансий