This is a work in progress.
JSPWiki 3 should have a definitive API library, which would provide an easy API for people to code against, and could be watched to be stable from version to version. The proposed APIs to put to the new "org.apache.jspwiki.api" -package are:
- Content management (get page (meta)data, put page (meta)data, search)
- WikiPlugin interface
- PageFilter interface
- WikiContext interface (yes, WikiContext should be an interface, methinks)
- Some exceptions (classes are fine)
- WikiSession interface (WikiSession should also probably become an interface)
- AdminBean interface?
- Access to RenderingManager
- Events?
This would allow plugin and filter writers a stable base to code against. The rest (providers, and search engines, and URLConstructors, Authorizers and the lot), while pluginizable, are rather deeply integrated and probably not used that much by external developers. So I think it's fine if they can change from version to version.
--JanneJalkanen, 25 Sep 07
A first try for the APIs is available in the SVN, http://svn.apache.org/repos/asf/incubator/jspwiki/api/
JSPWiki 2.6.3 APIs
Following are the existing interfaces of JSPWiki 2.6.3/JSPWiki 2.8.0-alpha-1:
- DynamicAttachmentProvider
- attachment/DynamicAttachmentProvider.java
- AclManager
- auth/acl/AclManager.java
- Acl
- auth/acl/Acl.java
- AclEntry
- auth/acl/AclEntry.java
- UserProfile
- auth/user/UserProfile.java
- UserDatabase
- auth/user/UserDatabase.java
- Authorizer
- auth/Authorizer.java|Authorizer
- WebAuthorizer extends Authorizer
- auth/authorize/WebAuthorizer.java
- GroupDatabase
- auth/authorize/GroupDatabase.java
- DavProvider
- dav/DavProvider.java
- DiffProvider extends WikiProvider
- diff/DiffProvider.java
- WikiEventListener extends EventListener
- event/WikiEventListener.java
- PageFilter
- filters/PageFilter.java
- FormHandler
- forms/FormHandler.java
- InternalModule
- modules/InternalModule.java
- HeadingListener
- parser/HeadingListener.java
- WikiPlugin
- plugin/WikiPlugin.java
- ParserStagePlugin
- plugin/ParserStagePlugin.java
- InitializablePlugin
- plugin/InitializablePlugin.java
- WikiAttachmentProvider
- providers/WikiAttachmentProvider.java
- FastSearch
- providers/FastSearch.java
- VersioningProvider
- providers/VersioningProvider.java
- WikiPageProvider
- providers/WikiPageProvider.java
- RPCCallable
- rpc/RPCCallable.java
- SearchProvider extends WikiProvider
- search/SearchProvider.java
- SearchResult
- SearchResult.java
- StringTransmutator
- StringTransmutator.java
- ParamHandler
- tags/ParamHandler.java
- GenericHTTPHandler
- ui/GenericHTTPHandler.java
- AdminBean
- ui/admin/AdminBean.java
- Command
- ui/Command.java
- URLConstructor
- url/~URLConstructor.java
- Watchable
- util/Watchable.java
- WikiProvider
- WikiProvider.java
- Step
- workflow/Step.java
- WikiRPCHandler
- xmlrpc/WikiRPCHandler.java