bloritsch    01/02/16 08:29:26

  Modified:    src/org/apache/cocoon/components/language/generator Tag:
                        xml-cocoon2 ProgramGeneratorImpl.java
  Log:
  Provide an Early release on ProgramGenerator
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.28  +32 -31    
xml-cocoon/src/org/apache/cocoon/components/language/generator/Attic/ProgramGeneratorImpl.java
  
  Index: ProgramGeneratorImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/language/generator/Attic/ProgramGeneratorImpl.java,v
  retrieving revision 1.1.2.27
  retrieving revision 1.1.2.28
  diff -u -r1.1.2.27 -r1.1.2.28
  --- ProgramGeneratorImpl.java 2001/02/16 16:21:38     1.1.2.27
  +++ ProgramGeneratorImpl.java 2001/02/16 16:29:21     1.1.2.28
  @@ -45,7 +45,7 @@
   /**
    * The default implementation of <code>ProgramGenerator</code>
    * @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a>
  - * @version CVS $Revision: 1.1.2.27 $ $Date: 2001/02/16 16:21:38 $
  + * @version CVS $Revision: 1.1.2.28 $ $Date: 2001/02/16 16:29:21 $
    */
   public class ProgramGeneratorImpl extends AbstractLoggable implements 
ProgramGenerator, Contextualizable, Composer, Configurable, ThreadSafe {
   
  @@ -141,32 +141,32 @@
               // Ensure no 2 requests for the same file overlap
               Class program = null;
               CompiledComponent programInstance = null;
  -            synchronized(filename.intern()) {
  -                // Attempt to load program object from cache
  +
  +            // Attempt to load program object from cache
  +            try {
  +                programInstance = (CompiledComponent) 
this.cache.select(filename);
  +                if (this.autoReload == false) return programInstance;
  +            } catch (Exception e) {
  +                getLogger().debug("The instance was not accessible, creating 
it now.");
                   try {
  -                    programInstance = (CompiledComponent) 
this.cache.select(filename);
  -                } catch (Exception e) {
  -                    getLogger().debug("The instance was not accessible, 
creating it now.");
  -                    try {
  -                        if (programInstance == null) {
  -                          /*
  -                             FIXME: Passing null as encoding may result in 
invalid
  -                             recompilation under certain circumstances!
  -                          */
  -
  -                            program = 
programmingLanguage.load(normalizedName, this.workDir, null);
  -                            // Store loaded program in cache
  -                            this.cache.addGenerator(filename, program);
  -                        }
  -                        // Instantiate program
  -                        programInstance = 
programmingLanguage.instantiate(program);
  -                        if (programInstance instanceof Loggable) {
  -                            
((Loggable)programInstance).setLogger(getLogger());
  -                        }
  -                        programInstance.compose(this.manager);
  -                    } catch (LanguageException le) {
  -                        getLogger().debug("Language Exception", le);
  +                    if (programInstance == null) {
  +                      /*
  +                         FIXME: Passing null as encoding may result in 
invalid
  +                         recompilation under certain circumstances!
  +                      */
  +
  +                        program = programmingLanguage.load(normalizedName, 
this.workDir, null);
  +                        // Store loaded program in cache
  +                        this.cache.addGenerator(filename, program);
                       }
  +                    // Instantiate program
  +                    programInstance = 
programmingLanguage.instantiate(program);
  +                    if (programInstance instanceof Loggable) {
  +                        ((Loggable)programInstance).setLogger(getLogger());
  +                    }
  +                    programInstance.compose(this.manager);
  +                } catch (LanguageException le) {
  +                    getLogger().debug("Language Exception", le);
                   }
   
                 /*
  @@ -174,13 +174,14 @@
                    be queried for changes!!!
                 */
   
  -                if (this.autoReload && programInstance != null && 
programInstance.modifiedSince(file.lastModified())) {
  -                        // Unload program
  -                        programmingLanguage.unload(program, normalizedName, 
this.workDir);
  -                        // Invalidate previous program/instance pair
  -                        program = null;
  -                        programInstance = null;
  +                if (programInstance != null && 
programInstance.modifiedSince(file.lastModified())) {
  +                    // Unload program
  +                    programmingLanguage.unload(program, normalizedName, 
this.workDir);
  +                    // Invalidate previous program/instance pair
  +                    program = null;
  +                    programInstance = null;
                   }
  +
                   if (program == null) {
                       // Generate code
                       String code = markupLanguage.generateCode(
  
  
  

Reply via email to