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


        super( name );
    }

    public void testSortMethods()
    {
        Vertex v = new Vertex( "Root" );
        List deps = v.getDependencies();
        assertNotNull( deps );
        assertEquals( 0, deps.size() );
        assertEquals( "Root", v.getNode() );
        assertEquals( "Root", v.getName() );
        assertEquals( 0, v.getOrder() );

        Vertex w = new Vertex( "Child" );
        v.addDependency( w );
        deps = v.getDependencies();
        assertNotNull( deps );
        assertEquals( 1, deps.size() );

        v.reset();
        w.reset();
       
        try
        {
            v.resolveOrder();
            w.resolveOrder();
        }
        catch ( CyclicDependencyException e )
        {
            fail( "Unexpected cyclic exception: " + e );
        }
       
        assertEquals( 1, v.getOrder() );
        assertEquals( 0, w.getOrder() );
    }
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++ )
            {
                final Vertex v = (Vertex) iter.next();
                final int o = v.getOrder();
               
                getLogger().debug(
                    "  #" + i + " (" + o + ") : " + v.getName()
                    + ( o > 0 ? ( " [ " + getVertexDeps(v) + " ]" ) : "" )
                );
            }
        }

View Full Code Here

        {
            getLogger().debug( "Component shutdown order:" );
            int i = 1;
            for ( Iterator iter = m_shutDownOrder.iterator(); iter.hasNext(); i++ )
            {
                final Vertex v = (Vertex) iter.next();
                final int o = v.getOrder();
               
                getLogger().debug(
                    "  #" + i + " (" + o + ") : " + v.getName()
                    + ( o > 0 ? ( " [ " + getVertexDeps(v) + " ]" ) : "" )
                );
            }
        }

        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

        final List deps = vertex.getDependencies();
        final StringBuffer buf = new StringBuffer( "" );
       
        for ( Iterator i = deps.iterator(); i.hasNext(); )
        {
            final Vertex dep = ( Vertex ) i.next();
            buf.append( dep.getName() );

            if ( i.hasNext() ) {
                buf.append( ", " );
            }
        }
View Full Code Here

        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

        super( name );
    }

    public void testSortMethods()
    {
        Vertex v = new Vertex( "Root" );
        List deps = v.getDependencies();
        assertNotNull( deps );
        assertEquals( 0, deps.size() );
        assertEquals( "Root", v.getNode() );
        assertEquals( "Root", v.getName() );
        assertEquals( 0, v.getOrder() );

        Vertex w = new Vertex( "Child" );
        v.addDependency( w );
        deps = v.getDependencies();
        assertNotNull( deps );
        assertEquals( 1, deps.size() );

        v.reset();
        w.reset();
       
        try
        {
            v.resolveOrder();
            w.resolveOrder();
        }
        catch ( CyclicDependencyException e )
        {
            fail( "Unexpected cyclic exception: " + e );
        }
       
        assertEquals( 1, v.getOrder() );
        assertEquals( 0, w.getOrder() );
    }
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++ )
            {
                final Vertex v = (Vertex) iter.next();
                final int o = v.getOrder();
               
                getLogger().debug(
                    "  #" + i + " (" + o + ") : " + v.getName()
                    + ( o > 0 ? ( " [ " + getVertexDeps(v) + " ]" ) : "" )
                );
            }
        }

View Full Code Here

        {
            getLogger().debug( "Component shutdown order:" );
            int i = 1;
            for ( Iterator iter = m_shutDownOrder.iterator(); iter.hasNext(); i++ )
            {
                final Vertex v = (Vertex) iter.next();
                final int o = v.getOrder();
               
                getLogger().debug(
                    "  #" + i + " (" + o + ") : " + v.getName()
                    + ( o > 0 ? ( " [ " + getVertexDeps(v) + " ]" ) : "" )
                );
            }
        }

        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

        final List deps = vertex.getDependencies();
        final StringBuffer buf = new StringBuffer( "" );
       
        for ( Iterator i = deps.iterator(); i.hasNext(); )
        {
            final Vertex dep = ( Vertex ) i.next();
            buf.append( dep.getName() );

            if ( i.hasNext() ) {
                buf.append( ", " );
            }
        }
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.