donaldp     01/03/21 20:51:16

  Modified:    src/java/org/apache/phoenix/engine/facilities
                        DefaultComponentManagerBuilder.java
  Log:
  Updated facility to do dynamic type checking rather than BlockDAG class.
  
  Revision  Changes    Path
  1.2       +19 -2     
jakarta-avalon-phoenix/src/java/org/apache/phoenix/engine/facilities/DefaultComponentManagerBuilder.java
  
  Index: DefaultComponentManagerBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/phoenix/engine/facilities/DefaultComponentManagerBuilder.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultComponentManagerBuilder.java       2001/03/18 08:35:04     1.1
  +++ DefaultComponentManagerBuilder.java       2001/03/22 04:51:14     1.2
  @@ -18,6 +18,9 @@
   import org.apache.phoenix.engine.ServerApplication;
   import org.apache.phoenix.engine.blocks.BlockEntry;
   import org.apache.phoenix.engine.blocks.RoleEntry;
  +import org.apache.phoenix.metainfo.BlockInfo;
  +import org.apache.phoenix.metainfo.BlockUtil;
  +import org.apache.phoenix.metainfo.ServiceInfo;
   
   /**
    * Component responsible for building componentManager information for entry.
  @@ -47,12 +50,16 @@
       public ComponentManager createComponentManager( String name, Entry entry )
           throws ComponentManagerException
       {
  -        final DefaultComponentManager componentManager = new 
DefaultComponentManager();       
  -        final RoleEntry[] roleEntrys = ((BlockEntry)entry).getRoleEntrys();
  +        final DefaultComponentManager componentManager = new 
DefaultComponentManager();
  +        final BlockEntry blockEntry = (BlockEntry)entry;
  +        final BlockInfo info = (BlockInfo)blockEntry.getInfo();
  +        final RoleEntry[] roleEntrys = blockEntry.getRoleEntrys();
           
           for( int i = 0; i < roleEntrys.length; i++ )
           {
               final String dependencyName = roleEntrys[ i ].getName();
  +            final ServiceInfo serviceInfo = 
  +                info.getDependency( roleEntrys[ i ].getRole() ).getService();
   
               try
               {
  @@ -60,6 +67,16 @@
                   //is validated at entry time
                   final BlockEntry dependency = 
                       (BlockEntry)m_serverApplication.getEntry( dependencyName );
  +
  +                //make sure that the block offers service it supposed to be 
providing
  +                final ServiceInfo[] services = 
dependency.getBlockInfo().getServices();
  +                if( !BlockUtil.hasMatchingService( services, serviceInfo ) )
  +                {
  +                    throw new ComponentManagerException( "Dependency " + name + 
  +                                                         " does not offer service 
required: " + 
  +                                                         serviceInfo );
  +                }
  +
                   componentManager.put( roleEntrys[ i ].getRole(), 
dependency.getBlock() );
               }
               catch( final ContainerException ce ) {}
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to