Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

The Art Of Programming — Выпуск №25 / Как готовить OSGi

Чулан
+ Суровые программисты
+ OSGi
+ Eclipse Rich Client Platform http://www.ozon.ru/context/detail/id/3668952/

П.С. Контакты Павла
beq
http://twitter.com/samolisov
http://samolisov.blogspot.com

П.П.С. Контакты ведущих
http://twitter.com/golodnyj
http://twitter.com/gAmUssA
http://juick.com/golodnyj/
http://juick.com/gAmUssA/
Всего голосов 15: ↑14 и ↓1 +13
Просмотры1.9K
Комментарии 19

Использование Spring в OSGi-контейнере

Java

Вряд ли найдётся Java разработчик, который не знает что такое Spring Framework. Одними из базовых технологий данного фреймворка являются IoC контейнер и поддержка AOP. Эти технологии позволяют успешно разбивать архитектуру приложения на обособленные слои, как на уровне классов, так и на уровне компоновки объектов во время выполнения. Казалось бы, что приложение отлично структурировано на элементы/слои, но по своей сути оно остаётся монолитным. Монолитным во время выполнения (runtime)! Только в рамках данного фреймворка не существует универсальных решений этой проблемы. Чуть меньшее количество Java разработчиков слышало об OSGi. Это спецификация модульных систем для Java платформы. Использование конкретной реализации данной спецификации в качестве основы приложения позволяет сделать его модульным, как во время выполнения, так и на физическом уровне (уровне файлов). О синергии этих технологий и пойдёт речь в этой статье.
Читать дальше →
Всего голосов 49: ↑49 и ↓0 +49
Просмотры42.4K
Комментарии 16

@Autowired для сервлетов в OSGi-контейнере

Java
Из песочницы
Вместо введения отправляю читателя к отличной статье Использование Spring в OSGi-контейнере которая и послужила отправной точкой для практического изучения.
Итак, к делу. Рассмотрим классический вариант — есть бизнес-логика приложения и она как-то
взаимодействует с внешним миром. Используем такую связку:
клиент <-> транспорт <-> приемник <-> сериализатор/десериализатор <-> метод бизнес логики.
Сериализатор напрашивается заменяемым модулем, например сериализация в JSON или сериализация в XML.
Про бизнес-логику далее можно забыть, и сосредоточиться на связке приемника и сериализатора.
В качестве приемника используем сервлет, а для сериализатора, для простоты, используем реализацию следующего интерфейса:
Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры3.1K
Комментарии 2

«Разбор полетов» — episode 3 — Горький вкус загрузки классов

Чулан
Я и коллега aib представляем вашему вниманию третий выпуск уже ставшего популярным в узких кругах, разговорного IT-тематического подкаста «Разбор Полетов».
В этом выпуске:
Читать дальше →
Всего голосов 16: ↑13 и ↓3 +10
Просмотры808
Комментарии 5

Hibernate-Extender или Hibernate, Spring и OSGi

Java

К сожалению, на данный момент Hibernate не обладает необходимыми механизмами интеграции для работы в OSGi среде, хотя подвижки в этом направлении заметны (начальная OSGi-фикация путём разделения пакетов в 4-ой ветке). Это побуждает разрабатывать собственные механизмы, что требует немалых дополнительных усилий.

Эта статья предназначается для тех разработчиков, кому интересно: как можно использовать Hibernate со связкой Spring+OSGi; что такое паттерн Extender; как реализовать ClassLoader со специфичным поведением; как поддерживается Hibernate в Spring Framework и немного о расширении этого кода. Разумеется, для чтения статьи необходимо разбираться в технологиях Spring, Hibernate, OSGi, а также понимать основные проблемы выполнения кода в многопоточной среде. Те же кто незнаком с использованием Spring Framework в OSGi среде могут обратиться к вводной статье «Использование Spring в OSGi-контейнере».

Весь представленный код является частью учебного проекта ссылка на который расположена в конце статьи. Поэтому просьба рассматривать все представленные примеры скорее как прототип, нежели как готовые к использованию фрагменты.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Просмотры5.7K
Комментарии 2

Поделись опытом и послушай Java-гуру на Сиклум Java Субботнике 11 февраля

Блог компании Ciklum
Мы снова открываем сезон Сиклум Субботников в Киеве! Наш прошлый Сиклум Java Субботник в столице Украины был настоящим фуррором — его посетили 150 человек! Видя такой интерес и учитывая пожелания встретиться вновь, мы решили повторить :) и организовать еще одно полезное и приятное мероприятие для всех, кто программирует или только собирается начинать работать на Java.

