leif 2002/11/29 19:17:50 Modified: containerkit/src/java/org/apache/excalibur/containerkit/verifier Resources.properties Added: containerkit/src/java/org/apache/excalibur/containerkit/metadata PartitionMetaData.java containerkit/src/java/org/apache/excalibur/containerkit/registry PartitionProfile.java ProfileBuilder.java Log: Commit for PeterD. Add support for partitions. Revision Changes Path 1.1 jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/metadata/PartitionMetaData.java Index: PartitionMetaData.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.txt file. */ package org.apache.excalibur.containerkit.metadata; import org.apache.avalon.framework.info.Attribute; import org.apache.avalon.framework.info.FeatureDescriptor; /** * In each Assembly there may be groups of components that * are activated together and treated as a group. These * components are all "visible" to each other as peers. * The group will have a name and may use resources from * other partitions. Partitions can also be nested one inside * each other. * * @author <a href="mailto:peter at apache.org">Peter Donald</a> * @version $Revision: 1.1 $ $Date: 2002/11/30 03:17:50 $ */ public class PartitionMetaData extends FeatureDescriptor { /** * Constant for an empty set of partitions. */ public static final PartitionMetaData[] EMPTY_SET = new PartitionMetaData[ 0 ]; /** * The name of the partition. This is an * abstract name used during assembly. */ private final String m_name; /** * An array listing the set of other partitions required by * this partition. The required partitions must be initialized * and in ready state prior to this partition starting and this * partition must be shutdown prior */ private final String[] m_depends; /** * AN array of partitions that are contained by this * object. */ private final PartitionMetaData[] m_partitions; /** * AN array of components that are contained by this * object. */ private final ComponentMetaData[] m_components; /** * Create a PartitionMetaData. * * @param name the abstract name of component meta data instance * @param depends the partitions depended upon by this parition * @param partitions the partitions contained by this partition * @param components the components contained by this partition * @param attributes the extra attributes that are used to describe component */ public PartitionMetaData( final String name, final String[] depends, final PartitionMetaData[] partitions, final ComponentMetaData[] components, final Attribute[] attributes ) { super( attributes ); if( null == name ) { throw new NullPointerException( "name" ); } if( null == depends ) { throw new NullPointerException( "depends" ); } if( null == partitions ) { throw new NullPointerException( "partitions" ); } if( null == components ) { throw new NullPointerException( "components" ); } m_name = name; m_depends = depends; m_partitions = partitions; m_components = components; } /** * Return the name of component profile. * * @return the name of the component profile. */ public String getName() { return m_name; } /** * Return the set of prereqs for this partition. * * @return the set of prereqs for this partition. */ public String[] getDepends() { return m_depends; } /** * Return the set of partitions contained in this partition. * * @return the set of partitions contained in this partition. */ public PartitionMetaData[] getPartitions() { return m_partitions; } /** * Return the set of components contained in this partition. * * @return the set of components contained in this partition. */ public ComponentMetaData[] getComponents() { return m_components; } /** * Return the partition with specified name. * * @return the partition with specified name. */ public PartitionMetaData getPartition( final String name ) { for( int i = 0; i < m_partitions.length; i++ ) { final PartitionMetaData partition = m_partitions[ i ]; if( partition.getName().equals( name ) ) { return partition; } } return null; } /** * Return the component with specified name. * * @return the component with specified name. */ public ComponentMetaData getComponent( final String name ) { for( int i = 0; i < m_components.length; i++ ) { final ComponentMetaData component = m_components[ i ]; if( component.getName().equals( name ) ) { return component; } } return null; } } 1.1 jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/registry/PartitionProfile.java Index: PartitionProfile.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.txt file. */ package org.apache.excalibur.containerkit.registry; import org.apache.excalibur.containerkit.metadata.PartitionMetaData; /** * The PartitionProfile contains the set of data required * to construct a specific instance of a Profile. It contains * a set of child PartitionProfile and {@link ComponentProfile} * objects. * * @author <a href="mailto:peter at apache.org">Peter Donald</a> * @version $Revision: 1.1 $ $Date: 2002/11/30 03:17:50 $ */ public class PartitionProfile { /** * Constant for an empty set of partitions. */ public static final PartitionProfile[] EMPTY_SET = new PartitionProfile[ 0 ]; /** * The {@link PartitionMetaData} for this partition. */ private final PartitionMetaData m_metaData; /** * An array of partitions that are contained by this * object. */ private final PartitionProfile[] m_partitions; /** * An array of partitions that are contained by this * object. */ private final ComponentProfile[] m_components; /** * Create a PartitionProfile. * * @param metaData the meta data about this profile * @param partitions the partitions contained by this partition * @param components the components contained by this partition */ public PartitionProfile( final PartitionMetaData metaData, final PartitionProfile[] partitions, final ComponentProfile[] components ) { if( null == metaData ) { throw new NullPointerException( "metaData" ); } if( null == partitions ) { throw new NullPointerException( "partitions" ); } if( null == components ) { throw new NullPointerException( "components" ); } m_metaData = metaData; m_partitions = partitions; m_components = components; } /** * Return the metaData about this profile. * * @return the metaData about this profile. */ public PartitionMetaData getMetaData() { return m_metaData; } /** * Return the set of partitions contained in this partition. * * @return the set of partitions contained in this partition. */ public PartitionProfile[] getPartitions() { return m_partitions; } /** * Return the set of components contained in this partition. * * @return the set of components contained in this partition. */ public ComponentProfile[] getComponents() { return m_components; } /** * Return the partition with specified name. * * @return the partition with specified name. */ public PartitionProfile getPartition( final String name ) { for( int i = 0; i < m_partitions.length; i++ ) { final PartitionProfile partition = m_partitions[ i ]; if( partition.getMetaData().getName().equals( name ) ) { return partition; } } return null; } /** * Return the component with specified name. * * @return the component with specified name. */ public ComponentProfile getComponent( final String name ) { for( int i = 0; i < m_components.length; i++ ) { final ComponentProfile component = m_components[ i ]; if( component.getMetaData().getName().equals( name ) ) { return component; } } return null; } } 1.1 jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/registry/ProfileBuilder.java Index: ProfileBuilder.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.txt file. */ package org.apache.excalibur.containerkit.registry; import java.util.Map; /** * Load metadata for an Assembly from some source. * The source is usually one or more xml config files. * * @author <a href="mailto:peter at apache.org">Peter Donald</a> * @version $Revision: 1.1 $ $Date: 2002/11/30 03:17:50 $ */ public interface ProfileBuilder { /** * Load metadata from a particular source * using specified map of parameters. The content * of the parameters is left unspecified. * * @param parameters the parameters indicating method to load meta data source * @return the set of components in metadata * @throws Exception if unable to load or resolve * meta data for any reason */ PartitionProfile buildProfile( Map parameters ) throws Exception; } 1.12 +3 -3 jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/verifier/Resources.properties Index: Resources.properties =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/verifier/Resources.properties,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- Resources.properties 14 Sep 2002 06:21:00 -0000 1.11 +++ Resources.properties 30 Nov 2002 03:17:50 -0000 1.12 @@ -6,11 +6,11 @@ assembly.nocircular-dependencies.notice=Verifying that there are no circular dependencies between Components. assembly.component-type.notice=Verifying that the specified Components have valid types. assembly.circular-dependency.error=Component named "{0}" has a circular dependency via path: {1}. -assembly.missing-dependency.error=Component "{1}" that satisfies the dependency with role "{0}" of Component "{2}" does not exist. +assembly.missing-dependency.error=Component "{1}" that satisfies the dependency with key "{0}" of Component "{2}" does not exist. assembly.dependency-missing-service.error=Dependency "{0}" of Block "{2}" does not offer the required service "{1}". assembly.bad-class.error=Unable to load class "{1}" for Component named "{0}". (Reason: {2}). assembly.bad-name.error=The Component name "{0}" is invalid. Valid names contain only letters, digits and the '-' character. assembly.duplicate-name.error=The name "{0}" is used by multiple Components in assembly. -assembly.unknown-dependency.error=Unknown dependency named "{0}" with role "{1}" declared for Component {2}. -assembly.unspecified-dependency.error=Dependency for role "{0}" not specified for the Component named "{1}". +assembly.unknown-dependency.error=Unknown dependency named "{0}" with key "{1}" declared for Component {2}. +assembly.unspecified-dependency.error=Dependency for key "{0}" not specified for the Component named "{1}". error=Component named "{0}" of type "{1}" is not Contextualizable but declares Context Entrys.
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>