You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by "jay brown (JIRA)" <ji...@apache.org> on 2014/02/26 22:56:20 UTC

[jira] [Updated] (CMIS-764) Allow runtime extensibility of CmisService (via pluggable modules)

     [ https://issues.apache.org/jira/browse/CMIS-764?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

jay brown updated CMIS-764:
---------------------------

    Attachment: CmisCustomServiceWrapper.java
                CmisCustomLoggingServiceWrapper.java

CmisCustomServiceWrapper is a working example of what the base class could look like. It is a no-op pass through for all of the functions in CmisService.   This class (or something like it) would be a part of the framework. 
CmisCustomLogginServiceWrapper - this is an example of a subclass of CmisCustomServiceWrapper which is what a user would create to add arbitrary extensions to a server.   This is the only class an extension creator would have to author.   This example performs timed logging for all calls that come in for getChildren

> Allow runtime extensibility of CmisService (via pluggable modules) 
> -------------------------------------------------------------------
>
>                 Key: CMIS-764
>                 URL: https://issues.apache.org/jira/browse/CMIS-764
>             Project: Chemistry
>          Issue Type: Improvement
>          Components: opencmis-commons, opencmis-server
>    Affects Versions: OpenCMIS 0.11.0
>            Reporter: jay brown
>            Assignee: Florian Müller
>            Priority: Minor
>              Labels: feature
>             Fix For: OpenCMIS 0.11.0
>
>         Attachments: CmisCustomLoggingServiceWrapper.java, CmisCustomServiceWrapper.java
>
>
> Add functionality to the server framework such that users can plug in a chain of additional CmisService wrappers on top of the CmisService that has been defined by the server.  
> (by specifying a list of wrapper classes in the repo.properties and then adding the classes to the classpath) 
> Wrappers should be classes that implement CmisService plus a new getter/setter for the  CallContext object.   (this is needed for server to share objects with wrappers)
> Implementation of this will allow any OpenCMIS based server (even older ones) to be extended at runtime for things like custom extensions to the responses, logging, and general manipulation of the servers responses as required by customers.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)