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 должно быть возможным.
SyncFactoryException
public static void setLogger(Logger logger)
SyncProvider
реализация, обеспеченная SyncFactory
. Все SyncProvider
реализации могут зарегистрировать свои события к этому объекту, и приложение может получить дескриптор к этому объекту, используя getLogger
метод. Эти проверки метода, чтобы видеть, что есть SQLPermission
объект, который предоставляет разрешение setSyncFactory
прежде, чем позволить методу успешно выполняться. Если a SecurityManager
существует и checkPermission
метод отрицает вызывать setLogger
, этот метод бросает a java.lang.SecurityException
.
logger
- Экземпляр объекта РегистратораSecurityException
- если менеджер безопасности существует и checkPermission
метод отрицает вызывать setLogger
NullPointerException
- если регистратор является нулем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
метод отрицает вызывать setLogger
LoggingPermission
- если менеджер безопасности существует и checkPermission
метод отрицает вызывать setLevel
NullPointerException
- если регистратор является нулемSecurityManager.checkPermission(java.security.Permission)
, LoggingPermission
public 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
метод отрицает вызывать setJNDIContext
SecurityManager.checkPermission(java.security.Permission)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92