donaldp     01/02/25 17:49:47

  Modified:    src/java/org/apache/phoenix/engine
                        DefaultServerApplication.java
  Added:       src/java/org/apache/phoenix/engine/facilitys
                        SarClassLoader.java
  Removed:     src/java/org/apache/phoenix/engine SarClassLoader.java
  Log:
  Made SarClassLoader a Facility
  
  Revision  Changes    Path
  1.4       +2 -1      
jakarta-avalon-phoenix/src/java/org/apache/phoenix/engine/DefaultServerApplication.java
  
  Index: DefaultServerApplication.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/phoenix/engine/DefaultServerApplication.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DefaultServerApplication.java     2001/02/26 01:37:11     1.3
  +++ DefaultServerApplication.java     2001/02/26 01:49:46     1.4
  @@ -43,10 +43,11 @@
   import org.apache.phoenix.engine.facilitys.DefaultComponentManagerBuilder;
   import org.apache.phoenix.engine.facilitys.DefaultConfigurationRepository;
   import org.apache.phoenix.engine.facilitys.DefaultContextBuilder;
  +import org.apache.phoenix.engine.facilitys.DefaultLogManager;
   import org.apache.phoenix.engine.facilitys.DefaultLoggerBuilder;
   import org.apache.phoenix.engine.facilitys.DefaultPolicy;
   import org.apache.phoenix.engine.facilitys.DefaultThreadManager;
  -import org.apache.phoenix.engine.facilitys.DefaultLogManager;
  +import org.apache.phoenix.engine.facilitys.SarClassLoader;
   import org.apache.phoenix.engine.phases.DefaultPhase;
   import org.apache.phoenix.engine.phases.Phase;
   import org.apache.phoenix.engine.phases.Traversal;
  
  
  
  1.1                  
jakarta-avalon-phoenix/src/java/org/apache/phoenix/engine/facilitys/SarClassLoader.java
  
  Index: SarClassLoader.java
  ===================================================================
  /* 
   * Copyright (C) The Apache Software Foundation. All rights reserved. 
   * 
   * This software is published under the terms of the Apache Software License 
   * version 1.1, a copy of which has been included with this distribution in 
   * the LICENSE file. 
   */
  package org.apache.phoenix.engine.facilitys;
  
  import java.io.File;
  import java.net.MalformedURLException;
  import java.net.URL;
  import java.security.Policy;
  import org.apache.avalon.ComponentManager;
  import org.apache.avalon.ComponentManagerException;
  import org.apache.avalon.Composer;
  import org.apache.avalon.Context;
  import org.apache.avalon.Contextualizable;
  import org.apache.avalon.Initializable;
  import org.apache.avalon.atlantis.Facility;
  import org.apache.avalon.util.io.ExtensionFileFilter;
  import org.apache.avalon.util.security.PolicyClassLoader;
  import org.apache.phoenix.engine.SarContextResources;
  
  /**
   * This component creates blocks and blockInfos.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
   */
  public class SarClassLoader
      extends PolicyClassLoader
      implements Facility, Contextualizable, Composer, Initializable
  {
      protected File              m_baseDirectory;
      protected String            m_blocksDirectory;
      protected String            m_libDirectory;
  
      public SarClassLoader()
      {
          super( new URL[ 0 ], Thread.currentThread().getContextClassLoader(), 
null );
      }
  
      public void contextualize( final Context context )
      {
          m_baseDirectory = (File)context.get( SarContextResources.APP_HOME_DIR 
);
          m_blocksDirectory = (String)context.get( 
SarContextResources.APP_BLOCKS_DIR );
          m_libDirectory = (String)context.get( SarContextResources.APP_LIB_DIR 
);
      }
  
      public void compose( final ComponentManager componentManager )
          throws ComponentManagerException
      {
          m_policy = (Policy)componentManager.lookup( "java.security.Policy" );
      }
  
      public void init()
          throws Exception
      {
          final File blockDir = 
              (new File( m_baseDirectory, m_blocksDirectory 
)).getAbsoluteFile();
          final File libDir = 
              (new File( m_baseDirectory, m_libDirectory )).getAbsoluteFile();
          
          addURLs( blockDir, new String[] { ".bar" } );
          addURLs( libDir, new String[] { ".jar", ".zip" } );
      }
  
      protected void addURLs( final File directory, final String[] extentions )
          throws MalformedURLException
      {
          final ExtensionFileFilter filter = new ExtensionFileFilter( 
extentions );
          final File[] files = directory.listFiles( filter );
          if( null == files ) return;
          addURLs( files );
      }
  
      protected void addURLs( final File[] files )
          throws MalformedURLException
      {     
          for( int i = 0; i < files.length; i++ )
          {
              addURL( files[ i ].toURL() );
          }
      }
  }
  
  
  

Reply via email to