<configure
   xmlns="http://namespaces.zope.org/zope"
   i18n_domain="zope"
   >

  <adapter
     provides=".interfaces.IFind"
     for=".interfaces.IReadContainer"
     permission="zope.ManageContent"
     factory="zope.container.find.FindAdapter"
     />

  <adapter
      for=".interfaces.IReadContainer"
      provides="zope.filerepresentation.interfaces.IReadDirectory"
      factory=".directory.noop"
      />

  <adapter
      for=".interfaces.IWriteContainer"
      provides="zope.filerepresentation.interfaces.IWriteDirectory"
      factory=".directory.noop"
      />

  <adapter
      for=".interfaces.IContentContainer"
      provides="zope.filerepresentation.interfaces.IDirectoryFactory"
      factory=".directory.Cloner"
      permission="zope.ManageContent"
      />

  <adapter
      for=".interfaces.IContentContainer"
      provides="zope.filerepresentation.interfaces.IReadDirectory"
      factory=".directory.ReadDirectory"
      permission="zope.View"
      />

  <adapter
      factory="zope.container.traversal.ContainerTraversable"
      provides="zope.traversing.interfaces.ITraversable"
      for="zope.container.interfaces.IReadContainer"
      />


  <adapter
      factory="zope.container.size.ContainerSized"
      provides="zope.size.interfaces.ISized"
      for="zope.container.interfaces.IReadContainer"
      />

  <adapter
      provides=".interfaces.INameChooser"
      for="zope.container.interfaces.IWriteContainer"
      factory=".contained.NameChooser"
      />

  <subscriber
      for="zope.location.interfaces.ILocation
           zope.lifecycleevent.interfaces.IObjectMovedEvent"
      handler=".contained.dispatchToSublocations"
      >
      Handler dispatches moved events to sublocations of the original object.
  </subscriber>

  <adapter
      provides="zope.location.interfaces.ISublocations"
      for="zope.container.interfaces.IReadContainer"
      factory=".contained.ContainerSublocations"
      />

  <class class=".constraints.ItemTypePrecondition">
    <allow interface=".constraints.IItemTypePrecondition" />
  </class>

  <adapter
      for="zope.container.interfaces.IItemContainer
           zope.publisher.interfaces.browser.IBrowserRequest"
      provides="zope.publisher.interfaces.browser.IBrowserPublisher"
      factory="zope.container.traversal.ItemTraverser"
      permission="zope.Public"
      />

  <adapter
      for="zope.container.interfaces.ISimpleReadContainer
           zope.publisher.interfaces.browser.IBrowserRequest"
      provides="zope.publisher.interfaces.browser.IBrowserPublisher"
      factory="zope.container.traversal.ItemTraverser"
      permission="zope.Public"
      />

  <view 
      for="zope.container.interfaces.IItemContainer"
      type="zope.publisher.interfaces.xmlrpc.IXMLRPCRequest"
      provides="zope.publisher.interfaces.xmlrpc.IXMLRPCPublisher"
      factory="zope.container.traversal.ItemTraverser"
      permission="zope.Public"
      />

  <view 
      for="zope.container.interfaces.IReadContainer"
      type="zope.publisher.interfaces.xmlrpc.IXMLRPCRequest"
      provides="zope.publisher.interfaces.xmlrpc.IXMLRPCPublisher"
      factory="zope.container.traversal.ContainerTraverser"
      permission="zope.Public"
      />

</configure>
