Показаны сообщения с ярлыком ADF. Показать все сообщения
Показаны сообщения с ярлыком ADF. Показать все сообщения

воскресенье, 5 июня 2016 г.

Интеграция Oracle JET в ADF (Integration Oracle JET in ADF)

Ранее я рассказывал о том, что в 2015 году Oracle представил набор библиотек  для создания клиентских приложений: http://www.oracle-adf.info/2016/03/oracle-jet.html

В этой статье я хочу рассказать как можно встроить этот набор и использовать его  вместе с ADF. JET часть я возьму с предыдущей  статьи : https://github.com/JealousyM/jet-app

1. Создайте Fusion ADF приложение.
2. Скопируйте Jet файлы во ViewConroller->public_html

суббота, 28 мая 2016 г.

Настройка производительности ADF приложений (ADF performance tuning)

При создании приложений, всегда в какой то момент встает вопрос производительности. Страницы начинают грузиться медленнее, данные с БД долго подгружаются и вообще всё не так. Что бы этого избежать этого , в начале и течении всей  разработки необходимо придерживаться некоторых правил. Об этом я и хочу сегодня рассказать.

Основные рекомендации по настройке

Перед сборкой, настройкой  и деплоем приложения, для достижения оптимальной производительности рекомендуется  выполнить следующее :
  • Конфигурация и профилирование ADF
  • Повышение производительности ADF
  • Настройка атрибутов ADF компонентов
  • Повышение производительности компонентов Table and Tree Components
  • Повышение производительности для  autoSuggest(автозаполнение)
  • Доставка данных( Lazy или Immediate)


воскресенье, 8 мая 2016 г.

Использование WebSocket в ADF (Using WebSocket in ADF)

Начиная с JDeveloper 12.1.3.0  в ADF появилась поддержка Java API for WebSockets.
WebSocket — это протокол связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.Он позволяет пересылать любые данные, на любой домен, безопасно и почти без лишнего сетевого трафика.

Для демонстрации WebSocket в ADF создадим приложение,   в котором будем вводить сообщение в inputtext.

1. Создайте Fusion Middleware  приложение
2. В это приложение  добавьте проект Web Socket Project


пятница, 29 апреля 2016 г.

Интеграция Solr в ADF (Integration Solr in ADF)

Solr  -  платформа полнотекстового поиска с открытым исходным кодом, основанная на проекте Apache Lucene. Её основные возможности: полнотекстовый поиск, подсветка результатов, фасетный поиск, динамическая кластеризация, интеграция с базами данных, обработка документов со сложным форматом (например, Word, PDF). Так как в Solr есть возможность распределенного поиска и репликации, Solr хорошо масштабируем. Solr является самым популярным поисковым движком.

В этой статье я хочу интегрировать поиск Solr в ADF. Я создам таблицу со 100 000 записями, проиндексирую их при помощи Solr а потом найду данные. Начнём.

