blob: 2cec65a1d07bcb8c4292120ff88150d4950071e2 [file] [log] [blame]
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.scout.service" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appInfo>
<meta.schema plugin="org.eclipse.scout.service" id="services" name="services"/>
</appInfo>
<documentation>
</documentation>
</annotation>
<element name="extension">
<annotation>
<appInfo>
<meta.element />
</appInfo>
</annotation>
<complexType>
<choice>
<element ref="service" minOccurs="0" maxOccurs="unbounded"/>
<element ref="proxy" minOccurs="0" maxOccurs="unbounded"/>
<element ref="serviceInitializerFactory" minOccurs="0" maxOccurs="unbounded"/>
</choice>
<attribute name="point" type="string" use="required">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="id" type="string">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>
</documentation>
<appInfo>
<meta.attribute translatable="true"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="service">
<annotation>
<appInfo>
<meta.element labelAttribute="class"/>
</appInfo>
<documentation>
An OSGi service that is registered using BundleContext.registerService
</documentation>
</annotation>
<complexType>
<choice>
<element ref="init-param" minOccurs="0" maxOccurs="unbounded"/>
</choice>
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
The implementation class of the service.
Subclasses of IService, normally extending AbstractService.
The service is registered with all its super types and super interfaces except Object.class
</documentation>
<appInfo>
<meta.attribute kind="java"/>
</appInfo>
</annotation>
</attribute>
<attribute name="factory" type="string">
<annotation>
<documentation>
An optional service factory.
The service factory may be of type org.eclipse.scout.service.IServiceFactory to get notified when it was registered.
The service factory must provide one of the following constructors (the first in the list is chosen)
1. a constructor with a Class argument (the service class)
2. an empty constructor
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn=":org.osgi.framework.ServiceFactory"/>
</appInfo>
</annotation>
</attribute>
<attribute name="session" type="string">
<annotation>
<documentation>
The service is restricted to a specific session scope.
Typical sessions include IClientSession and IServerSession and subclasses of it.
This attribute can only be used together with a service factory.
The session is provided to the osgi service by the init parameter with the name &quot;service.sessionScope&quot; ( ServiceConstants.SERVICE_SCOPE )
</documentation>
<appInfo>
<meta.attribute kind="java"/>
</appInfo>
</annotation>
</attribute>
<attribute name="ranking" type="string">
<annotation>
<documentation>
The service ranking as defined in org.osgi.framework.Constants.SERVICE_RANKING
Alternatively a service can define its ranking by using the org.eclipse.scout.commons.annotations.Priority annotation.
The ranking is provided to the osgi service by the init parameter with the name &quot;service.ranking&quot; ( Constants.SERVICE_RANKING)
</documentation>
</annotation>
</attribute>
<attribute name="createImmediately" type="boolean" use="default" value="false">
<annotation>
<documentation>
This atttribute is used to control the moment when the service instance is effectively created.
Default value is false.
A value of true creates the service instance immediately when the extension point loads.
A value of false does not create the service instance on extension point load. It creates the service instance lazy on the first usage of the service.
This can be useful if a service is for example listening for client notifications (to come up from the server) to perform some actions.
Consider a CTI service handling telephony events that come up from the server-side.
The attribute is provided to the osgi service by the init parameter with the name &quot;service.createImmediately&quot; ( ServiceConstants.SERVICE_CREATE_IMMEDIATELY)
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="proxy">
<annotation>
<appInfo>
<meta.element labelAttribute="class"/>
</appInfo>
<documentation>
An OSGi service proxy that is registered using BundleContext.registerService
A proxy requires a client-side service tunnel and a server-side service tunnel servlet.
</documentation>
</annotation>
<complexType>
<choice>
<element ref="init-param" minOccurs="0" maxOccurs="unbounded"/>
</choice>
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
The definition interface of the service proxy.
The service is registered only with its interface.
</documentation>
<appInfo>
<meta.attribute kind="java"/>
</appInfo>
</annotation>
</attribute>
<attribute name="factory" type="string" use="required">
<annotation>
<documentation>
An optional service factory.
The service factory may be of type org.eclipse.scout.service.IServiceFactory to get notified when it was registered.
The service factory must provide one of the following constructors (the first in the list is chosen)
1. a constructor with a Class argument (the service interface class)
2. an empty constructor
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn=":org.eclipse.scout.service.IServiceFactory"/>
</appInfo>
</annotation>
</attribute>
<attribute name="session" type="string">
<annotation>
<documentation>
The service is restricted to a specific session scope.
Typical sessions include IClientSession and IServerSession and subclasses of it.
This attribute can only be used together with a service factory.
The session is provided to the osgi service by the init parameter with the name &quot;sessionScope&quot; ( ServiceConstants.SERVICE_SCOPE )
</documentation>
<appInfo>
<meta.attribute kind="java"/>
</appInfo>
</annotation>
</attribute>
<attribute name="ranking" type="string">
<annotation>
<documentation>
The service ranking as defined in org.osgi.framework.Constants.SERVICE_RANKING
Alternatively a service can define its ranking by using the org.eclipse.scout.commons.annotations.Priority annotation.
The ranking is provided to the osgi service by the init parameter with the name &quot;service.ranking&quot; ( Constants.SERVICE_RANKING)
</documentation>
</annotation>
</attribute>
<attribute name="createImmediately" type="boolean" use="default" value="false">
<annotation>
<documentation>
This atttribute is used to control the moment when the service instance is effectively created.
Default value is false.
A value of true creates the service instance immediately when the extension point loads.
A value of false does not create the service instance on extension point load. It creates the service instance lazy on the first usage of the service.
This can be useful if a service is for example listening for client notifications (to come up from the server) to perform some actions.
Consider a CTI service handling telephony events that come up from the server-side.
The attribute is provided to the osgi service by the init parameter with the name &quot;service.createImmediately&quot; ( ServiceConstants.SERVICE_CREATE_IMMEDIATELY)
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="init-param">
<complexType>
<attribute name="name" type="string" use="required">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="value" type="string" use="required">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="serviceInitializerFactory">
<annotation>
<documentation>
A factory to create a service initializer which is used in org.eclipse.scout.service.AbstractService.initializeService.
</documentation>
</annotation>
<complexType>
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
The implementation of the service initializer factory, which is used in org.eclipse.scout.service.AbstractService.initializeService.
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn=":org.eclipse.scout.service.IServiceInitializerFactory"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appInfo>
<meta.section type="since"/>
</appInfo>
<documentation>
1.0.0
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="examples"/>
</appInfo>
<documentation>
[Enter extension point usage example here.]
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="apiInfo"/>
</appInfo>
<documentation>
[Enter API information here.]
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="implementation"/>
</appInfo>
<documentation>
[Enter information about supplied implementation of this extension point.]
</documentation>
</annotation>
</schema>