Разрабатывали систему Виджетов для нашего сервиса, которые должны устанавливаться на "чужие" сервера, обращаться к нашему сервису, а потом строить графики, отчёты. После выпуска релиза оказалось, что мы при тестировании пропустили кросс-доменное (Cross-domain) тестирование. И у нас выскочила ошибка вида
Долго возился с решением этого вопроса. Даже поиск не помогал. Итак имеем задачу, при компиляции flex приложения с использованием maven (flexmojos-maven-plugin) необходимо использовать аналог параметра компиляции -compiler.include-libraries. В конфигурации самого плагина такого параметра не предусмотрено. Выход оказался очень прост: для этого в элемент зависимости надо вставить тег scope. Вот как это должно выглядеть:
Подробнее: Подключение библиотек при компилировании flex приложения через maven
В данном примере мы создадим простой проект в котором мы используем инструмент сборки проектов Maven 2, фреймоврк Spring, ORM Hibernante, и библиотеку для тестирования JUnit.
Передо мной встала задача определить следующее время, когда сработает cron-выражение. Надо заметить, что у нас в проекте на стороне сервера используется библиотека Quartz. Для решения этой задачи нашёл выход в виде выражения
Некоторое время назад я задался вопросом, как организовать корректное тестирование серверной части своего приложения. Входные данные для решения этой задачи были следующими. Приложение работает на основе БД postgres 8.4, создания скелета приложения используется Spring 3, приложение собирается при помощи maven 2.1. Для тестирования была выбрана связка JUnit и DBUnit.
Встала передо мной задача сделать водяной знак во Flex приложении, чтобы в итоге получилось как на картинке:

Решение оказалось не самым тривиальным:
При использовании Air инсталятора от Adobe у меня возникла неприличная ситуация. При начале процесса скачивания приложения, появляется следующее окно с ошибкой
Во флексе есть удобный по своей задумке компонент AdvancedDataGrid. Для пользователя это очень удобный компонент, который может делать приятные вещи. Но для разработчиков этот компонент сущая головная боль. Одним из вопросов часто бывает, а как вставить контекстное меню в таблицу, ведь нажатие правой клавиши мыши не приводит к выделению компонента, да из самого события нельзя понять куда же пользователь кликнул мышкой. Следовательно нет возможности правильно отобразить контекстное меню.
Необходимо стало мне сделать автоматическую сортировку AdvancedDataGrid по одному из столбцов. Долго я ходил окольными путями пока не нашёл самый простой выход.
Рассмотрев некоторые аспекты работы с применением Parsley можно сформулировать некоторые аспекты как данная библиотека поможет нам построить гибкое, масштабируемое и, самое главное, хорошо разделённое на модули приложение.
Подробнее: Создание Flex-приложений c использованием Parsley. Часть 3, MVC
В предыдущей статье, я начал рассказ о технологии, которая позволяет гибко конфигурировать Flex приложение, где рассмотрел первый аспект, а именно связывание различных компонентов приложения в одно целое. В данной статье хочу подробнее остановиться на организации модели обмена данными в приложении созданном с использованием Parsley.
Подробнее: Создание Flex-приложений c использованием Parsley. Часть 2, обмен данными
Подробнее: Создание Flex-приложений c использованием Parsley. Часть 1, связывание
В прошлой статье я описал настройку связи Java сервера и Flex (Air) келиента, используя BlazeDS под управлением Spring. В этой статье мы добавим связь с БД (Postgres 8.3) используя набор библиотек Hibernate3.
Подробнее: Связываем Flex(Air) и Базу данных, используя RemoteObject, BlazeDS, Spring и Hibernate
Жизненый цикл компонентов во flex, похож на тот, который был в предыдущей 2-ой версии, когда вы создаёте хранилище, добавляете дочерние объекты, задаёте размер и генерируете событие. Следующие четыре метода играют роль для отображения компонента.
Встала передо мной интересная задачка, написать маленькое Air приложение, которое получала бы данные с Java сервера. Использовать XML для таких задач - это против моей сущности. Не люблю я это дело. По этому сразу был взят курс на технологии LiveCycleDs и BlazeDs. Первая технология хороша, но очень уж дорога. BlazeDS бесплатна и свободо распрострянается. Её возможностей более чем за глаза хватает для решения поставленной передо мной задачи. Т.к. задача предполагает обращение к БД, то в дальнейшем планируется использовать Hibernate. И чтоб не завязываться на ручное инициализирование сессий и разруливание всяких проблемм с пулом соединений было принято решение использовать Spring для связи всё в единое пространство на стороне сервера.
Подробнее: Связываем Java и Flex в Air используя BlazeDs через Spring
Очень часто бывает, что при использовании Hibernate, на серверной стороне Java, для исключения избыточности данных, часть полей помечаются как ленивые (lazy="true"). И в этом случае, когда данные сериализуются для передачи данных во Flex-уровень возникает LazyInitializationException. Очень желательно оградить такие поля от сериализации, так же бывает необходимо по различным причинам исключить часть полей из сериализации из Java-уровня во Flex.