String[] names = ( ( String ) initialEnv.get( EnvKeys.PARTITIONS ) ).split( " " );
ContextPartitionConfig[] configs = null; configs = PartitionConfigBuilder.getContextPartitionConfigs( initialEnv );
    private void startUpAppPartitions( String eveWkdir ) throws NamingException    {        OidRegistry oidRegistry = globalRegistries.getOidRegistry();        AttributeTypeRegistry attributeTypeRegistry;        attributeTypeRegistry = globalRegistries.getAttributeTypeRegistry();        MatchingRuleRegistry reg = globalRegistries.getMatchingRuleRegistry();        // start getting all the parameters from the initial environment        String[] names = ( ( String ) initialEnv.get( EnvKeys.PARTITIONS ) ).split( " " );        for ( int ii = 0; ii < names.length; ii++ )        {            // ----------------------------------------------------------------            // create working directory under eve directory for app partition            // ----------------------------------------------------------------            String suffix = ( String ) initialEnv.get( EnvKeys.SUFFIX + names[ii] );            String wkdir = eveWkdir + File.separator + names[ii];            mkdirs( eveWkdir, names[ii] );            // ----------------------------------------------------------------            // create the database/store            // ----------------------------------------------------------------            Name upSuffix = new LdapName( suffix );            Normalizer dnNorm = reg.lookup( "distinguishedNameMatch" ).getNormalizer();            Name normSuffix = new LdapName( ( String ) dnNorm.normalize( suffix ) );            Database db = new JdbmDatabase( upSuffix, wkdir );            // ----------------------------------------------------------------            // create the search engine using db, enumerators and evaluators            // ----------------------------------------------------------------            ExpressionEvaluator evaluator;            evaluator = new ExpressionEvaluator( db, oidRegistry, attributeTypeRegistry );            ExpressionEnumerator enumerator;            enumerator = new ExpressionEnumerator( db, attributeTypeRegistry, evaluator );            SearchEngine eng = new DefaultSearchEngine( db, evaluator, enumerator );            // ----------------------------------------------------------------            // fill up a list with the AttributeTypes for the system indices            // ----------------------------------------------------------------            ArrayList attributeTypeList = new ArrayList();            attributeTypeList.add( attributeTypeRegistry.lookup( SystemPartition.ALIAS_OID ) );            attributeTypeList.add( attributeTypeRegistry.lookup( SystemPartition.EXISTANCE_OID ) );            attributeTypeList.add( attributeTypeRegistry.lookup( SystemPartition.HIERARCHY_OID ) );            attributeTypeList.add( attributeTypeRegistry.lookup( SystemPartition.NDN_OID ) );            attributeTypeList.add( attributeTypeRegistry.lookup( SystemPartition.ONEALIAS_OID ) );            attributeTypeList.add( attributeTypeRegistry.lookup( SystemPartition.SUBALIAS_OID ) );            attributeTypeList.add( attributeTypeRegistry.lookup( SystemPartition.UPDN_OID ) );            // ----------------------------------------------------------------            // if user indices are specified add those attribute types as well            // ----------------------------------------------------------------            if ( initialEnv.containsKey( EnvKeys.INDICES + names[ii] ) )            {                String[] indices = ( ( String ) initialEnv.get( EnvKeys.INDICES                        + names[ii] ) ).split( " " );                for ( int jj = 0; jj < indices.length; jj++ )                {                    attributeTypeList.add( attributeTypeRegistry.lookup( indices[jj] ) );                }            }            // ----------------------------------------------------------------            // fire up the appPartition & register it with the next            // ----------------------------------------------------------------            AttributeType[] indexTypes = ( AttributeType[] ) attributeTypeList                    .toArray( new AttributeType[attributeTypeList.size()] );            ApplicationPartition partition = new ApplicationPartition( upSuffix,                    normSuffix, db, eng, indexTypes );            nexus.register( partition );            // ----------------------------------------------------------------            // add the nexus context entry            // ----------------------------------------------------------------            Attributes rootAttrs;            Object rootEntry = initialEnv.get( EnvKeys.ATTRIBUTES + names[ii] );            if ( rootEntry instanceof String )            {                rootAttrs = new LockableAttributesImpl();                String ldif = ( ( String ) rootEntry ).trim().replace( '*', '\n' );                ( new LdifParserImpl() ).parse( rootAttrs, ldif );            }            else if ( rootEntry instanceof Attributes )            {                rootAttrs = ( Attributes ) rootEntry;            }            else            {                throw new EveNamingException( "The root entry env property was"                        + " not of an expected type: " + rootEntry,                        ResultCodeEnum.OTHER );            }            partition.add( suffix, normSuffix, rootAttrs );        }    }