По традиции, мы приглашаем всех желающих бесплатно посетить Сиклум Java Субботник 11 февраля в нашем киевском офисе

Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Просмотры3.2K
Комментарии 0

OSGi in banking environment. Ciklum Speakers' Corner в Киеве

Блог компании CiklumJavaIT-стандарты
17 Июля город Киев. Speakers' Corner: «OSGI in banking environment»


Приглашаем неравнодушных Java разработчиков обсудить возможности OSGi (Open Services Gateway Initiative) — спецификация динамической плагинной (модульной) шины для создания многофункциональных Java десктоп-приложений и энтерпрайзных систем.

Наш гость из Женевы, Java специалист с 15-летним опытом Fulco Houkes расскажет об использовании OSGi для банковской инфраструктуры. Внимание! Доклад и обсуждение будут проходить на английском языке без перевода!

Темы к обсуждению:
• Banking challenges
• An elegant solution: OSGI
• What is OSGI?
• OSGI best practices & pitfalls
Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Просмотры2.4K
Комментарии 2

Stand-alone приложение RAP

AjaxJava
Из песочницы
Приветствую всех! Это моя первая статья, потому просьба отнестить с пониманием.

С тех пор как я впервые увидел RAP и OSGi — прошел год, но с первого взгляда я просто влюбился в эти технологии. К сожалению даже в сети очень мало документации по RAP, позволяющей написать что-то крутое (кроме hello world) с нуля. Для начала, конечно, нужно знать что такое OSGi. По этой теме инфы в сети достаточно — можно загуглить. Так как статья о RAP, подразумевается, что читатель уже знает как создавать OSGi бандлы, как их устанавливать и запускать.

То есть задача ставится так: «сделать кастомный интерфейс сайта заюзав RAP». Как создать в Eclipse проект OSGi бандла, читатель, я предполагаю, знает.
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Просмотры3.4K
Комментарии 8

Cборка target platform. Equinox для разработчика

Java
Когда я начинал пользоваться OSGi вопрос, собственно, разработки и отладки встал сам собой. Отлаживать самостоятельное приложение на платформе, которая встроена в Eclipse было нерационально, слишком много бандлов он содержит и слишком много зависимостей — это с одной стороны. С другой стороны не хотелось, чтобы платформа расширялась при каждом обновлении Eclipse и обрастала новыми зависимостями. Короче говоря, мне от платформы нужен был только Jetty, OSGi консоль, EclipseLink и RAP/RWT.

Я хотел полностью контролировать состав среды выполнения и отлаживать проект именно в ней. А для этого надо было выделить OSGi платформу из Eclipse и натравить его на нее обратно. Как это сделать — я расскажу в этой статье.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры4.4K
Комментарии 3

Межбандловое взаимодействия. Equinox для разработчика

Java
И снова здравствуйте! И снова много кода в качестве тьюториала. ;)

В среде OSGi понятие бандла является базовым. Как следует из его назначения, бандл, как компонент системы, с момента запуска способен жить собственной жизнью и реализовывать какие-либо сервисные функции.

В этом посте я хочу рассказать как бандлы могут общаться между собой.
Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Просмотры3.6K
Комментарии 5

Интервью с Майклом Баснайтом (Michael Basnight), техническим руководителем проекта OpenStack Trove

Блог компании Mirantis/OpenStackOpen source
Перевод
Мы представляем восьмое из серии интервью с техническими руководителями проекта OpenStack в блоге Mirantis. Наша цель – обучить более широкое сообщество технических специалистов и помочь людям понять, как они могут внести вклад в проект OpenStack и извлечь из него выгоду. Естественно, ниже изложена точка зрения интервьюируемого, а не компании Mirantis.

Ниже приведено интервью с Майклом Баснайтом (Michael Basnight), техническим руководителем проекта OpenStack Trove.
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры1.9K
Комментарии 0

Интеграция RWT/RAP + Jetty + JAX-WS

Разработка веб-сайтовJava
Tutorial
При разработке RAP/RCP приложения у меня возникла проблема: как сделать кастомные error-pages и интегрировать их в embedded jetty. В интернете есть множество обучалок тому, как это сделать, если вы встраиваете Jetty в свое приложение. Но с RWT все сложнее. RWT сам занимается запуском Jetty и стартует его как managed service. При этом сам интерфейс Jetty скрыт от других бандлов и работать с ним напрямую не получится.
Я пошел немного дальше и решил расширить фнкциональность до исполнения любых сервлетов тем самым Jetty, который встроен в RWT приложение. И, самое главное интегрировать JAX-WS веб-сервисы туда же. Сочувствующим, добро пожаловать под кат.

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры3.6K
Комментарии 0

