2537
|
|
|
exarkun |
15 years ago
|
|
|
2536
|
|
|
exarkun |
15 years ago
|
|
|
2535
|
|
|
exarkun |
15 years ago
|
|
|
2534
|
|
|
exarkun |
15 years ago
|
|
|
2533
|
|
|
exarkun |
15 years ago
|
|
|
2532
|
|
|
washort |
15 years ago
|
|
|
2531
|
|
|
moe |
15 years ago
|
|
|
2530
|
|
|
exarkun |
15 years ago
|
|
|
2529
|
|
|
washort |
15 years ago
|
|
|
2528
|
|
|
exarkun |
15 years ago
|
|
|
2527
|
|
|
moe |
15 years ago
|
|
|
2526
|
|
|
washort |
15 years ago
|
|
|
2525
|
|
|
exarkun |
15 years ago
|
|
|
2524
|
|
Add an API for messaging between stores of Mantissa users.
Fixes #2191
Author: glyph
Reviewer: exarkun
The new xmantissa.interstore module allows applications to queue messsages for transactional delivery between different users. This mechanism is pluggable, so that applications which use it can transparently use a networked (i.e. clustered) transport for these messages.
This new facility also provides a convenience layer for interpreting message bodies as AMP commands, and dispatching them appropriately to different methods depending on the command type and registered responders for those commands.
There were also a few APIs added in support of this change.
* `axiom.dependency.requiresFromSite` allows Axiom items to declare "soft" dependencies on powerups in the site store, which can be satisfied by installing powerups, or at runtime. This allows applications to gracefully refer to facilities which may be stateful if they are configured, but functional even if no configuration is present.
* `epsilon.expose` provides an API for creating decorators that expose methods over particular protocols. This is a good definitive implementation of this functionality: unlike the version in `twisted.protocols.amp`, it does not require the use of a metaclass (and is not specific to AMP). This allows it to be used by Item subclasses, or other classes which have their own metaclass requirements. Unlike the version in nevow.util, it allows for dispatch on keys other than the method name, allowing method names to be decoupled from protocol-level identifiers.
* `xmantissa.sharing.Identifier` provides a helpful, way structured to pass around the bundles of username/domain/shareID that are very common in dealing with code in the sharing system. Additionally, a new utility method, `Identifier.fromSharedItem`, provides a way for applications that use sharing to ask how an item is referred to, if it is already shared.
|
glyph |
15 years ago
|
|
|
2523
|
|
|
exarkun |
15 years ago
|
|
|
2522
|
|
|
exarkun |
15 years ago
|
|
|
2521
|
|
|
exarkun |
15 years ago
|
|
|
2520
|
|
|
exarkun |
15 years ago
|
|
|
2519
|
|
|
exarkun |
15 years ago
|
|
|
2518
|
|
|
exarkun |
15 years ago
|
|
|