Обновить
512K+

Java *

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

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

Введение в Nashorn

Время на прочтение3 мин
Охват и читатели39K

Введение


imageNashorn* — движок JavaScript, разрабатываемый полностью на языке программирования Java компанией Oracle. Основан на Da Vinci Machine (JSR 292) и будет доступен в составе Java 8 (релиз которой ожидается в марте 2014 года). Стоит отметить что выполнение JavaScript (и поддержка скриптов в целом) была уже в Java 6, но в ней использовался движок Rhino, также написанный на Java, но поддерживаемый Mozilla Foundation.

О списке нововведений в Java 8 уже писали ранее. В данной статье будет приведена пара простых примеров, которая даст вам представление об использовании Nashorn.
Читать дальше →

Сериализация в Java: как заглянуть внутрь черного ящика

Время на прочтение9 мин
Охват и читатели16K
Испокон веку в Java есть чудесный механизм сериализации, который позволяет, не прилагая особых умственных усилий, сохранять в виде последовательности байт сколь угодно сложные графы объектов. Формат хранения хорошо документирован, есть куча примеров, сериализованные объекты «весят» вполне себе немного, пересылаются по сети на раз, есть куча возможностей для кастомизации… Все это звучит прекрасно, но только до тех пор, пока вы не останетесь один на один каким-нибудь многомегабайтным бинарным файлом, содержащим очень-очень ценные и нужные именно сейчас данные.

Как голыми руками залезть в этот файл, и понять, что же хранится внутри этого огромного сериализованного графа объектов, не имея исходного кода? На эти и многие другие вопросы может ответить Serialysis – библиотека, которая позволит вам детально проанализировать сериализованные java-объекты (сериализованная форма — это мой вариант перевода выражения serial forms, решил не уходить далеко от оригинала). Таким образом можно получить информацию об объекте, которая не доступна через его публичный API. Библиотека также является полезным инструментом при тестировании сериализации ваших собственных классов.
Читать дальше →

Azul Zulu — JVM для облака или просто порт OpenJDK на Windows?

Время на прочтение7 мин
Охват и читатели24K
На конференции JavaOne 2013, которая недавно завершилась в Сан-Франциско, компании Microsoft Open Technologies и Azul Systems анонсировали Zulu — порт OpenJDK для облачной платформы Windows Azure. Учитывая, что три месяца назад Oracle и Microsoft объявили о партнёрстве в области облачных технологий, многие ожидали, что именно Oracle выпустит JVM для облачной платформы от Microsoft. Однако такую JVM выпустила Azul Systems, многолетний лицензиат Java SE, известный своими высокопроизводительными решениями для серваков с большими хипами.

В первой части статьи мы попробуем разобраться, кто такой этот Zulu и что нам от него ожидать. Это только начало пути или уже готовое решение? Во второй части мы перейдём к распаковке Zulu Technology Preview и, в качестве побочного эффекта, посмотрим, чем же Oracle так нашпиговала свою JDK, что та весит в полтора раза больше Zulu.



Многабукф про Java, Azul, Microsoft и Oracle

Копаемся в памяти JVM. Манипуляции с флагами

Время на прочтение4 мин
Охват и читатели25K


HotSpot JVM имеет множество опций для отслеживания происходящего в виртуальной машине: PrintGC, PrintCompilation, TraceClassLoading и т.п. Как правило, они включаются параметрами командной строки, например, -XX:+PrintGCDetails. Однако порой возникает необходимость включить или выключить такой флаг непосредственно во время работы приложения, когда перезапуск JVM с другими параметрами невозможен. Этого можно добиться как штатным, так и хакерским способом, причем последний и мощнее, и интереснее. Впрочем, внимания заслуживают оба.

Из данной статьи вы узнаете:

  • где найти все флаги JVM, и на какие типы они делятся;
  • как прочитать или установить флаг программно, используя JMX;
  • как найти нужную область в памяти виртуальной машины и испортить модифицировать ее.

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

Наконец-то! Hard-float Oracle Java на Raspberry Pi

Время на прочтение1 мин
Охват и читатели6.4K
Одной из основных целей создания и поддержки Малинки была поддержка всех основных языков программирования. Однако, до недавнего времени нерешенной проблемой оставалась Java.
Как стало известно примерно 12 часов назад, наконец-то в репозитории Raspbian была добавлена hard-float Oracle Java 7 JDK.
В последующие сборки Raspbian Java JDK будет включена автоматически, а пока ее можно установить ручками:
sudo apt-get update && sudo apt-get install oracle-java7-jdk