Ведущий представитель IT-мира расскажет о модульной разработке программ как об основном инструменте гибкой разработки в рамках серии вебинаров Luxoft

Блог компании Luxoft
Приглашаем Вас посетить третий вебинар из серии LTS, который состоится 29 января в 16:00 GMT+1 (19:00 МСК, 17:00 Киев). Пол Беккер (Paul Bekker) – архитектор программного обеспечения в Luminis Technologies и является автором книги «Как использовать OSGi для разработки модульных облачных приложений», расскажет о модульной разработке программ как об основном инструменте гибкой разработки.

Пол Беккер, являясь архитектором программного обеспечения и писателем, считает, что модульная и облачная разработка – два основных направления, которыми необходимо заниматься для того, чтобы подняться на новый уровень развития технологии, и Пол работает над тем, чтобы сделать это возможным для сферы разработки программного обеспечения в целом.
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры3K
Комментарии 0

MyBatis и OSGi

Java
Из песочницы

Поднятие MyBatis


Мало кто предполагает, какие трудности постигают нас на пути внедрения уже знакомых технологий в новые системы. Одна из не очевидных трудностей — это подружить MyBatis с OSGi компонентами. Самая неординарная трудность — это спрятать свои классы в приватную часть системы. Мы ведь не хотим выставлять свои объекты наружу. Как в корпусе телефона прячем свою SIM карту и MicroSD карту. Да, мы знаем, что эти штуки есть, но ни кому показывать не хотим. То же самое с объектами внутри OSGi компонента (bundle).

Так вот, MyBatis, будучи сторонней библиотекой, не может достучаться до приватных объектов. А нам так хочется закрыть от всех свои тайны. Аж руки чешутся и стул скрипит от нетерпения.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры9K
Комментарии 16

Лучше в райнтайме, чем никогда: расширяем API JIRA «на лету»

JavaAPI
Из песочницы
Что делать, если имеющегося в приложении API для решения задачи недостаточно, а возможности оперативно провести изменения в код нет?



Последней надеждой в этой ситуации может быть применение средств пакета java.lang.instrument. Всем, кому интересно, что и как в Java можно сделать с кодом в уже запущенной VM, добро пожаловать под кат.
Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Просмотры6.9K
Комментарии 6

Обновление кода приложений на работающем сервере

Блог компании NetcrackerПрограммированиеJava

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

Чтобы лучше понимать масштаб данных операций, просто представьте, что банк не смог осуществить многомиллионный платеж клиента или что какая-либо из диспетчерских систем аэропорта «Хитроу» решила обновиться во время взлета самолета. Едва ли подобный сценарий допустим в сегодняшних реалиях.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры9.3K
Комментарии 3

Как запустить Java-приложение с несколькими версиями одной библиотеки в 2017 году

Java
Из песочницы

Как запустить Java-приложение с несколькими версиями одной библиотеки в 2017 году


КДПВ, ничего интересного


Хочу поделиться решениями одной проблемы, с которой мне пришлось столкнуться, плюс исследование данного вопроса в контексте Java 9.


дисклеймер

Писатель из меня ещё тот (пишу в первый раз), поэтому закидывание вкусными помидорами с указанием причин только приветствуется.
Сразу договоримся, что статья не годится в качестве руководства по:


  • Java 9
  • Elasticsearch
  • Maven

Если по последним именам информации в сети полно, то по первому… со временем появится, по крайней мере здесь есть необходимая информация.


Представим себе простую ситуацию: разворачиваем кластер Elasticsearch и загружаем в него данные. Мы пишем приложение, которое занимается поиском в этом кластере. Поскольку постоянно выходят новые версии Elasticsearch, мы привносим в кластер новые проблемы фичи с помощью rolling upgrade. Но вот незадача — в какой-то момент у нас сменился формат хранимых данных (например, чтобы максимально эффективно использовать какую-то из новых фич) и делать reindex нецелесообразно. Нам подойдёт такой вариант: ставим новый кластер на этих же машинах — первый кластер со старой схемой данных остаётся на месте только для поиска, а поступающие данные загружаем во второй с новой схемой. Тогда нашему поисковому компоненту потребуется держать на связи уже 2 кластера.

Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры11.8K
Комментарии 2