Changeset 519

Show
Ignore:
Timestamp:
04/14/07 17:19:08 (1 year ago)
Author:
schst
Message:

Added ability to resrict the proxy generation to one or more classes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/docroot/jsonrpclab/test-json-rpc.php

    r517 r519  
    99  <script type="text/javascript" src="javascript/stub-base.js"></script> 
    1010  <script type="text/javascript" src="javascript/stub-json-rpc.js"></script> 
    11   <script type="text/javascript" src="<?php echo dirname($_SERVER['PHP_SELF']);?>/jsonrpc.php?processor=jsonrpc&__generateProxy=true"></script> 
     11  <script type="text/javascript" src="<?php echo dirname($_SERVER['PHP_SELF']);?>/jsonrpc.php?processor=jsonrpc&__generateProxy=__all"></script> 
    1212<script type="text/javascript"> 
    1313var callbackObj = { 
  • trunk/src/main/php/net/stubbles/websites/processors/stubJsonRpcProcessor.php

    r518 r519  
    7777 
    7878        if ($this->request->hasValue('__generateProxy', stubRequest::SOURCE_PARAM)) { 
    79             $this->generateProxies(); 
     79            $proxyClassvalidator = new stubRegexValidator('^[A-Za-z,0-9_\.]+$'); 
     80            $classes = $this->request->getValidatedValue($proxyClassvalidator, '__generateProxy', stubRequest::SOURCE_PARAM); 
     81            if ($classes === '__all') { 
     82                $this->generateProxies(); 
     83            } else { 
     84                $this->generateProxies(explode(',', $classes)); 
     85            } 
    8086        } elseif ($this->request->getMethod() === 'get') { 
    8187            $this->processGetRequest(); 
     
    8995     * 
    9096     * @param array        restrict to classes 
    91      * @todo  restrict to classes 
    9297     */ 
    9398    public function generateProxies($classes = null) { 
     
    104109        $jsCode = ''; 
    105110        foreach ($this->classMap as $jsClass => $serviceConfig) { 
     111            if (is_array($classes) && !in_array($jsClass, $classes)) { 
     112                continue; 
     113            } 
    106114            $jsCode = $generator->generateJavascriptProxy($serviceConfig['className'], $jsClass, $jsCode); 
    107115        }