1. Скачайте последнюю версию Solr(http://lucene.apache.org/solr/downloads.html). Сейчас это 6-ая версия. В скачанном архиве зайдите в папку bin и выполните команду:

solr start

После того как появится сообщение "Waiting up to 30 to see Solr running on port 8983
Started Solr server on port 8983. Happy searching!", вы можете зайти на запущенный сервер(если вы хотите, что бы сервер запустился не на 8983 порте,  используйте параметр -p. Например:  solr start -p 8984 ) :


http://localhost:8983/solr



пятница, 8 апреля 2016 г.

Развертывание ADF приложений в Oracle Java Cloud Service (Build and deploy ADF applications to Oracle Java Cloud Service)

Облачная служба Oracle Java Cloud Service – это PaaS-решение корпоративного класса, предоставляющее комплексную платформу и инфраструктуру для создания, развертывания и обслуживания приложений Java EE. В качестве контейнера приложений используется сервер приложений Oracle WebLogic. Поддерживаются все редакции Oracle WebLogic Server 11g и Oracle WebLogic Server 12c

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

Доступ к службе осуществляется по подписке. На месяц можно оформить бесплатную подписку

В этот статье я хочу рассказать как собирать и развертывать ADF проекты в Oracle Java Cloud Service (OJCS) , а так же  рассказать о его возможностях.

В OJCS для разработки используется сервис Developer. Что бы подписаться на него, нужно   зайти на следующую страницу: https://cloud.oracle.com/developer_service

 


четверг, 17 марта 2016 г.

Полезный код для managed bean в ADF(Useful code for managed beans in ADF)

Oracle ADF имеет  определенный набор классов, которые помогают в разработке  приложений. Сегодня я хочу рассказать, что это за классы и их возможности.

BindingContext, BindingContainer DCBindingContainer

BindingContext, BindingContainer and DCBindingContainer классы. Эти классы необходимы, что получать данные из ADF pagedef объектов.

//получение BindingContext,BindingContainer   и DCBindingContainer 
BindingContext bc = BindingContext.getCurrent();
BindingContainer bcon = bc.getCurrentBindingsEntry();
DCBindingContainer dcbcon = (DCBindingContainer) bc.getCurrentBindingsEntry(); 

List<AttributeBinding> attr = bcon.getAttributeBindings();
List<OperationBinding> oper = bcon.getOperationBindings();
List<ControlBinding> ctrl = bcon.getControlBindings();
List<AttributeBinding> attrDcbcon = dcbcon.getAttributeBindings();
List<OperationBinding> operDcbcon = dcbcon.getOperationBindings();
List iterDcbcon = dcbcon.getIterBindingList(); List exec = dcbcon.getExecutableBindings(); List<ControlBinding> ctrlDcbcon = dcbcon.getControlBindings();

//получение метода,установка значений его параметров и выполнение
OperationBinding method = dcbcon .getOperationBinding("methodAction");
Map paramsMap = method.getParamsMap();
paramsMap.put("param","value") ; method.execute();
List errors = method.getErrors();

//получение аттрибута и установка нового значения
AttributeBinding attr = (AttributeBinding)dcbcon.getControlBinding("test");
attr.setInputValue("test");

//получение данных из ADF tree и table

FacesCtrlHierBinding treeData = (FacesCtrlHierBinding)dcbcon.getControlBinding("tree");
Row[] rows = treeData.getAllRowsInRange();

//получение данных из итератора
DCIteratorBinding iterBind= (DCIteratorBinding)dcbcon.get("Iterator");
String attribute = (String)iterBind.getCurrentRow().getAttribute("field");

// обновление итератора
iterBind.executeQuery();
iterBind.refresh(DCIteratorBinding.RANGESIZE_UNLIMITED);

воскресенье, 28 февраля 2016 г.

Автоматизация сборки и деплоя ADF приложений при помощи Hudson и Ant (Build and Deployment ADF applications using Ant and Hudson)

Когда разработка ведётся не дома  на коленках, то сборку приложений обычно автоматизируют. Для этого существует достаточно большое количество средств (Hudson,Jenkins, TeamCity и т.д.). В этой статье я хочу рассказать об автоматизации сборки ADF приложений при помощи Hudson и Ant.

Hudson — инструмент непрерывной интеграции(Continuous Integration), написанный на Java. Поддерживает инструментарий для работы с разными системами контроля версий, включая CVS, Subversion, Mercurial, Git и Clearcase, может собирать проекты Apache Ant и Apache Maven, а также исполнять shell-скрипты и команды Windows.

Непрерывная интеграция -  это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта

Итак, сначала нужно установить Hudson. Для этого нужно зайти на официальный сайт  http://hudson-ci.org и скачать там последнюю версию war файла. Скачав файл, нужно запустить команду :

java -jar hudson-3.3.3.war --httpPort=8989 , где hudson-3.3.3.war - название скаченного файла, а httpPort=8989 - порт на котором будет доступен сервер.



вторник, 16 февраля 2016 г.

Интеграция RSS в ADF (Integration RSS in Oracle ADF)

RSS (Rich Site Summary — обогащённая сводка сайта) - предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Обычно с помощью RSS 2.0 даётся краткое описание новой информации, появившейся на сайте, и ссылка на её полную версию. Интернет-ресурс в формате RSS называется RSS-каналом, RSS-лентой или RSS-фидом.
Документ RSS состоит их двух частей: загаловка  и статей.
В загаловке обязательными являются три элемента : 
  • title - имя канала 
  • link - ссылка на сайт, с которым установлен канал связи
  • description - описание канала
RSS-лента может состоять из множества статей. Основными составляющими статьи являются заголовок и описание.

В этой статье я хочу рассказать как интегрировать RSS ленту в ADF приложение.
1. Создайте ADF приложение.
2. Создайте HTTP Servlet (в мастере создания выберите  : Configuration file(web.xml) и поставьие галочку  в doGet() )



суббота, 13 февраля 2016 г.

WebLogic JMS и работа с ним в ADF ( Creating Weblogic JMS Server and work with him in ADF)

Добрый день. В какой то момент у вас может появится необходимость обмена данными между вашими приложениями. Для этого можно использовать  Java Message Service (JMS).
Для Oracle Fusion Middleware продуктов используется  WebLogic JMS (описание на англ: https://docs.oracle.com/cd/E24329_01/web.1211/e24387/fund.htm#JMSPG116). Он интегрирован в  WebLogic Server.

Немного теории:

JMS - это  набор интерфейсов и классов  для рассылки сообщений, позволяющий приложениям, выполненным на платформе Java EE, создавать, посылать, получать и читать сообщения.
JMS поддерживает две модели обмена сообщениями: «Point-to-point» и «Publish-subscribe».

Point-to-point модель применяется, когда одному или нескольким senders(отправителям) необходимо послать сообщение одному адресату (receiver).Модель основана на message queue. Отправитель посылают сообщения в очередь, а получатель читает сообщения из очереди.

Publish-subscribe модель применима, когда одному или нескольким отправителям необходимо послать сообщение одному или нескольким получателям. Данная модель основана на понятии message topic.Издатели посылают сообщения в topic, и все подписчики данного topic получают эти сообщения.

воскресенье, 17 января 2016 г.

Использование Apache POI для работы с Microsoft Office в ADF (Using Apache POI in ADF)

В далёком 2014 году я писал, как можно формировать отчёты в ADF пот помощи Jasper Reports (http://www.oracle-adf.info/2014/04/adf-jasperreport.html ). Это достаточно громоздкий способ, требующий установки разработки отчетов. В этой статье я хочу рассказать как можно формировать отчёты при помощи Apache POI. Apache POI — это библиотека на языке Java для чтения и записи документов Microsoft Office,таких как Excel, PowerPoint и Word

Создадим простое приложение, которое по нажатию на кнопку будет генерировать Word-овский документ(исходники этого приложения можно скачать на github: https://github.com/JealousyM/poi-adf.

1. Скачайте последнюю стабильную версию Apache POI с сайта : https://poi.apache.org/download.html

2. Создайте Fusion Web Application

3.Из скаченного архива добавьте в Libraries and Classpath файл poi-xx-xxxx.jar,poi-xml-xx-xxxx.jar b poi-xml-shemas-xx-xxxx.jar, где xx-xxxx версия и дата poi.

 


вторник, 12 января 2016 г.

Интеграция Spring В ADF (Integreation Spring in ADF)

Фрэймворк Spring очень популярен при разработке Java приложений.  И в какой то момент в вашем проекте может появиться необходимость его использовать. В этой статье я хочу объяснить как интегрировать Spring в ADF. Начнём

По умолчанию Jdev не даёт возможности работы со Spring. Сначала нужно установить extension: Spring & Oracle Weblogic Sca




четверг, 17 декабря 2015 г.

Использование Drag and Drop функциональности в ADF(Using Drag and Drop in ADF)

ADF Faces framework поддерживает возможность перетаскивания элементов на странице из одного места, в другое. Например перенос строки из одной таблицы в другую, перемещение компонентов на странице или копирование значений из одних объектов в другой.

ADF Faces поддерживает следующие сценарии:
  • Перемещение  значения атрибута из одного экземпляра компонента и копирование в другой. Например, пользователь может перенести данные из outputText в inputText .
  • Перемещение значения одного объекта в другой объект так, что он становится значением другого объекта.
  • Перемещение объекта из одной коллекции в другую.
  • Перемещение компонента из одной части страницы в другую.
  • Перемещения в компоненте calendar
  • Перемещения компонента  из или в  panelDashboard .
  • Перемещения маркера в DVT графиках для изменения значений.
  • Перемещение объекта из диаграммы Gantt в другой компонент.
  • Прочие перемещения в DVT

воскресенье, 6 сентября 2015 г.

Использование JSTL в ADF (Using JSTL in ADF )

Добрый день. Часто, работая с jsf фрагментами и jspx страницами не хватает стандартной функциональности. JavaServer Pages Standard Tag Library (JSTL) представляет часть дополнительных функций:

JavaServer Pages Standard Tag Library (JSTL) — расширение спецификации JSP, добавляющее библиотеку JSP тегов для общих нужд, таких как разбор XML данных, условная обработка, создание циклов и поддержка интернационализации


Тэги JSTL делятся на 5 категорий:

   Основные тэги:
  • Общего назначения: <c:out>, <c:set>, <c:remove>, <c:catch>
  • Условия: <c:if>, <c:choose>, <c:when>, <c:otherwise>
  • Относящиеся к URL: <c:import>, <c:url>, <c:redirect>, <c:param>
  • Итерации: <c:forEach>, <c:forTokens>

воскресенье, 24 мая 2015 г.

Использование MetaDataServices (MDS) в ADF (Using MetaDataServices in ADF)

Давным давно, я писал о ADF Security(Использование ADF Security в Oracle JDeveloper 12c ). 
После той статьи, я хотел рассказать о кастомизации приложения для пользователей, но забыл)
Исправляюсь : )
В этой статье я расскажу как кастомизировать и персонализировать наше приложение.  То есть сделаю так, что бы каждый отдельный пользователь приложения мог настроить форму под себя. Для этого нужно выполнить несколько  пунктов:
  1. Создать кастомизационные классы
  2. Включить кастомизацию в приложении
  3. Прописать кастомизационные файлы в  adf-config.xml  и при необходимости установить ограничения для кастомизации
Для кастомизации в ADF используется MetaDataServices (MDS). MDS  -  это хранилище, в котором можно хранить множество  метаданных. Например :
  • Взаимодействие с пользвователем (наш случай это кастомизация компонентов)
  • Управление бизнесс процесами (данные связанные с BPEL и BPM)
  • Конфигурационные файлы 
  • Веб сервисы (WSDL файлы, XML схемы, трансформации)

Более подробно о MDS можно прочитать здесь: http://www.oracle.com/technetwork/developer-tools/jdev/metadataservices-fmw-11gr1-130345.pdf

Приступим.

1.Создайте  кастомизационный файл (Java Class).


Расшарьте его классом oracle.mds.cust.CustomizationClass



вторник, 28 апреля 2015 г.

Вызов хранимых процедур и функций в JDeveloper 12c

Доброго времени суток. При разработке ADF проектов,  очень редко можно обойтись без вызова хранимых процедур и функций из базы. JDeveloper не имеет plug&play компонентов для работы с ними. Сегодня я хочу показать вам  как  это можно сделать.

1. Создайте в БД функцию складывающую два числа

CREATE OR REPLACE FUNCTION SUMMAB
    (
      A IN NUMBER
    , B IN NUMBER
    ) RETURN NUMBER AS
    BEGIN
      RETURN  A + B;
    END SUMMAB;


2.  Откройте Application Module Class у вашего Application Module



Если  у вас отсутствует этот класс,  сгенерируйте его, как указано на картинках ниже 



суббота, 25 апреля 2015 г.

Значок веб-страницы(favicon) и иконка для закладок в JDeveloper 12c

Favicon (от англ. FAVorite ICON -  «значок для избранного»)  - значок веб-страницы. Отображается браузером во вкладке перед названием страницы, а также в качестве картинки рядом с закладкой и  во вкладках .

Начиная с 11.1.2.x версии у тэга   <af:document>  появились атрибуты  smallIconSource  и largIconSource (тег <af:document> используется в jspx страницах).
 
smallIconSource - атрибут, для указания favicon. В необходимо указать адрес на небольшой значок размером 16 на 16(favicon). Если   этот атрибут не указан, браузер использует файл с именем "favicon.ico" находящийся  в корневом каталоге вашего сервера. Этот атрибут поддерживает  ввод списка файлов разделенных пробелами. Если путь к файлу определяет один слэш "/", это означает, что файл находится в корневой папке веб-приложения (т.е. "/misha.png" будет искаться в "http://www.oracle-adf.info/.../faces /misha.png "). Если путь к файлу определяет 2 cлэша "//', это означает, что файл находится в корневой папке сервера (т.е. "//misha.png" будет искаться в "http://www.oracle-adf.info/misha.png").  Как правило, используется первый в  списке файл . В противном случае, если браузер поддерживает только определенные типы файлов, то будет использоваться первый файл в списке, который поддерживает текущий браузер.

largeIconSource  - большой значок, который браузер может использовать для закладки вашей страницы. Если   этот атрибут не указан, браузер может использовать по умолчанию файл с именем  "apple-touch-icon.png". Возможные размеры  значка : 57x57 ,72 x72,129x129 пикселей.

Пример кода :
<af:document title="СуперПортал" 
 smallIconSource="/favicon.png /favicon.ico" 
 largeIconSource="/touchicon.png"> 
 <af:form> 
... 
</af:form> 
</af:document>




Если вы используете JDeveloper 11.1.1.x то вам придется использовать фасет metaContainer в тэге  <af:document>.

Пример  кода :


<af:document id="d1">
...
<f:facet name="metaContainer">
<af:outputText value="&lt;link rel='SHORTCUT ICON' href='#{facesContext.externalContext.requestContextPath}/favicon.ico'/>" id="favicon" escape="false"/>
</f:facet>
</af:document>


четверг, 16 апреля 2015 г.

Интеграция виджетов социальных сетей в Oracle ADF (Social Media Integration with Oracle ADF)

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

Каждая крупная социальная сеть имеет раздел для разработчиков, вот ссылки на них:

Facebook
Linkedin
Twitter (кнопка "Share")
ВКонтакте(VK)
Одноклассники(ok.ru)

В этих разделах обычно находится информация,  и даже код  для встраивания  различных  виджетов. Вот часть из них :

  • Авторизация - авторизация  в соц.сети
  • Комментарии (Comments)-  виджет позволяет установить на сайт блок для комментирования
  • Запись на стене (Embedded Posts) - виджет позволяет встроить на свой сайт отдельную запись или комментарий пользователя соц.сети
  • Мне нравится(Like button) - виджет позволяет пользователям выразить отношение к статье одним кликом или поделиться ссылкой на неё с друзьями
  • Публикация (Share button) - виджет позволяет быстро разместить ссылку на материал с вашего сайта на странице в соц сети 
  • Подписка(Follow) - виджет позволяет подписаться на пользователя или группу

  Получить код для виджета очень просто, например что бы сформировать кнопку "Поделиться(Share)" в VK нужно  : выбрать стиль кнопки, текст кнопки,страницу которой необходимо поделиться( та на которой кнопка или конкретный адрес) и логотип соц сети :

среда, 11 марта 2015 г.

Создание простого MAF ( ADF Mobile) приложения в JDeveloper 12c

Итак, у вас есть навык в  работе с ADF и вы решили написать для портала мобильное приложение. В этом  может помочь горячо любимый JDeveloper(в дальнейшем Jdev).  В этой статье я хочу  описать создание простого мобильного приложения  на Oracle MAF. Oracle MAF  -  это гибридный фреймворк для мобильной разработки. Он обеспечивает создание приложений как для IOS, так и для Android устройств. 

Приложение будет очень простым. Оно будет выводить местоположение на карте по  введенным  вами координаты(исходники приложения можно скачать на github: https://github.com/JealousyM/begin-maf ) . Начнем : )


Откройте JDeveloper 12c (в данный момент самая актуальная версия 12.1.3) . Если  у вас ее нет, скачайте бесплатно отсюда : http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html

 Зайдите в центр обновления JDeveloper(Help->Check for Updates)  и установитe Mobile Applicatione Framework


воскресенье, 8 февраля 2015 г.

Использование Captcha в Oracle ADF

При разработке ADF проектов часто может возникнуть  необходимость  создать регистрацию пользователей. И что бы обезопасить  эту часть проекта от ботов, используют Капчу. Капча - компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. В этой статье я хочу показать как встроить ее  в ADF проект (исходных код приложения можно скачать на github: https://github.com/JealousyM/captcha-adf ).

1. Создайте Fusion ADF приложение. В нем создайте jspx страницу со следующими компонентами:


  • inlineFrame - компонент для отображения капчи
  • 2 commandToolbarButton. Первая для обновления капчи, если она не разборчива.Вторая для обработки введенных данных.
  •  inputText  - компонент для ввода данных которые вы увидели в капче.
  •  group layout - компонент для группировки элементов страницы.



среда, 6 августа 2014 г.

Интеграция Google Maps в Oracle ADF

Добрый день, друзья.
В наше время мало какой сайт  может обойтись без интеграции Google  технологий. Я постараюсь рассказать как интегрировать в ADF  Google maps. Приступим. Сделаем  страничку на которой можно найти место на карте, введя его в input text