четверг, 20 декабря 2007 г.

Обновление данных на странице

При использовании ADF, доступ к ViewObject-ам (см ADV BC) из ADF Faces страниц осуществляется через итераторы (<itarator>) binding контейнеров соответствующих страниц, которые описываются в pageDef файлах. Тег <itarator> имеет очень важный атрибут Refresh который позволяет указать в каких случаях необходимо обновлять данные:
  • always - при каждом запросе binding контейнера (при рендеринге страницы, при сабмите страницы или когда приложение отсылает ответ на страницу)
  • deferred - отложенное. Обновляется только если этого требует другой (связанный с нашим) binding объект
  • ifNeeded - (по умолчанию) обновляет даные при необходимости. Если например выводятся на страницу дочерняя и родительская таблица, то родитель будет обновлен два раза (один - при обновлении дочернего итератора, другой - при обновлении своего). ifNeeded - позволяет этого избежать.
  • never - используется для того чтоб отключить обновление средствами ADF, при этом приложение должно само обновлять данные.
  • prepareModel - используется если обновление требуется только при подготовке binding контейера страницы
  • prepareModelIfNeeded - при подготовке контейнера и только если необходимо
  • renderModel - обновлять при рендеринге страницы
  • renderModelIfNeeded - обновлять при рендеринге страницы и только если необхлдимо
Для дополнительных условий можно использовать атрибут RefreshCondition - он позволяет задать EL выражение определяющее когда обновлять данные. Например: ${!bindings.findAllServiceRequestIter.findMode} обновление будет определятся значением атрибута findMode

понедельник, 17 декабря 2007 г.

Отладка ADF Faces

Очень удобно во время разработки ADF FAces приложений включить функцию отладки. Она позволит получать читабельный код клиента и вести отладку сгенерированного JavaScript. Для этого добавте следующие строки в файл web.xml:
<web-app>
...

<context-param>
<param-name>oracle.adf.view.faces.DEBUG_JAVASCRIPT</param-name>
<param-value>true</param-value>
</context-param>

</web-app>

понедельник, 10 декабря 2007 г.

Использование properties файлов

Хорошей практикой загрузки properties файлов является использование метода getResourceAsStream() класса java.lang.ClassLoader.
Пример:
 ClassLoader cl = this.getClass().getClassLoader();
InputStream is = cl.getResourceAsStream();
Properties props = new Properties();
try {
props.load(is);
}...
при этом следует помнить что корневой каталог будет меняться в зависимости от типа контейнера.
Для сервлетов он будет начинаться с корня war файла. т.е. мы получим что-то типа:
...getResourceAsStream("/WEB-INF/propfile.props");
Для EJB он будет начинаться с корня jar файла. т.е. код будет иметь вид:
...getResourceAsStream("/somepackage/propfile.props");
Если же properties файл используется в jar который упакован в war файл, или же он вызывется из другого jar файла, то необходимо указывать относительный путь
...getResourceAsStream("somepackage/propfile.props");
. При этом следует убедится что properties файл находится в области видимости (для jar файлов ссылки на другие пакеты можно задать в файле MANIFEST.MF:
Manifest-Version: 1.0
Class-Path: lib1.jar lib2.jar lib3.jar
Created-By: Oracle JDeveloper 10.1.3.2.0
).При чтении (записи) данных в properties файлы используется кодировка ISO 8859-1. При использовании других кодировок необходимо произвести преобразование строк. Например так:
label = new String(label.getBytes("ISO-8859-1"), "UTF-8");
Оригинал статьи

ORACLE. Деплой приложений с помощью Ant

Oracle предоставляет Ant таски, для деплоя web или ear приложений. Для их использования необходимо:

  • 1. Обьявить пространство имен oracle в вашем build.xml файле. Например так:
    <project name="test" default="all" basedir="." xmlns:oracle="antlib:oracle">

  • 2. Добавить переменые oracle.home, oc4j.home, java.home. Первые два содержат пусть к OC4J последняя путь к JRE. Для этого в build.xml можно например добавить строку:
    <property file="build.properties"/>
    файл build.properties должен содержать строки:
    # The installation directory for OC4J (shared librery for ant deploy tasks)
    oracle.home=C:/Progs/OC4J
    oc4j.home=C:/Progs/OC4J
    # The home location for the JDK installation
    java.home=C:/home/progs/JDeveloper/jdk/jre


  • 3. Включить ant-oracle.xml в build.xml. Файл ant-oracle.xml расположен {OC4J}/j2ee/utilities. Его можно скопировать в папку с проектом а затем в build.xml добавить строку: <import file="ant-oracle.xml"/>

Оригинал статьи

Автоматическое добавление SVN свойств к файлам

Хорошей практикой при работе с Subversion, является добавление информации (например о номере ревизии, времени, проводившем последние изменения пользователе) в файлы хранящиеся в репозитории.
Для этого в начале ява файла можно добавить строки:
/*
* $Id$
*/
а затем добавить свойство Id к файлу выполнив команду:
svn propset svn:keywords "Id" имя_файла
В SVN доступны свойства svn:keywords:
  • Id - вставляет вместо $Id$ информацию о номере ревизии, времени последнего изменения и пользователе его проводившем

  • Revision - вставляет вместо $Revision$ или $Rev$ или $LastChangedRevision$ номер ревизии

  • Date - вставляет вместо $Date$ или $LastChangedDate$ время последней модификации файла

  • Author - вставляет вместо $Author$ или $LastChangedBy$ имя пользователя изменившего файл

  • HeadURL - вставляет вместо $HeadURL$ или $URL$ адрес файла
Внимание: все названия чувствительны к регистру.