For those who are using the collectionprovider code you'll need to make a couple changes.

1. WorkspaceProvider is now ServiceProvider

2. You no longer have to have a separate target resolver. ServiceProvider has a built in one now, which greatly simplifies configuration. So if you're using spring it will look something like this:

 <a:serviceContext>

   <a:provider>
     <ref bean="provider"/>
   </a:provider>
<a:targetResolver>
     <ref bean="provider"/>
   </a:targetResolver>
</a:serviceContext>

<bean id="provider" class="org.apache.abdera.protocol.server.impl.ServiceProvider"> <property name="servicesPath" value="/service/"/> <!-- This is optional, defaults to "/" -->
   <property name="workspaces">
     <list>
<bean class="org.apache.abdera.protocol.server.impl.SimpleWorkspaceInfo">
         <property name="name" value="Title of your workspace"/>
         <property name="collectionProviders">
           <map>
             <entry key="relative/href/to/feed">
               <bean class="YourCollectionProvider"/>
             </entry>
           </map>
         </property>
       </bean>
     </list>
   </property>
 </bean>

Yeah we still need nice xml for ServiceProvider/CollectionProvider, but that'll come. We also need to figure out a way to auto detect that the Provider implements Target<Resolver>.

3. Note the servicesPath proeprty on ServiceProvider. This just specifies the path to your services document from the Abdera servlet.

4. Note that the map of collection providers is now keyed by a relative URI. So in the above example, the collection would be located at http://localhost/services/relative/href/to/feed. This allows a lot more flexible mappings.

Cheers,
- Dan

--
Dan Diephouse
MuleSource
http://mulesource.com | http://netzooid.com/blog

Reply via email to