|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class SyncFactory extends Object
SyncProvider экземпляры, которые будут использоваться разъединенным RowSet объекты. SyncProvider экземпляры поочередно обеспечивают javax.sql.RowSetReader возразите RowSet возразите должен заполнить себя с данными и javax.sql.RowSetWriter возразите, что это должно распространить изменения к своим данным назад к базовому источнику данных. Поскольку методы в SyncFactory class является всеми помехами, есть только один SyncFactory объект на Java VM в любой момент. Это гарантирует, что есть единственный источник от который a RowSet реализация может получить SyncProvider реализация.
SyncFactory class обеспечивает внутренний реестр доступных реализаций провайдера синхронизации (SyncProvider объекты). Этот реестр может быть запрошен, чтобы определить, какие провайдеры синхронизации доступны. Следующая строка кода получает перечисление провайдеров, в настоящий момент зарегистрированных.
java.util.Enumeration e = SyncFactory.getRegisteredProviders();
Весь стандарт RowSet реализации должны обеспечить по крайней мере двух провайдеров: CachedRowSet реализация или реализация произошли из этого WebRowSet объекты SyncProvider implemtations RIOptimisticProvider и RIXmlProvider, которые удовлетворяют это требование. SyncFactory class обеспечивает методы средства доступа, чтобы помочь приложениям в определении, какие провайдеры синхронизации в настоящий момент регистрируются в SyncFactory.
Другим методам позволяют RowSet провайдеры персистентности быть зарегистрированным или вычеркнутым из списка с механизмом фабрики. Это позволяет дополнительным реализациям провайдера синхронизации быть сделанными доступными для RowSet объекты во время выполнения.
Приложения могут применить степень фильтрации, чтобы определить уровень синхронизации это a SyncProvider предложения реализации. Следующие критерии определяют, делается ли провайдер доступным для a RowSet объект:
RowSet объект, и SyncFactory не содержит ссылку на этого провайдера, a SyncFactoryException бросается, утверждая, что провайдер синхронизации не мог быть найден.
RowSet реализация инстанцируют с указанным провайдером, и указанный провайдер был должным образом зарегистрирован, требуемый провайдер предоставляется. Иначе a SyncFactoryException бросается.
RowSet объект не определяет a SyncProvider реализация и не дополнительный SyncProvider реализации доступны, ссылочные провайдеры реализации предоставляются. SyncProvider Реализации И поставщики и разработчики могут зарегистрироваться SyncProvider реализации используя один из следующих механизмов.
-Drowset.provider.classname=com.fred.providers.HighAvailabilityProvider
#Default JDBC RowSet sync providers listing # # Optimistic synchronization provider rowset.provider.classname.0=com.sun.rowset.providers.RIOptimisticProvider rowset.provider.vendor.0=Oracle Corporation rowset.provider.version.0=1.0 # XML Provider using standard XML schema rowset.provider.classname.1=com.sun.rowset.providers.RIXMLProvider rowset.provider.vendor.1=Oracle Corporation rowset.provider.version.1=1.0
SyncFactory проверки этот файл и регистры SyncProvider реализации, которые это содержит. Разработчик или поставщик могут добавить другие реализации к этому файлу. Например, вот возможное дополнение:
rowset.provider.classname.2=com.fred.providers.HighAvailabilityProvider
rowset.provider.vendor.2=Fred, Inc.
rowset.provider.version.2=1.0
SyncFactory попытается загрузиться SyncProvider реализации от этого контекст JNDI. Например, следующий фрагмент кода регистрирует реализацию провайдера на контексте JNDI. Это - что-то, что deployer обычно делал бы. В этом примере, MyProvider регистрируется на пространстве имен CosNaming, которое является пространством имен, используемым ресурсами J2EE.
import javax.naming.*;
Hashtable svrEnv = new Hashtable();
srvEnv.put(Context.INITIAL_CONTEXT_FACTORY, "CosNaming");
Context ctx = new InitialContext(svrEnv);
com.fred.providers.MyProvider = new MyProvider();
ctx.rebind("providers/MyProvider", syncProvider);
SyncFactory экземпляр. Это позволяет SyncFactory просмотреть в пределах поиска контекста JNDI SyncProvider реализации.
Hashtable appEnv = new Hashtable();
appEnv.put(Context.INITIAL_CONTEXT_FACTORY, "CosNaming");
appEnv.put(Context.PROVIDER_URL, "iiop://hostname/providers");
Context ctx = new InitialContext(appEnv);
SyncFactory.registerJNDIContext(ctx);
Если a RowSet возразите пытается получить a MyProvider объект, SyncFactory попытается определить местоположение этого. Сначала это ищет это в системных свойствах, тогда это смотрит в файлах ресурсов, и наконец это проверяет контекст JNDI, который был установлен. SyncFactory экземпляр проверяет, что требуемый провайдер является допустимым расширением SyncProvider абстрактный class и затем дает это RowSet объект. В следующем фрагменте кода, новом CachedRowSet объект создается и инициализируется с конвертом, который содержит привязку с MyProvider.
Hashtable env = new Hashtable();
env.put(SyncFactory.ROWSET_SYNC_PROVIDER, "com.fred.providers.MyProvider");
CachedRowSet crs = new com.sun.rowset.CachedRowSetImpl(env);
Более подробная информация об этих механизмах доступна в javax.sql.rowset.spi спецификация пакета.SyncProvider, SyncFactoryException| Модификатор и Тип | Поле и Описание |
|---|---|
static String |
ROWSET_SYNC_PROVIDER
Стандартный идентификатор свойства для имени реализации провайдера синхронизации.
|
static String |
ROWSET_SYNC_PROVIDER_VERSION
Стандартный идентификатор свойства для тега версии реализации провайдера синхронизации.
|
static String |
ROWSET_SYNC_VENDOR
Стандартный идентификатор свойства для имени поставщика реализации провайдера синхронизации.
|
| Модификатор и Тип | Метод и Описание |
|---|---|
static SyncProvider |
getInstance(String providerID)
Возвраты
SyncProvider экземпляр идентифицируется providerID. |
static Logger |
getLogger()
Возвращает объект журналирования для приложений, чтобы получить события синхронизации, отправленные реализациями SyncProvider.
|
static Enumeration<SyncProvider> |
getRegisteredProviders()
Возвращает Перечисление в настоящий момент зарегистрированных провайдеров синхронизации.
|
static SyncFactory |
getSyncFactory()
Возвраты
SyncFactory одиночный элемент. |
static void |
registerProvider(String providerID)
Добавляет данного провайдера синхронизации к регистру фабрики.
|
static void |
setJNDIContext(Context ctx)
Устанавливает начальный контекст JNDI, от которого реализации SyncProvider могут быть получены от пространства имен JNDI
|
static void |
setLogger(Logger logger)
Устанавливает объект журналирования, который будет использоваться
SyncProvider реализация, обеспеченная SyncFactory. |
static void |
setLogger(Logger logger, Level level)
Устанавливает объект журналирования, который используется
SyncProvider реализации, обеспеченные SyncFactory SPI. |
static void |
unregisterProvider(String providerID)
Удаляет определяемого в настоящий момент зарегистрированного провайдера синхронизации из регистра SPI Фабрики.
|
public static final String ROWSET_SYNC_PROVIDER
public static final String ROWSET_SYNC_VENDOR
public static final String ROWSET_SYNC_PROVIDER_VERSION
public static void registerProvider(String providerID) throws SyncFactoryException
SyncProvider спецификация для необходимых соглашений о присвоении имен для SyncProvider реализации. Провайдеры синхронизации, связанные с контекстом JNDI, могут быть зарегистрированы, связывая экземпляр SyncProvider с пространством имен JNDI.
SyncProvider p = new MySyncProvider();
InitialContext ic = new InitialContext();
ic.bind ("jdbc/rowset/MySyncProvider", p);
Кроме того начальный контекст JNDI должен быть установлен с SyncFactory использование setJNDIContext метод. SyncFactory рычаги этот контекст, чтобы искать доступный SyncProvider объекты, связанные с контекстом JNDI и его дочерними узлами.providerID - A String объект с уникальным ID зарегистрированного провайдера синхронизацииSyncFactoryException - если попытка предпринимается, чтобы предоставить пустое или нулевое имя провайдераsetJNDIContext(javax.naming.Context)public static SyncFactory getSyncFactory()
SyncFactory одиночный элемент.SyncFactory экземплярpublic static void unregisterProvider(String providerID) throws SyncFactoryException
providerID - Уникальный идентификатор провайдера синхронизацииSyncFactoryException - Если попытка предпринимается, чтобы незарегистрировать реализацию SyncProvider, которая не была зарегистрирована.public static SyncProvider getInstance(String providerID) throws SyncFactoryException
SyncProvider экземпляр идентифицируется providerID.providerID - уникальный идентификатор провайдераSyncProvider реализацияSyncFactoryException - Если SyncProvider не может быть найден, providerID null, или с некоторой ошибкой встретились, пытаясь вызвать этого провайдера.public static Enumeration<SyncProvider> getRegisteredProviders() throws SyncFactoryException
RowSet реализация может использовать любого провайдера в перечислении как SyncProvider объект. Как минимум ссылочное разрешение провайдера синхронизации данные контента RowSet быть сохраненным, используя драйвер JDBC должно быть возможным.
SyncFactoryExceptionpublic static void setLogger(Logger logger)
SyncProvider реализация, обеспеченная SyncFactory. Все SyncProvider реализации могут зарегистрировать свои события к этому объекту, и приложение может получить дескриптор к этому объекту, используя getLogger метод. Эти проверки метода, чтобы видеть, что есть SQLPermission объект, который предоставляет разрешение setSyncFactory прежде, чем позволить методу успешно выполняться. Если a SecurityManager существует и checkPermission метод отрицает вызывать setLogger, этот метод бросает a java.lang.SecurityException.
logger - Экземпляр объекта РегистратораSecurityException - если менеджер безопасности существует и checkPermission метод отрицает вызывать setLoggerNullPointerException - если регистратор является нулемSecurityManager.checkPermission(java.security.Permission)public static void setLogger(Logger logger, Level level)
SyncProvider реализации, обеспеченные SyncFactory SPI. Все SyncProvider реализации могут зарегистрировать свои события к этому объекту, и приложение может получить дескриптор к этому объекту, используя getLogger метод. Эти проверки метода, чтобы видеть, что есть SQLPermission объект, который предоставляет разрешение setSyncFactory прежде, чем позволить методу успешно выполняться. Если a SecurityManager существует и checkPermission метод отрицает вызывать setLogger, этот метод бросает a java.lang.SecurityException.
logger - экземпляр объекта Регистратораlevel - экземпляр объекта Уровня, указывающий на степень журналирования необходимогоSecurityException - если менеджер безопасности существует и checkPermission метод отрицает вызывать setLoggerLoggingPermission - если менеджер безопасности существует и checkPermission метод отрицает вызывать setLevelNullPointerException - если регистратор является нулемSecurityManager.checkPermission(java.security.Permission), LoggingPermissionpublic static Logger getLogger() throws SyncFactoryException
SyncFactoryException - если никакой объект журналирования не был установлен.public static void setJNDIContext(Context ctx) throws SyncFactoryException
Эти проверки метода, чтобы видеть, что есть SQLPermission объект, который предоставляет разрешение setSyncFactory прежде, чем позволить методу успешно выполняться. Если a SecurityManager существует и checkPermission метод отрицает вызывать setJNDIContext, этот метод бросает a java.lang.SecurityException.
ctx - допустимый контекст JNDISyncFactoryException - если предоставленный контекст JNDI является нулемSecurityException - если менеджер безопасности существует и checkPermission метод отрицает вызывать setJNDIContextSecurityManager.checkPermission(java.security.Permission)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92