Package org.apache.avalon.fortress.util.dag

Examples of org.apache.avalon.fortress.util.dag.Vertex


        if ( javaClass == null ) throw new NullPointerException( "javaClass" );

        m_javaClass = javaClass;
        m_attributes = new Properties();
        m_dependencies = new ArrayList( 10 );
        m_vertex = new Vertex( this );
        m_dependencyNames = new ArrayList( 10 );
        m_serviceNames = new ArrayList( 10 );

        final DocletTag[] tags = javaClass.getTagsByName( TAG_SERVICE );
        for ( int t = 0; t < tags.length; t++ )
View Full Code Here


        {
            ComponentHandlerEntry entry = (ComponentHandlerEntry) it.next();
            ComponentHandlerMetaData metaData = entry.getMetaData();

            String name = metaData.getName();
            Vertex v = (Vertex) vertexMap.get( name );
            if ( v == null )
            {
                v = new Vertex( name, entry.getHandler() );
                vertexMap.put( name, v );
                vertices.add( v );
            }

            MetaInfoEntry meta = m_metaManager.getMetaInfoForClassname( metaData.getClassname() );

            Iterator dit = meta.getDependencies().iterator();
            while ( dit.hasNext() )
            {
                Map deps = (Map) m_mapper.get( dit.next() );

                /* Ignore for now...  It is probably due to a component requiring a Container
                 * component....  This happens when a required Service is not _directly_ handled
                 * by this container.
                 */
                if ( null == deps ) continue;

                Iterator mdit = deps.entrySet().iterator();
                while ( mdit.hasNext() )
                {
                    Map.Entry depEntry = (Map.Entry) mdit.next();

                    // If this key is neither the DEFAULT_ENTRY or the SELECTOR_ENTRY then we
                    //  want to add a dependency vertex.
                    if ( !( depEntry.getKey().equals( DEFAULT_ENTRY ) ||
                            depEntry.getKey().equals( SELECTOR_ENTRY ) ) )
                    {
                        String dName = depEntry.getKey().toString();
                        Vertex dv = (Vertex) vertexMap.get( dName );
                        if ( dv == null )
                        {
                            dv = new Vertex( dName, depEntry.getValue() );
                            vertexMap.put( dName, dv );
                            vertices.add( dv );
                        }
                        v.addDependency( dv );
                    }
                }
            }
        }

        DirectedAcyclicGraphVerifier.topologicalSort( vertices );

        if ( getLogger().isDebugEnabled() )
        {
            getLogger().debug( "Component initialization order:" );
            int i = 1;
            for ( Iterator iter = vertices.iterator(); iter.hasNext(); i++ )
            {
                Vertex v = (Vertex) iter.next();
                getLogger().debug( "  #" + i + " (" + v.getOrder() + ") : " + v.getName() );
            }
        }

        Collections.reverse( vertices );

View Full Code Here

        {
            getLogger().debug( "Component shutdown order:" );
            int i = 1;
            for ( Iterator iter = m_shutDownOrder.iterator(); iter.hasNext(); i++ )
            {
                Vertex v = (Vertex) iter.next();
                getLogger().debug( "  #" + i + " (" + v.getOrder() + ") : " + v.getName() );
            }
        }

        final Iterator i = m_shutDownOrder.iterator();
        while ( i.hasNext() )
        {
            final Vertex entry = (Vertex) i.next();
            final ComponentHandler handler = (ComponentHandler) entry.getNode();

            if ( getLogger().isDebugEnabled() ) getLogger().debug( "Shutting down: " + handler );
            ContainerUtil.dispose( handler );
            if ( getLogger().isDebugEnabled() ) getLogger().debug( "Done." );
        }
View Full Code Here

TOP

Related Classes of org.apache.avalon.fortress.util.dag.Vertex

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.