#6297 closed enhancement (invalid)
Keep a consistent API when plug-ins subclass/override Trac classes
Reported by: | egilwilde | Owned by: | Andrea Tomasini |
---|---|---|---|
Priority: | normal | Component: | AgiloForTracPlugin |
Severity: | normal | Keywords: | |
Cc: | Thijs Triemstra | Trac Release: | 0.11 |
Description
I recently upgraded our Agilo installation to version 1.1.1. We soon found out that the upgrade broke the Mylyn connection to Eclipse, which we maintain using XML-RPC.
The cause seems to be that Agilo overrides the Milestone class with its own AgiloMilestone class. That caused the RPC namespace 'ticket.milestone' to change into 'ticket.agilomilestone', which in turn broke the Mylyn connection which relies on 'ticket.milestone.getAll'.
Now, I would not call this a bug in either product, but I think it is safe to assume that this is not the last case we will see of overriding classes in plug-ins. I would consider it a nice-to-have feature if the XML-RPC could be configured to provide a consistent API regardless of the names of the underlying implementing classes.
Attachments (0)
Change History (4)
comment:1 Changed 15 years ago by
Cc: | Thijs Triemstra added; anonymous removed |
---|
comment:2 Changed 14 years ago by
Component: | XmlRpcPlugin → AgiloForScrumPlugin |
---|---|
Owner: | changed from osimons to Andrea Tomasini |
comment:3 Changed 12 years ago by
Resolution: | → invalid |
---|---|
Status: | new → closed |
You'll need to ask over on the Agilo mailing list, see AgiloForTracPlugin#BugsFeatureRequests for details. I don't think the Agilo guys monitor trac-hacks for bug reports.
comment:4 Changed 12 years ago by
@reporter: please upgrade to the latest Agilo for Trac version (currently 0.9.10/1.3.10). If you have problems/bug reports, please write to support@…
As from todays ticket #8550 discussion, I think we can safely conclude that this really is an issue for Agilo and not for the RPC plugin. RPC plugin can't possibly maintain a 'consistent API' when Agilo reworks, subclasses and replaces core Trac functionality.
RPC plugin is pluggable at all ends, and like how Agilo replaces Trac functionality there is no reason why they (or someone else) can't provide a replacement
tracrpc.ticket
module answering to same calls but resolving it their way.The RPC plugin provides a functional test suite so that makes a good starting point for Agilo to test how their Trac & replacement API performs against expected RPC behavior. See my blog post for details of how to get the tests running. I'll happily apply patches with new tests if needed to further detail expected behaviour for clients.