HBase, загрузка больших массивов данных через bulk load

Время на прочтение4 мин
Охват и читатели12K
Привет коллеги.
Хочу поделиться своим опытом использования HBase, а именно рассказать про bulk loading. Это еще один метод загрузки данных. Он принципиально отличается от обычного подхода (записи в таблицу через клиента). Есть мнение, что с помощью bulk load можно очень быстро загружать огромные массивы данных. Именно в этом я решил разобраться.
Читать дальше →

Победители Duke's Choice Awards 2013

Время на прочтение3 мин
Охват и читатели4.6K
Привет Хабр!

Прошел ровно год с тех пор, как наш проект Jelastic получил самую престижную награду в мире Java — Duke's Choice Award (в рамках конференции JavaOne). Еще раз спасибо всем хабравчанам за поддержку!

В этом году мы также активно принимаем участие в конференции JavaOne, правда уже не в качестве номинантов. Мы рады находиться в самом эпицентре событий и сегодня хотим предоставить вашему вниманию короткий обзор победителей Duke's Choice Award 2013, ведь такую награду удается заполучить только самым инновационным, продвинутым и грандиозным Java-проектам:

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

Codenvy Factories: клонирование среды разработки в один клик

Время на прочтение3 мин
Охват и читатели4.1K
Как известно, в данный момент в Сан-Франциско проходит весьма интересный ивент — Java One. Несколько дней презентации достижений индустрии, общения и обмена опытом. Облачные технологии, и облачные IDE в частности, естественно, не упустили момент, чтобы похвастаться своими последними разработками и бета-фишками. Codenvy, среди причих, привлекли внимание к своей демонстрационной кабинке фишкой, позволяющей клонировать среду разработки, конечно же, вместе с проектом. В своей документации компания предоставляет довольно подробную информацию о Codenvy Factory. Я лишь сделаю краткое резюме функционала и приведу пример Factory кнопки:
Читать дальше →

Ускорение вычислений с помощью GPU, теперь на Java!

Время на прочтение2 мин
Охват и читатели23K
Именно так заявил технический директор IBM Джон Дуимович (John Duimovich) в своем выступлении на конференции JavaOne 2013. Он отметил, что ускорители GPU обладают невероятной вычислительной мощью и их применение для вычислений в Java позволит ускорить сложные вычисления и обработку больших массивов данных. Использование GPU для вычислений в Java открывает множество новых перспектив как для Java-разработчиков, так и для производителей GPU.
Читать дальше →

Чтение конфигурационных файлов в Java: nProperty

Время на прочтение10 мин
Охват и читатели90K
image
Многие разработчики сталкиваются с необходимостью чтения конфигурационных (*.ini, *.prop, *.conf, etc.) файлов в разрабатываемых приложениях. В Java есть стандартный класс Properties, с помощью которого можно очень легко загрузить ini-файл и прочитать его свойства. При большом объеме конфигурационных файлов чтение и запись настроек в объекты превращается в очень нудную и рутинную работу: создать объект Properties, конвертировать каждую настройку в нужный формат и записать его в поле.

Библиотека nProperty (Annotated Property) призвана упростить этот процесс, сократив примерно в два раза требуемый код для написания загрузчиков настроек.

Чтобы показать, каким образом возможно обещанное сокращение кода в два раза, ниже приведены два примера: в первом примере используется стандартный класс Properties, во-втором — nProperty.

Прошу под кат за подробностями

Пулы соединений к БД — зачем и почему

Время на прочтение5 мин
Охват и читатели88K
Когда Ваш проект начинает пользуется популярностью и каждая миллисекунда обработки запроса от пользователя становится критической, приходится искать узкие места в системе. Часто больше всего времени занимает выполнение SQL запроса из приложения к базе данных. Попробуем разобраться, что можно оптимизировать в программе при работе с БД.
Читать дальше →

Java-конференция Joker: предварительная программа, Unconference и другие подробности

Время на прочтение6 мин
Охват и читатели6.9K
Привет, хабр!

Как многие из вас уже знают, 15 октября в Питере пройдёт Joker 2013, конференция по Java-технологиям, организатором которой выступает сообщество JUG.ru, а генеральным спонсором — компания «Одноклассники». Конференция ориентирована на профессионалов в области разработки ПО на Java. Участников ожидает более 30 докладов от гуру Java-разработки на русском и английском языках, стенды компаний-лидеров в области Java-разработки и зона свободного общения, где можно будет пообщаться с друзьями и коллегами или просто отдохнуть.

Что ожидает участников:
  • 14 октября: мастер-классы
  • 15 октября: 4 трека, 30 докладов
  • 16 октября: закрытый Unconference!

Подробно о конференции Joker 2013

Багтрекер OpenJDK стал публичным

Время на прочтение2 мин
Охват и читатели8.8K
Привет, хабр!

У меня для тебя отличные новости: OpenJDK-шная JIRA стала открытой для всех! Адрес: http://bugs.openjdk.java.net

В старом сановском багтрекере нумерация багов была сквозной, независимой от проекта. В JIRA всё устроено немного не так: каждый проект, как известно, имеет некоторый префикс (в нашем случае это «JDK»), после которого идёт дефис и номер бага. Соответственно то, что раньше в bugs.sun.com было багом 4459438 в JBS получило номер JDK-4459438.

Узнать подробности!

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

Вышел GlassFish 4.0

Время на прочтение1 мин
Охват и читатели15K
Хотя вышел он еще весной, информация об этом попалась мне на глаза только сейчас, да и на хабре вроде нет упоминаний этого факта.
Читать дальше →

Делимся опытом по интеграции SSO средствами SAML 2.0

Время на прочтение34 мин
Охват и читатели50K
1. Предыстория

Не смотря на то, что функция централизованного входа (Single Sign On, SSO) существует, обсуждается и применяется уже давно, на практике ее внедрение зачастую сопровождается преодолением самых различных проблем. Целью данной статьи будет показать, как реализовать простейший собственный Service Provider 1 (SP) для SAML 2.0 identity provider (idP) и с его помощью осуществить интеграции SSO в Java Web приложение.

Одним из наших последних проектов была подготовка и кластеризация портального решения для крупного университета. В рамках проекта мы столкнулись с задачей реализации (а также кластеризации) функции единой аутентификации для следующих систем:

  1. Liferay version 6.1.20-ee-ga2.
  2. Простое java web-приложение.
  3. Google apps.

Со стороны заказчика были выдвинуты основные требования построения SSO:
  1. Для построения SSO должен использоваться протокол SAML 2.0.
  2. Требуется интеграция с Jasig CAS для поддержания работы уже существующих систем.
  3. LDAP используется для проверки аутентификации пользователей.

