Changeset 440

Show
Ignore:
Timestamp:
03/29/07 16:31:33 (2 years ago)
Author:
mikey
Message:

stubFactory and all xjconf factories now support several resource locations at once

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/net/stubbles/ipo/interceptors/stubInterceptorXJConfInitializer.php

    r439 r440  
    6464    { 
    6565        $xjconf = new stubXJConfFacade(array('http://stubbles.net/ipo/interceptors' => stubXJConfLoader::getInstance())); 
    66         $xjconf->parseAndAddDefinition(stubFactory::getResourceURI('xjconf/interceptors.xml')); 
     66        $xjconf->parseAndAddDefinitions(stubFactory::getResourceURIs('xjconf/interceptors.xml')); 
    6767        $xjconf->enableXIncludes(); 
    6868        $xjconf->parse($this->configFile); 
  • trunk/src/main/php/net/stubbles/ipo/request/stubXmlRequestValueErrorFactory.php

    r386 r440  
    4747    { 
    4848        if (null == $source) { 
    49             $source = stubFactory::getResourceURI('ipo/request.xml'); 
     49            $source = stubFactory::getResourceURIs('ipo/request.xml'); 
    5050        } 
    5151         
    52         if (isset($this->initDone[$source]) == false) { 
    53             $this->init($source); 
     52        if (is_array($source) == false) { 
     53            $source = array($source); 
     54        } 
     55         
     56        foreach ($source as $sourceURI) { 
     57            if (isset($this->initDone[$sourceURI]) == false) { 
     58                $this->init($sourceURI); 
     59            } 
    5460        } 
    5561         
     
    6773        if (count($this->initDone) == 0) { 
    6874            $this->xjconf = new stubXJConfFacade(); 
    69             $this->xjconf->setDefinitionFile(stubFactory::getResourceURI('xjconf/request.xml')); 
     75            $this->xjconf->parseAndAddDefinitions(stubFactory::getResourceURIs('xjconf/request.xml')); 
    7076        } 
    7177         
  • trunk/src/main/php/net/stubbles/rdbms/stubDatabaseInitializer.php

    r439 r440  
    2828    { 
    2929        $xjconf = new stubXJConfFacade(array('http://stubbles.net/rdbms' => stubXJConfLoader::getInstance())); 
    30         $xjconf->parseAndAddDefinition(stubFactory::getResourceURI('xjconf/rdbms.xml')); 
     30        $xjconf->parseAndAddDefinitions(stubFactory::getResourceURIs('xjconf/rdbms.xml')); 
    3131        $xjconf->enableXIncludes(); 
    3232        $xjconf->parse($configFile); 
  • trunk/src/main/php/net/stubbles/star/StarClassRegistry.php

    r258 r440  
    8181        return null; 
    8282    } 
     83     
     84    /** 
     85     * returns all uris for a given resource 
     86     * 
     87     * @param   string  $fileName  file name of resource 
     88     * @return  array 
     89     */ 
     90    public static function getUrisForResource($resource) 
     91    { 
     92        self::init(); 
     93        $uris = array(); 
     94        foreach (self::$files as $file => $contents) { 
     95            foreach ($contents as $content) { 
     96                if ($content == $resource) { 
     97                    $uris[] = 'star://' . $file . '?' . $resource; 
     98                    continue 2; 
     99                } 
     100            } 
     101        } 
     102         
     103        return $uris; 
     104    } 
    83105 
    84106    /** 
  • trunk/src/main/php/net/stubbles/util/log/stubLoggerXJConfFactory.php

    r439 r440  
    2929    { 
    3030        $xjconf = new stubXJConfFacade(array('http://stubbles.net/util/log' => stubXJConfLoader::getInstance())); 
    31         $xjconf->parseAndAddDefinition(stubFactory::getResourceURI('xjconf/logging.xml')); 
     31        $xjconf->parseAndAddDefinitions(stubFactory::getResourceURIs('xjconf/logging.xml')); 
    3232        $configExtension = new stubConfigXJConfExtension(); 
    3333        $xjconf->addExtension($configExtension); 
  • trunk/src/main/php/net/stubbles/util/stubFactory.php

    r386 r440  
    2121     * @var  string 
    2222     */ 
    23     private static $resourceURI = null; 
     23    private static $resourcePath = null; 
    2424     
    2525    /** 
     
    2828    public static function __static() 
    2929    { 
    30         if (substr(__FILE__, 0, 7) == 'star://') { 
    31             self::$resourceURI = str_replace('net.stubbles.util.stubFactory', '', __FILE__)
     30        if (basename(__FILE__) != __CLASS__ . '.php') { 
     31            self::$resourcePath = realpath(str_replace('star://', '', dirname(__FILE__)) . '/../src/main/resources') . DIRECTORY_SEPARATOR
    3232        } else { 
    33             self::$resourceURI = realpath(dirname(__FILE__) . '/../../../../resources') . DIRECTORY_SEPARATOR; 
     33            self::$resourcePath = realpath(dirname(__FILE__) . '/../../../../resources') . DIRECTORY_SEPARATOR; 
    3434        } 
    3535    } 
    3636     
    3737    /** 
    38      * return the path to the resource files 
     38     * return the uris for a resource 
    3939     * 
    4040     * @param  string  $fileName  the resource to load 
    4141     */ 
    42     public static function getResourceURI($fileName) 
     42    public static function getResourceURIs($fileName) 
    4343    { 
    44         return (self::$resourceURI . $fileName); 
     44        if (stubConfig::useStar() == true && class_exists('StarClassRegistry', false) == true) { 
     45            $uris = StarClassRegistry::getUrisForResource($fileName); 
     46        } else { 
     47            $uris = array(); 
     48        } 
     49         
     50        if (file_exists(self::$resourcePath . $fileName) == true) { 
     51            $uris[] = self::$resourcePath . $fileName; 
     52        } 
     53         
     54        return $uris; 
    4555    } 
    4656} 
  • trunk/src/main/php/net/stubbles/util/stubRegistryXJConfInitializer.php

    r439 r440  
    5353    { 
    5454        $xjconf = new stubXJConfFacade(array('http://stubbles.net/util/registry' => stubXJConfLoader::getInstance())); 
    55         $xjconf->parseAndAddDefinition(stubFactory::getResourceURI('xjconf/registry.xml')); 
     55        $xjconf->parseAndAddDefinitions(stubFactory::getResourceURIs('xjconf/registry.xml')); 
    5656        $xjconf->enableXIncludes(); 
    5757        $xjconf->parse($this->configFile); 
  • trunk/src/main/php/net/stubbles/util/xjconf/stubXJConfFacade.php

    r439 r440  
    131131     
    132132    /** 
     133     * parses a definition file and adds its definitions 
     134     * 
     135     * @param  array  $definitions 
     136     */ 
     137    public function parseAndAddDefinitions(array $definitions) 
     138    { 
     139        foreach ($definitions as $definition) { 
     140            $this->addNamespaceDefinitions($this->parseDefinition($definition)); 
     141        } 
     142    } 
     143     
     144    /** 
    133145     * parses a given file and creates the data structure described in this file 
    134146     * 
  • trunk/src/main/php/net/stubbles/websites/processors/stubProcessorResolverXJConfFactory.php

    r439 r440  
    5959    { 
    6060        $xjconf = new stubXJConfFacade(array('http://stubbles.net/websites' => stubXJConfLoader::getInstance())); 
    61         $xjconf->parseAndAddDefinition(stubFactory::getResourceURI('xjconf/processors.xml')); 
     61        $xjconf->parseAndAddDefinitions(stubFactory::getResourceURIs('xjconf/processors.xml')); 
    6262        $xjconf->parse($this->configFile); 
    6363        $this->resolver = $xjconf->getConfigValue('resolver'); 
  • trunk/src/main/php/net/stubbles/websites/stubXJConfPageFactory.php

    r439 r440  
    3434        if (null == self::$xjconf) { 
    3535            self::$xjconf = new stubXJConfFacade(array('http://stubbles.net/websites' => stubXJConfLoader::getInstance())); 
    36             self::$xjconf->parseAndAddDefinition(stubFactory::getResourceURI('xjconf/websites.xml')); 
     36            self::$xjconf->parseAndAddDefinitions(stubFactory::getResourceURIs('xjconf/websites.xml')); 
    3737        } 
    3838    } 
  • trunk/src/main/php/net/stubbles/websites/variantmanager/stubXJConfVariantFactory.php

    r439 r440  
    2929    { 
    3030        $xjconf = new stubXJConfFacade(array('http://stubbles.net/websites/variantmanager' => stubXJConfLoader::getInstance())); 
    31         $xjconf->parseAndAddDefinition(stubFactory::getResourceURI('xjconf/variantmanager.xml')); 
     31        $xjconf->parseAndAddDefinitions(stubFactory::getResourceURIs('xjconf/variantmanager.xml')); 
    3232         
    3333        if (null == $configFile) { 
  • trunk/src/main/php/net/stubbles/websites/xml/stubXMLPostInterceptor.php

    r386 r440  
    151151     * 
    152152     * @return  DOMDocument 
     153     * @todo    fix selection of uri 
    153154     */ 
    154155    protected function createXSLStylesheet() 
    155156    { 
    156         return DOMDocument::load(stubFactory::getResourceURI('xsl/master.xsl')); 
     157        $uris = stubFactory::getResourceURIs('xsl/master.xsl'); 
     158        return DOMDocument::load($uris[0]); 
    157159    } 
    158160