Hi Sergiu, On Fri, Oct 10, 2008 at 6:20 AM, Sergiu Dumitriu <[email protected]> wrote:
asiri (SVN) wrote:
Modified: sandbox/xwiki-webdav/src/main/java/com/xpn/xwiki/plugin/webdav/resources/XWikiDavResource.java =================================================================== --- sandbox/xwiki-webdav/src/main/java/com/xpn/xwiki/plugin/webdav/resources/XWikiDavResource.java 2008-10-08 11:28:58 UTC (rev 13413) +++ sandbox/xwiki-webdav/src/main/java/com/xpn/xwiki/plugin/webdav/resources/XWikiDavResource.java 2008-10-08 12:12:14 UTC (rev 13414) @@ -9,6 +9,8 @@ import org.apache.jackrabbit.webdav.DavResourceLocator; import org.apache.jackrabbit.webdav.DavSession; import org.apache.jackrabbit.webdav.lock.LockManager; +import org.xwiki.component.manager.ComponentManager; +import org.xwiki.component.phase.Composable;
import com.xpn.xwiki.XWikiContext;
@@ -18,9 +20,14 @@ * * @version $Id$ */ -public interface XWikiDavResource extends DavResource +public interface XWikiDavResource extends DavResource, Composable { /** + * This component's role, used when code needs to look it up. + */ + String ROLE = XWikiDavResource.class.getName(); + + /** * Initializes this resource with common attributes inherited from the parent. * * @param parent Parent resource. @@ -72,6 +79,11 @@ XWikiContext getXwikiContext();
/** + * @return The {@link ComponentManager} used to lookup components. + */ + ComponentManager getComponentManager(); + + /** * @return The {@link LockManager} associated with this request (global). */ LockManager getLockManager();
I don't like this... a component interface should not expose the component manager, which is supposed to be used in implementations. Please: - remove the Composable from the interface - add it to AbstractXWikiDavResource, if needed - move the getComponentManager there, too, if you must
I'm not sure you need the component manager inside all DAV resources. As I see in the code, you only need it in the Root view, so you should only declare that XWikiRootDavView implements Composable.
FYI, the XWiki helper interfaces (Composable, LogEnabled, Initializable) are supposed to be used by implementations, not by other interfaces.
Working on it. Thanks. - Asiri
-- Sergiu Dumitriu http://purl.org/net/sergiu/ _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs