Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register
Show
Ignore:
Timestamp:
02/29/08 19:16:14 (10 months ago)
Author:
tmdugan
Message:

-- dss

* added processPackagePrefix method to Util class

* added defaultPackagePrefix processing to load rule. If a rule token cannot be loaded as passed or from the dynamic rule directory the default package prefix is checked

* fixed an error when checking module class loaders for loaded classes in CompilingClassLoader

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openmrs-modules/dss/src/org/openmrs/module/dss/CompilingClassLoader.java

    r3289 r3513  
    141141        } 
    142142         
    143          
    144          
    145143        // The heart of the ClassLoader -- automatically compile 
    146144        // source as necessary when looking for class files 
     
    151149        { 
    152150                AdministrationService adminService = Context.getAdministrationService(); 
    153                 String rulePackagePrefix = adminService.getGlobalProperty("dss.rulePackagePrefix"); 
    154                 if(!rulePackagePrefix.endsWith(".")) 
    155                 { 
    156                         rulePackagePrefix+="."; 
    157                 } 
     151                String rulePackagePrefix = Util.processPackagePrefix( 
     152                                adminService.getGlobalProperty("dss.rulePackagePrefix")); 
    158153                String javaRuleDirectory = Util.processFileDirectoryGlobalProperty("dss.javaRuleDirectory"); 
    159154                String classRulesDirectory = Util.processFileDirectoryGlobalProperty( 
     
    215210                                ModuleFactory.getModuleClassLoaders(); 
    216211                         
    217                         for(ModuleClassLoader currClassLoader:moduleClassLoaders) 
    218                         { 
     212                        Iterator<ModuleClassLoader> iter = moduleClassLoaders.iterator(); 
     213                         
     214                        while(iter.hasNext()&&clas == null) 
     215                        { 
     216                                ModuleClassLoader currClassLoader = iter.next(); 
    219217                                try 
    220218                                { 
     
    235233                        // Create a pathname from the class name 
    236234                        // E.g. java.lang.Object => java/lang/Object 
    237                         String fileStub = name.replace('.', '\\'); 
     235                        String fileStub = name; 
     236                        if(fileStub.lastIndexOf('.') >-1) 
     237                        { 
     238                                fileStub = fileStub.substring(fileStub.lastIndexOf('.')+1, 
     239                                                fileStub.length()); 
     240                        } 
     241                         
    238242                        // Build objects pointing to the source code (.java) and object 
    239243                        // code (.class) 
     
    247251                         
    248252                        // If no javafile exists, run thru the arden parser 
    249                          
    250253                        if(mlmFile.exists()&&(!javaFile.exists() || mlmFile.lastModified() > javaFile.lastModified())) 
    251254                        { 
     
    344347                                byte raw[] = getBytes(classFilename); 
    345348                                // try to turn them into a class 
    346                                 clas = defineClass(rulePackagePrefix + name, raw, 0, raw.length); 
     349                                clas = defineClass( name, raw, 0, raw.length); 
    347350                                 
    348351                                //load class filename into rule table 
     
    363366                        } catch (Exception ie) 
    364367                        { 
    365                                 log.error("Error defining class file: "+classFilename+". \n"+ 
    366                                                 ie.getMessage()); 
    367368                        } 
    368369                }