You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by bu...@apache.org on 2003/11/25 08:10:36 UTC

DO NOT REPLY [Bug 24964] New: - broken SlideRepository <-> SlideSourceFactory / SlidePrincipalProvider

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24964>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24964

broken SlideRepository <-> SlideSourceFactory / SlidePrincipalProvider

           Summary: broken SlideRepository <-> SlideSourceFactory /
                    SlidePrincipalProvider
           Product: Cocoon 2
           Version: Current CVS 2.1
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: general components
        AssignedTo: dev@cocoon.apache.org
        ReportedBy: samc@atnet.net.au


I'm not sure how far back in CVS this goes, but it would appear that the
SlideRepository component, when looked up from the component manager, is wrapped
in a ComponentProxy. The proxy exposes itself with the interfaces Component,
Repository which contain no methods. 

SlideSource and SlidePrincipalProvider try "instanceof SlideRepository" and then
a cast to SlideRepository to be able to call the get*NamespaceAccessToken()
methods. Neither of these will work.

I found I needed to define these methods in the Repository interface, this
works, but I suspect it is not clean since the component role now contains slide
specific. I was considering trying to refactor this, but I cannot conceive what
actually has to be done here- if indeed the design is wrong in the first place.

I presume the reason the component proxy is generated is to further enforce
avalon ideals of interchangeable role implementations?

NB: Also broken appears to be the selector for the principal provider. I do not
know exactly why, but changing the class in the cocoon.xconf file from
DefaultServiceSelector to ExtendedComponentSelector seemed to fix this problem.
Perhaps something has gone wrong here somewhere in the change from Composables
-> Serviceables?
Werner Masik noted this problem on the users lists I believe.