<?xml version="1.0" encoding="UTF-8"?>
#*
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
*#
<fulcrum-yaafi>
	<containerFlavour>yaafi</containerFlavour>
	<containerClazzName>org.apache.fulcrum.yaafi.framework.container.ServiceContainerImpl</containerClazzName>
	<componentRoles>
		<location>/WEB-INF/conf/roleConfiguration.xml</location>
		<isEncrypted>false</isEncrypted>
	</componentRoles>
	<componentConfiguration>
		<location>/WEB-INF/conf/componentConfiguration.xml</location>
		<isEncrypted>false</isEncrypted>
	</componentConfiguration>
	<parameters>
		<location>/WEB-INF/conf/parameters.properties</location>
		<isEncrypted>false</isEncrypted>
	</parameters>
</fulcrum-yaafi>
