Extension point adapters
In component org.nuxeo.ecm.core.api.DocumentAdapterService
Extension Point for registering new document adapters XML extensions may contain any number of 'adapter' elements of the form:
This means any document having the facet 'facet' can be adapted to a 'class' object using the factory 'factory'
The facet attribute is optional and serve to restrict the applicability of the adapter. If no facet is specified the adapter will be applicable on any document.
This is the main extension point for registring Adapters on your Documentmodels
To contribute an adpaters there are 3 simple steps :
- Create your adapter implemention (you can also have several implementations having the same interface)
- Create a Factory that will be responsible for creating your adapter object from a DocumentModel
- Register your Factory, you can bind it to a specific document type or facet
One done you can simply access the adpater via DocumentModel.getAdapter(adapter.class)
Contribution Descriptor
Existing Contributions
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.user.invite.RegistrationRules" factory="org.nuxeo.ecm.user.invite.RegistrationRulesFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.core.api.thumbnail.ThumbnailAdapter" factory="org.nuxeo.ecm.core.api.thumbnail.ThumbnailAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.template.api.adapters.TemplateBasedDocument" factory="org.nuxeo.template.adapters.TemplateAdapterFactory"/> <adapter class="org.nuxeo.template.api.adapters.TemplateSourceDocument" factory="org.nuxeo.template.adapters.TemplateAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.core.api.blobholder.BlobHolder" factory="org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.routing.api.DocumentRoute" factory="org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory"/> <adapter class="org.nuxeo.ecm.platform.routing.api.DocumentRouteStep" factory="org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory"/> <adapter class="org.nuxeo.ecm.platform.routing.api.DocumentRouteElement" factory="org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory"/> <adapter class="org.nuxeo.ecm.platform.routing.api.LockableDocumentRoute" factory="org.nuxeo.ecm.platform.routing.core.adapter.LockableDocumentAdapterFactory"/> <adapter class="org.nuxeo.ecm.platform.routing.core.impl.GraphRoute" factory="org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory"/> <adapter class="org.nuxeo.ecm.platform.routing.core.impl.GraphNode" factory="org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.localconf.SimpleConfiguration" factory="org.nuxeo.ecm.localconf.SimpleConfigurationFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.apidoc.api.BundleGroup" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXBundleGroup"/> <adapter class="org.nuxeo.apidoc.api.BundleInfo" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXBundle"/> <adapter class="org.nuxeo.apidoc.api.ComponentInfo" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXComponent"/> <adapter class="org.nuxeo.apidoc.api.ExtensionPointInfo" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXExtensionPoint"/> <adapter class="org.nuxeo.apidoc.api.ExtensionInfo" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXContribution"/> <adapter class="org.nuxeo.apidoc.api.ServiceInfo" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXService"/> <adapter class="org.nuxeo.apidoc.snapshot.DistributionSnapshot" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXDistribution"/> <adapter class="org.nuxeo.apidoc.api.DocumentationItem" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXDocumentation"/> <adapter class="org.nuxeo.apidoc.api.SeamComponentInfo" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXSeamComponent"/> <adapter class="org.nuxeo.apidoc.api.OperationInfo" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXOperation"/> <adapter class="org.nuxeo.apidoc.api.NuxeoArtifact" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXBundleGroup"/> <adapter class="org.nuxeo.apidoc.api.NuxeoArtifact" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXBundle"/> <adapter class="org.nuxeo.apidoc.api.NuxeoArtifact" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXComponent"/> <adapter class="org.nuxeo.apidoc.api.NuxeoArtifact" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXExtensionPoint"/> <adapter class="org.nuxeo.apidoc.api.NuxeoArtifact" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXContribution"/> <adapter class="org.nuxeo.apidoc.api.NuxeoArtifact" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXService"/> <adapter class="org.nuxeo.apidoc.api.NuxeoArtifact" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXSeamComponent"/> <adapter class="org.nuxeo.apidoc.api.NuxeoArtifact" factory="org.nuxeo.apidoc.adapters.AdapterFactory" type="NXOperation"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.preview.api.HtmlPreviewAdapter" factory="org.nuxeo.ecm.platform.preview.adapter.PreviewDocumentModelAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.drive.adapter.FileSystemItem" factory="org.nuxeo.drive.adapter.impl.FileSystemItemAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.routing.dm.adapter.RoutingTask" factory="org.nuxeo.ecm.platform.routing.dm.adapter.RoutingTaskAdapterFactory"/> <adapter class="org.nuxeo.ecm.platform.routing.dm.adapter.TaskStep" factory="org.nuxeo.ecm.platform.routing.dm.adapter.TaskStepAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.search.ui.localconfiguration.SearchConfiguration" factory="org.nuxeo.search.ui.localconfiguration.SearchConfigurationFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <documentation> Defines an adapter for documents having versioning info. The adapter interface is VersioningDocument and could be retrieved in a standard way from a document model with getAdapter(VersioningDocument.class) </documentation> <adapter class="org.nuxeo.ecm.core.api.facet.VersioningDocument" factory="org.nuxeo.ecm.core.versioning.VersioningDocumentAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.diff.content.ContentDiffAdapter" factory="org.nuxeo.ecm.diff.content.adapter.ContentDiffDocumentModelAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.theme.localconfiguration.LocalThemeConfig" factory="org.nuxeo.theme.localconfiguration.LocalThemeConfigAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.ec.notification.SubscriptionAdapter" factory="org.nuxeo.ecm.platform.ec.notification.SubscriptionAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <documentation> Register the adapter for TypeInfo on DocumentModel </documentation> <adapter class="org.nuxeo.ecm.platform.types.adapter.TypeInfo" factory="org.nuxeo.ecm.platform.types.adapter.TypeInfoAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.forum.web.api.ThreadAdapter" factory="org.nuxeo.ecm.platform.forum.web.api.ThreadAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.directory.localconfiguration.DirectoryConfiguration" factory="org.nuxeo.ecm.directory.localconfiguration.DirectoryConfigurationFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.usermanager.UserAdapter" factory="org.nuxeo.ecm.platform.usermanager.UserAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.task.Task" factory="org.nuxeo.ecm.platform.task.TaskAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.comment.api.CommentableDocument" factory="org.nuxeo.ecm.platform.comment.impl.CommentableAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.collections.core.adapter.Collection" factory="org.nuxeo.ecm.collections.core.adapter.CollectionAdapterFactory"/> <adapter class="org.nuxeo.ecm.collections.core.adapter.CollectionMember" factory="org.nuxeo.ecm.collections.core.adapter.CollectionMemberAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.rendition.Renderable" factory="org.nuxeo.ecm.platform.rendition.adapter.RenderableAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.types.localconfiguration.UITypesConfiguration" factory="org.nuxeo.ecm.platform.types.localconfiguration.UITypesConfigurationFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.video.VideoDocument" factory="org.nuxeo.ecm.platform.video.adapter.VideoDocumentAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.pictures.tiles.api.adapter.PictureTilesAdapter" factory="org.nuxeo.ecm.platform.pictures.tiles.api.adapter.PictureTilesAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.picture.api.adapters.MultiviewPicture" factory="org.nuxeo.ecm.platform.picture.api.adapters.MultiviewPictureAdapterFactory"/> <adapter class="org.nuxeo.ecm.platform.picture.api.adapters.PictureResourceAdapter" factory="org.nuxeo.ecm.platform.picture.api.adapters.PictureResourceAdapterFactory"/> </extension>
-
<extension point="adapters" target="org.nuxeo.ecm.core.api.DocumentAdapterService"> <adapter class="org.nuxeo.ecm.platform.types.localconfiguration.ContentViewConfiguration" factory="org.nuxeo.ecm.platform.types.localconfiguration.ContentViewConfigurationFactory"/> </extension>
Additional documentation
Code Sample | How To |