В качестве idP решили использовать Shibboleth (http://shibboleth.net/about/index.html) как open source-систему, реализующую в полном объеме протоколы SAML 1.0 && SAML 2.0.

Сложные моменты, с которыми мы столкнулись при решении данной задачи:

  1. Отсутствие экспертизы по работе с протоколом SAML 2.0 и продуктом Shibboleth.
  2. Сырая и еще не достаточно хорошо структурированная документация по Shibboleth от производителя.
  3. Отсутствие качественных примеров по реализации Service Provider’а для интеграции SSO в свое Java Web-приложение.

Преодоление этих барьеров и стало мотивацией для публикации данной статьи. Мы хотим поделиться приобретенными знаниями, помочь разработчикам решать подобные задачи, а также облегчить знакомство с протоколом SAML 2.0.

2. Для кого предназначена статья?

Данная статья ориентирована на следующую аудиторию:
  1. Разработчики, интегрирующие функцию SSO в своих проектах средствами SAML 2.0.
  2. Java-Разработчики, которым нужен практический пример интеграции в свое приложение функции SSO средствами SAML 2.0.
  3. Java-Разработчики, которые хотят опробовать в качестве SSO Identity Provider’а (idP) компонент Shibboleth.

Для понимания статьи рекомендуется иметь минимальные знания по протоколу SAML 2.0.

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

Интеграция Java и 1С через .Net framework на примере Apache PDFBox

Время на прочтение3 мин
Охват и читатели15K

Интеграция Java и 1С через IKVM.Net на примере Apache PDFBox



В сети Интернет мало информации по интеграции Java и 1С. Тем не менее, есть интересные Java-проекты, работу которых хотелось бы оценить внутри 1С. Apache PDFBox – один из таких популярных проектов. Так сложилось, что файлы pdf являются очень распространенными, а 1С не имеет хороших средств работы с данным форматом. Предложенный здесь способ состоит в том, чтобы через утилиту IKVM.NET перевести JAVA-библиотеку в .Net-сборку, а затем использовать эту сборку внутри 1С средствами интеграции.

Apache PDFBox– это библиотека Java для работы с PDF-документами. Позволяет выполнять операции: извлечение текста, печать PDF, слияние и разделение документов, преобразование в изображение, заполнение форм, создание PDF, проверка PDF/A, интеграция с Lucene Search Engine. В примере использована версия 1.8.2.

IKVM.Net – это виртуальная машина Java для Mono и .Net framework. IKVM.Net позволяет конвертировать библиотеку Java в сборку .Net и затем обращаться к библиотеке средствами .Net framework. IKVM.Net содержит много вспомогательных сборок, отвечающих за различные классы Java. В примере используется версия 7.2.4630.5.
Читать дальше →

Работа с шедулером в Java (Spring)

Время на прочтение4 мин
Охват и читатели54K
Недавно, в процессе работы, я столкнулся с задачей управления шедулерами в работающем приложении. У нас серверное приложение, и в конфигурационных файлах Spring мы указывали, какие задачи запускать по таймеру. Однако, далее появилась следующая задача: убирать из списка выполнения эти задачи или же менять cron-таймер, при этом не тормозя приложение.
В процессе гугления и чтения, я нашел, как это сделать. Всё оказалось гораздо проще, чем я думал. Но для того, чтобы это понять пришлось немного почитать.
Вероятно, эта статья будет полезна новичкам, но, возможно, и мастодонты почерпнут для себя что-то новое.
Читать дальше →

Как там Jigsaw?!

Время на прочтение1 мин
Охват и читатели12K
Я думаю, всем интересно в каком состоянии находится проект JigSaw. Модуляризация встроенная в Java платформу, потенциальная замена другим системам, функциональность которая было задержана до JDK 9, хотя изначально предполагалась в JDK 8, и т.д. и т.п.

Вкратце: Jigsaw prototype, take 2

Подробнее с дискуссией можно ознакомиться здесь:
mail.openjdk.java.net/pipermail/jigsaw-dev/2013-August/thread.html
mail.openjdk.java.net/pipermail/jigsaw-dev/2013-September/thread.html

Самая суть происходящего:
1. Марк поставил комьюнити в извесность о том, что проект будет разработан заново.
2. Марк обещал (более) подробный документ о предполагаемых требованиях и имплементации Jigsaw.
3. Этого еще не случилось.

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

Про Selenium и один «велосипед»

Время на прочтение26 мин
Охват и читатели69K
Всем привет!

Я бы хотел рассказать о проблемах, с которыми я сталкивался в процессе освоения Selenium WebDriver, c их решением и тем, как эти решения, в принципе, можно использовать. Все это представлено в виде прототипа фрэймворка, ссылка на который будет в конце статьи.

В этом посте я хочу поделиться своими идеями реализации шаблона Page Object, о том как можно обрабатывать ошибки, возникающие в процессе выполнения тестов, рассказать немного о логгинге. А так же поделиться сведениями о некоторых инструментах, которые реализованы с использованием Selenium WebDriver, и своими наработками.

План моей статьи следующий:

1. Капитан очевидность, вместо вступления.
2. Немного о себе, надо представиться…
3. Почему Selenium?
4. О Page Object…
5. Не баг, а фича!
6. И снова про логгинг и отчетность.
7. А разве нет аналогов?
8. Обещанные ссылки.
9. В заключение.


Итак, поехали!
Читать дальше →

Java-конференция Joker: выбираем доклады вместе!

Время на прочтение2 мин
Охват и читатели5.6K
Хабр, приветствую!

Всё лето мы, питерская Java User Group, занимались подготовкой Java-конференции Joker, которая пройдёт в Петербурге 15 октября. И всё шло хорошо до вчерашнего дня, когда real_ales, который занимается программой конференции, внезапно понял, что заявок на доклады у нас дофига, а мест в программе конференции гораздо меньше.

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

И тогда мы решили провести эксперимент и обратиться к хабровчанам с просьбой оценить, насколько им интересен тот или иной доклад.

Cледует отметить, что даже те хабровчане, которые не придут на конференцию, получат profit от участия в голосовании. Мы планируем сделать видеозапись большинства докладов и выложить в публичный доступ (@alexbel говорит, что если выложить совсем все доклады, как мы сделали в случае апрельской конференции JPoint, то на конфу никто не придёт). Поэтому каждый проголосовавший не-питерец получает возможность увидеть в записи именно те доклады, которые кажутся наиболее интересными именно ему!
Выберем доклады вместе!